jlink燒寫Nor Flash時出錯正確解決方法彙總:PC of target system has unexpected value after programming 2

成都國嵌的課程:國嵌體驗入門班-2-1(開發板系統安裝-Jlink方式).rar毒害了不少人,那種直接燒寫nor flash,不進行任何配置的方法,能夠成功純屬偶然,他自己在視頻中燒寫時也出現了兩次錯誤,可卻沒有意識到他的操作有問題,誤認爲是jlink不穩定,先將此文貼出,將其錯誤方法糾正。

如果你用國嵌的方法直接燒寫nor flash,會出現下面的錯誤:

如果你按照國嵌的說法認爲這是jlink不穩定,多試幾遍就好了,你就會發現這個錯誤像魔鬼一樣跟着你,對你不離不棄,這個方案我驗證了幾十次,沒有一次是成功的,於是我開始尋找錯誤的根源。後面問題得到解決,現將方案總結如下:
方案1.
如果你有mini2440或者是你板子對應的配置文件,這個問題就很好解決,file->open project,選中初始化工程文件:


其次,option->project settings選擇Flash,點擊select flash device,選中開發板對應的nor flash芯片型號,我的板子採用得是s29AL016M90TFI02,這裏我選擇s29AL016M90TFI02

設置好前面這些之後,就可以進行下面的燒寫工作了,通過這種方式一次燒寫成功。

如果你沒有這個配置文件,不要緊,下面我將這個配置文件對應j-Flash配置的內容截圖如下,大家可以作爲參考:


方案2:

1. 看着這現象,貌似是RAM不穩定或者沒有初始化好,而導致J-Flash ARM運行有問題,沒有正常燒寫。

所以去嘗試取消了RAM,即Options -> Project Settings -> CPU中,取消Use target RAM(faster)的話,好像是不會出錯的,但是燒寫起來,速度就太慢了,是一個一個字節燒寫的,燒個200多K的u-boot.bin的話,估計得幾十分鐘,所以無法忍受。

還是需要用到Use target RAM(faster)來實現快速燒寫的,這個只要一二十秒即可。

2.後來又去更改JTAG的工作頻率,從很低的100KHZ到很高的4MHz,12MHz等,或者是Auto模式,都試了試,但是還是會出錯。

3. 後來又去折騰,更改很多設置,看看是否有用。最後的最後,幸運地,終於找到解決辦法了:

Options -> Project Settings -> CPU -> 'Use following init sequence:'中,默認只有一行:

0 reset  0 0ms reset and Halt target,

然後選中該行,點擊Edit,修改Delay爲2ms,確定,即可。


方案3:
options-->project settings-->CPU中的Use following init sequence中的Action一定要把Reset改成Halt

方案3我試了一次,沒有成功,也許可行,但方案1是最保險的,大家可以幾種方法都嘗試一下,如果有任何問題,歡迎大家多多交流。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章