亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

NorFlash程序燒死的解鎖

作者:佚名   來源:不詳   點(diǎn)擊數(shù):  更新時(shí)間:2014年08月10日   【字體:

我們的某位客戶,在使用K9仿真器燒寫cavium的CNW5602芯片外接的NorFlash時(shí)出現(xiàn)因燒寫非法代碼導(dǎo)致仿真器無法停止內(nèi)核的問題。所用的Flash器件為一塊普通的并行NorFlash器件。問題現(xiàn)像描述如下:

 

一塊空板子(flash是空的)是可以通過K9正常讀寫flash的,但當(dāng)flash中已經(jīng)寫入程序后,在測(cè)試過程中很容易出現(xiàn)不能通過K9重新燒寫flash。

我做了一下實(shí)驗(yàn),在一塊可以正常讀寫的板子上向flash中正常啟動(dòng)地址寫入一個(gè)文本文件,讓板子不能正常啟動(dòng),這時(shí)候再用K9擦除flash時(shí)會(huì)報(bào)“無法停止目標(biāo)板上的器件”,在設(shè)置中選用“特殊停止”可以清除“無法停止目標(biāo)板器件”的錯(cuò)誤,但K9會(huì)一直停在“初始化flash"狀態(tài),嘗試K9各種配置組合都不能再繼續(xù)下去了。再焊一片空flash到板子上,K9又可以繼續(xù)燒寫flash。我做了幾次這樣的試驗(yàn),可以確定當(dāng)flash非空而程序又不正確時(shí),會(huì)重現(xiàn)上述過程。

這位客戶其實(shí)發(fā)現(xiàn)了問題的原因,并且給出了解決方法:換塊空的Flash。呵呵,不過這種方法太麻煩,而且搞不好會(huì)弄壞板子。那是否有更好的辦法?

分析上述現(xiàn)像,不難發(fā)現(xiàn)是因?yàn)橄蚱瑑?nèi)燒寫了非法的代碼,導(dǎo)致芯片上電運(yùn)行后異常,影響仿真器連接。問題的根本是無法停止內(nèi)核,如果能停止內(nèi)核,那一切都好辦的多。通常情況下,CNW5602這種比較高性能ARM芯片支持比較多的啟動(dòng)模式。于是我建議這位客戶切換芯片的啟動(dòng)模式,不過這位用戶告訴我,板上只設(shè)計(jì)了從NorFlash啟動(dòng);并且由于是BGA的片子,也沒法設(shè)置跳線。沒有什么別的好辦法,難道說必須再次把Flash芯片取下然后換塊空的?

后面實(shí)在沒什么辦法,他把板寄給了我,要我?guī)兔ε?/p>

既然無法切換啟動(dòng)模式,那是否可以從源頭解決問題,讓NorFlash中數(shù)據(jù)不能被芯片讀取出來?

于是就有了如下的方法:

我這邊又試了下,之前發(fā)的方式有些時(shí)候不行。下面是比較穩(wěn)定的操作方法:

  1. 加載附件中的初始化宏。這個(gè)文件我有改動(dòng),在最開始加了個(gè)5秒的延時(shí),最后加了擦除整個(gè)Flash的命令序列。
  2. 短接Flash的RESET引腳到地,重新上電;
  3. 進(jìn)入仿真器自檢界面,點(diǎn)擊自檢,在彈出第一個(gè)延時(shí)5秒時(shí),斷開RESET接地設(shè)置,然后進(jìn)行后續(xù)的自檢。執(zhí)行初始化宏的最后操作時(shí),會(huì)執(zhí)行擦除Flash的命令。(如果能出現(xiàn)第1個(gè)5秒的延時(shí),說明器件已經(jīng)停下來了)。
  4. 執(zhí)行完成后,重新上電,基本就能正常連接了。

可能在第3步操作時(shí),成功的次數(shù)比較小,多試幾次。我這邊燒了這個(gè)隨機(jī)數(shù)文件,出現(xiàn)無法停止的問題。最后是用此方法解決的。

正常燒時(shí),請(qǐng)用原來的初始化文件。

上述方法其實(shí)有點(diǎn)復(fù)雜,并不需要在初始化宏中插入擦除序列。可以直接點(diǎn)擊擦除按鈕,要在第1個(gè)5秒延時(shí),斷開RESET引腳即可,因?yàn)榇藭r(shí)芯片已經(jīng)停下,后續(xù)就可以調(diào)用算法擦除芯片

第一個(gè)5秒延時(shí)的作用是預(yù)留時(shí)間斷開NorFlash的RESET引腳,恢復(fù)Flash正常工作。這樣仿真器才能正常的執(zhí)行后續(xù)的初始化序列和擦除算法。

這個(gè)方法的原理是先讓Flash芯片一直處于復(fù)位狀態(tài),芯片不能讀取代碼,自然就不能從NorFlash啟動(dòng)。待芯片啟動(dòng)完成后,仿真器再去連接,此時(shí)就可以連接并停止內(nèi)核,可以執(zhí)行各種讀取Memory的操作。在停止內(nèi)核后,可以讓Flash恢復(fù)正常工作,此時(shí)仿真器再去擦除Flash

用戶在調(diào)試其它芯片時(shí)遇到類似問題,也可以照類似的方法解決:1、切換啟動(dòng)模式;2、啟動(dòng)時(shí)禁用Flash(NorFlash/NandFlash/SPI Flash),等停止內(nèi)核后再擦除。

最近這位用戶沒再反饋這方面的問題,應(yīng)該是這方法有效。另一方面也可能是因?yàn)樗桓以偻锩嫒我鈱憯?shù)據(jù)了:)

關(guān)閉窗口

相關(guān)文章