第一章:PSoc 4000 系列電容式觸摸傳感器之第三方工程下載

1、寫在前面

  • 因爲項目開發的緣故,所以使用到了賽普拉斯的CY8C4014LQI-421芯片,但是官方Psoc Creator編譯出來的hex文件,使用第三方J-link是無法燒寫。

2、PSoc Creator導出KEIL工程

  • 官方文檔講得很清楚了,可以參考PSoc Creator裏面的Help文檔,查看裏面的第三方IDE章節。
    在這裏插入圖片描述
  • 首先在PSoc Creator的工具欄中選擇Rroject中的Export to IDE,選擇導出爲Keil。
    在這裏插入圖片描述
  • 如果碰到需要安裝驅動的話,選擇Install。
    在這裏插入圖片描述
  • 並安裝進自己電腦上裝keil的目錄。
  • ps:前提是你電腦上有裝keil。
    在這裏插入圖片描述
  • 之後選擇編譯鏈爲ARM MDK。
    在這裏插入圖片描述
  • 將用到的文件都選上,下一步後,選擇Exprot.
    在這裏插入圖片描述
  • 待配置完成後,選擇finish。
    在這裏插入圖片描述

3、運行keil工程

  • 上一步finish之後,有勾選Open in uVision的話,就會自動打開生成的文件,點擊編譯,看有沒有問題。
  • ps:如果碰到keil和 ads起衝突的話,可以參考以下兩個帖子。 https://blog.csdn.net/mao0514/article/details/70312202
    http://www.bubuko.com/infodetail-1313242.html
  • 正常零錯誤就代表編譯完成了,生成了我們需要用到的axf文件。但接下來要使用keil和J-link燒寫我們的設備,首先選擇在工具欄上選擇option,找到裏面的Debug,選擇使用J-Link作爲我們的燒寫器。最後選擇setting.
    在這裏插入圖片描述
  • 按上一步的setting之後,會彈出以下界面,選擇Debug中,確實使用的是SW燒寫方式,速率這個按實際情況選擇,我之前選太高還連不上了。
    在這裏插入圖片描述
  • 之後選擇Flash Download。
    在這裏插入圖片描述
  • 選擇flash類型,中間那個芯片信號不對的話,按ADD進行選擇,如果你的keil中沒有這個芯片型號的話,那請往下看。
    在這裏插入圖片描述
  • 找到官方燒寫軟件Programmer的目錄,該目錄下有個3rd_Party_Configuration_Files文件夾,裏面就有我們需要的文件,找到對應的芯片系列型號CY8C40xx,在Prog_Algorithm文件夾下,可以看到一個CY8C40xx.FLM的文件,拷貝起來。
  • ps:參考下我電腦上這個文件的路徑吧,一目瞭然的感覺對吧。
    D:\Program Files (x86)\Cypress\Programmer\3rd_Party_Configuration_Files\CY8C40xx\Prog_Algorithm
    在這裏插入圖片描述
  • 拷貝之後的文件放在keil的安裝目錄下的\ARM\Flash。
    參考我電腦的路徑:D:\Keil_v5\ARM\Flash 拷貝進去之後,就能在Add flash選項中找到對應的flash。
    在這裏插入圖片描述

4、燒寫

  • 配置完成後,點擊Load,正常情況下,就可以直接下載,但是萬一出現右下角的SW device Found,那就有問題了,但問題也不大,逐步排查。
    在這裏插入圖片描述
  • 出現上述問題,主要是沒辦法使用j-link和芯片連接,在排除不是手殘把線弄斷的情況下,接着往下看。
  • 因爲CY8C4014LQI-421這款芯片沒有Reset引腳,而且他的SWDIO SWCLK這兩個引腳是有複用功能的,也就是當這兩個引腳上電後被用了,在沒有Reset的情況下,沒辦法使用SW模式和芯片建立通信,唯一能解決的方法,就是不要用到這個引腳的其他功能,再或者就是使用官方99刀的燒寫器,選擇power cycel模式下載。
  • ps:我先前使用了燒寫口的複用功能(使用了串口,因爲之前開發板上的串口是接P3.0),導致芯片燒寫口被使用了,所以這裏需要在原來的工程中,將這Debug Select設置回原來的SWD模式,然後使用官方燒寫器燒錄芯片,關閉燒寫口的複用功能。
    在這裏插入圖片描述
  • 燒寫完成後,再用keil的Load功能,就可以正常的燒寫了。
    在這裏插入圖片描述

5、使用J-Flash燒寫

  • 能使用keil燒寫的話,至少可以省去99刀昂貴的燒寫器費用,但是如果涉及到產線生產的問題,那就麻煩了,那麼多步驟,產線的員工纔不會這麼搞,他們想做的就是能夠直接點下載,就能燒錄了。按以往的方法,可以使用hex文件燒錄,當然keil也支持生成hex文件。
  • 不知道是我的J-Flash(V6.34f)版本問題還是其他問題,hex文件超過16k之後,就會報錯,大致原因應該就是J-Flash燒寫這款芯片的時候,不支持Hex格式的?(暫時不確定),畢竟hex文件不是純粹的二進制文件,裏面還帶了很多其他信息在裏面,因此要能夠將編譯出來的文件轉換成bin文件就好了。
    在這裏插入圖片描述
  • 好在keil也支持間axf文件轉換成bin文件的方式,想深入研究的可以參考官方文檔,位置如下:在help中,打開文檔幫助,然後在搜索中查找:fromelf,可以找到一堆相關的文章。
    在這裏插入圖片描述
  • fromelf這個工具就在keil文件夾下的ARM\ARMCC\bin中。
  • 參考我的目錄:D:\Keil_v5\ARM\ARMCC\bin
  • 這裏我簡單說下有以下兩種方法,第一種是是使用cmd命令去執行,打開命令行,進入到fromelf程序的文件夾裏面,在命令窗口中輸入"fromelf.exe --bin --output xxx.bin xxx.axf"並回車,這樣就將axf文件生成xxx.bin文件。
  • 第二種方法可以在keil的配置選項中,添加:fromelf.exe --bin -o “%[email protected]” “#L”,具體操作參考下圖。生成的bin文件會在工程的同級目錄下。
    在這裏插入圖片描述
  • ps:生成出來的bin文件會變成一個文件夾,裏面有四個文件,其中三個看起來沒啥用的感覺。
  • 可以在配置文件中,選擇對.scat文件進行編輯,刪除掉那幾個鏈接文件,然後保存,在重新編譯,就可以正常生成bin文件。但是這裏我不確定另外三個沒鏈接進去的文件是否會有影響,就目前來看,生成出來的bin文件,能用J-Flash燒錄,也能正常使用。
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章