1. 程式人生 > >Jlink更新至V4.65d後,Jlink不能使用的問題解決辦法

Jlink更新至V4.65d後,Jlink不能使用的問題解決辦法

 這幾天在使用STM32F050c6d的MCU進行移植開發,只有最新的版本才對這顆MCU支援,所以被迫更新到了最新的版本。MDK4.6跟Jlin4.56d的下載地址在我的資源裡已經共享。安裝完以後提示更新,更新之後被告知,Jlink為Clone。

       解決辦法如下:

1、重新燒寫韌體到Jlink,將原來V8.bin韌體用Winhex開啟,並找到偏移地址為0xff00為首地址4bytes修改為其他值,只要不為原來的11111117 或 805306163即可,因為更新後的韌體對這兩個韌體SN進行了強制校驗,修改為其他值即可完美解決問題,同時將0xff30後面的GDBFull對應改成GDBFULL,對應ASCII碼為47 44 42 46 55 4C 4C,目的是跳過GDBFull檢查。

吐舌頭

1.1 另外一種靈活的修改SN的方法:將0xff00為起始地址的4Bytes修改為0xffffffff,同時將0xff30後面的GDBFull對應改成GDBFULL,對應ASCII碼為47 44 42 46 55 4C 4C,目的是跳過GDBFull檢查,儲存修改好的韌體檔案。更新韌體後,開啟Commander,不理會更新,在Jlink命令後面輸入

      exec setsn = xxxxxxxx,所輸入的sn為16進位制,否則更新升級時會出現錯誤。 建議定義成你更新的時間,如20121121,這樣就能追溯掉韌體上次的時間。

2、此時安裝了Segger4.65d的版本,開啟JLink Commander,按要求提示更新,更新完之後即可正常使用最新的版本了。    

        PS:CM0加入讀保護後,Segger的Unsecured Chip功能不能正常使用了,還未找到辦法。跟ST的FAE聯絡後,建議使用ST Link的STVP來對Option Byte進行擦除,對RDP進行擦除。

更新韌體之後,實測發現更容易掉韌體了,之前的韌體在同樣的硬體平臺使用半年都不掉一次,更新之後,平均估計半個月就會掉。還沒找到問題所在,這樣推理的話,只是跟韌體相關。抑或是新的韌體對硬體操作上有所更改所致?

     注意:同時修改GDBFull為GDBFULL或其他字元,根據目前實測,一個月不掉韌體,所以修改的地方除了SN,同時應當修改GDBFull字元。解決之前只修改SN後,常掉韌體的問題。