閱讀552 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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

成都國嵌的課程:國嵌體驗入門班-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是最保險的,大家可以幾種方法都嚐試一下,如果有任何問題,歡迎大家多多交流。

最後更新:2017-04-03 14:54:36

  上一篇:go codeblocks平台配置GDAL教程(史上首發)
  下一篇:go android開源項目下載地址