在ARM開發中,經常使用的開發環境就是Keil uVision集成開發環境+JLink模擬器,本文就是就是介紹、總結使用該開發環境中遇到的問題,併在問題後方附上親測可行的解決方法。 ...
在ARM開發中,經常使用的開發環境就是Keil uVision集成開發環境+JLink模擬器,本文就是就是介紹、總結使用該開發環境中遇到的問題,併在問題後方附上親測可行的解決方法。如果各位看官在開發過程中遇到了新的問題,歡迎在本文評論區留言,共同探討,本文會及時更新。
==========================Keil部分===============================
Keil安裝和破解
1、雙擊Keil安裝包,根據提示進行安裝。
2、接下來需要註冊(不註冊的話很多功能無法使用,例如會限制編譯生成的二進位文件的大小),點擊File --> License Management, 拷貝CID。
3、打開keillic.exe(點擊這裡下載),Target選ARM, 版本選Prof.Developers Kit/RealView MDK,然後將複製的CID粘貼至註冊碼,點擊Generate,拷貝出生成的註冊碼。
4、將上一步拷貝的註冊碼添加到Keil中( File --> License Management),至此Keil集成開發環境就能正常使用了。
===========================JLink模擬器部分=========================
問題1:
JLink模擬器用著突然指示燈不亮了,重新拔插USB也依舊,點擊燒寫程式報錯:No JLink Device found。
此問題一般是在JLink內部的問題,可能是外部干擾、不正當操作或程式BUG等導致JLink晶元程式空間中數據被破壞,最終導致JLink無法正常運行,所以錶面現象就是指示燈不亮。這時候的解決方法就是重新給JLink燒寫程式(也即更新固件)。
J-Link內部晶元:AT91SAM7S64 (Atmel的ARM7處理器)
燒寫工具:SAM-PROG Vx.xx (點此下載)
串口燒寫工具:SAM-BA Vx.xx(點此下載)
(1)首先擦除已損壞固件,先找到Erase腳 Pin55 和 TST腳 Pin40 。一般某寶上的JLink魚龍混雜,友好的會將Erase和TST引出來並標有絲印,但有的什麼提示信息也沒有,沒關係,我們可以自己找,將模擬器的晶元按照下圖擺放,左上往下數第7個引腳就是Erase引腳,如果肉眼只能能看出來它引到哪裡最好,如果看不出來可用萬用表量一下,如果實在找不到引去哪裡也沒關係,記住這個腳,要用時直接用鑷子等尖物體往上點。 TST引腳在上方從左數第9引腳,如沒有絲印,尋找方法跟Erase腳一樣。
(2)這兩個重要的管腳找到之後,然後通過USB數據線連接J-Link和電腦,給J-Link供電(註意這一步小燈可能不亮,但電源已經加到J-Link板子上了);
(3)短接Erase區的兩個過孔(即Erase與VDD3.3v)約5s以後,斷開該連接,這時擦除完畢,最後斷開USB電源,停止給J-Link供電。(註意先後順序)
(4)短接TST區的兩個過孔(即TST與VDD3.3v),然後再連接USB數據線給J-Link供電(註意順序),約10s以後,拔掉USB電源,再斷開TST區的連接,這時進入編程模式
(6)J-Link通過USB線與電腦連接。此時,SAM-PROG軟體中的Write Flash按鈕將變為有效。(註意,先打開SAM-PROG 再連接J-Link)。
(7)選擇固件保存路徑(沒有固件的點此下載),點擊Write Flash 按鈕,燒錄固件,待燒錄完成後,Active Connection:將變為1,然後拔掉USB數據線即可。
問題2:
在執行問題1中的第(6)部時,SAM-PROG的Write Flash按鈕一直無效。
產生這個問題的原因有很多,在此就不去深究了,直接上解決方法。
方法1、將驅動調整為“AT91 xxxx Test Board”驅動,驅動文件位置一般在xxx\ATMEL Corporation\AT91-ISPvx.xx\sam-ba x.x\drv目錄下,再重覆問題1中第(6)步。
方法2、Win10的系統經常會遇到這種情況,方法1也無法解決,這時可使用串口燒寫,燒寫工具SAM-BA,打開後按照下圖提示進行操作。完成後重新拔插模擬器便會發現正常亮燈了。
但特別註意在使用SAM-BA燒錄程式最後不能Lock Flash,否則無法更改SN號,無法自動更新固件!!!
問題3:
燒寫完成後無法使用,提示更新framework,但是總時更新失敗。
A new firmware version is available for the connected emulator.
Do you want to update to the latest firmware version?
…
這個問題是由於電腦中的JLink驅動版本比模擬器中的版本要高。
方法1、用老版本的JLink驅動(點此下載J-Link 4.40c)覆蓋Keil中的JLink驅動,路徑:Keil安裝目錄/UV4/ARM/Segger。
方法2、繞過SN校驗升級模擬器中的固件。首先雙擊 Keil安裝目錄/UV4/ARM/Segger/JLink.exe,此時會有上圖提示,註意不要升級固件,輸入命令 exec setsn = 20180913
SN號為8位數,可自行定義,回車後顯示O.K.,此時便可重新打開JLink.exe正常的升級固件了。
正常升級固件後顯示你定義的SN號,結果如下,到此模擬器便能正常使用了。
如果本文對您有幫助,請您給予一定的支持,您的支持就是我的動力!