FLASH數(shù)據(jù)丟失錯(cuò)誤原因:
由于FLASH寫(xiě)入的特性是先擦后寫(xiě),寫(xiě)入不會(huì)在原來(lái)位置重新寫(xiě)數(shù)據(jù),一般都是把原位置的數(shù)據(jù)標(biāo)記為無(wú)效,再在新位置寫(xiě)入數(shù)據(jù)。如果在擦除中掉電或者寫(xiě)入時(shí)掉電,有可能會(huì)出現(xiàn)失敗的情況,下次再上電讀取就會(huì)出錯(cuò);如果是在擦除的時(shí)候掉電,不能保證擦除完全,但是已經(jīng)擦除的部分,全變成0xff了。如果是寫(xiě)的時(shí)候掉電,已經(jīng)寫(xiě)入的就是正確的,電平掉到最低極限工作電壓附近時(shí)寫(xiě)入的數(shù)據(jù)就無(wú)法保證寫(xiě)入正確。
解決方法:
(1)硬件加入掉電保護(hù)機(jī)制?
硬件電路上有相應(yīng)的掉電警告中斷,而且必須有足夠的時(shí)間供軟件響應(yīng)。
2) 儲(chǔ)能元件,在掉電發(fā)生后能滿足執(zhí)行掉電保護(hù)的操作即有足夠的時(shí)間存儲(chǔ)一些標(biāo)志位和必要的數(shù)據(jù);
一個(gè)電源檢測(cè)芯片,一個(gè)儲(chǔ)能元件(比如大點(diǎn)的電容)結(jié)合軟件判斷以及提前保存現(xiàn)場(chǎng)就能很好的實(shí)現(xiàn)掉電保護(hù)。
(2)軟件方式解決?
1)要改寫(xiě)某扇區(qū)內(nèi)容,先把該扇區(qū)內(nèi)容備份到一個(gè)特殊的扇區(qū);?
2)在某個(gè)地方寫(xiě)一個(gè)特殊的標(biāo)記;?
3)完成該扇區(qū)的改寫(xiě)操作,清除標(biāo)記;?
4)每次操作前先判斷備份區(qū)數(shù)據(jù)是否需要恢復(fù)。
這個(gè)過(guò)程“備份->置標(biāo)記->寫(xiě)->清標(biāo)記”能有效的解決FLASH突然掉電數(shù)據(jù)異常的問(wèn)題。
-
電源
+關(guān)注
關(guān)注
184文章
17704瀏覽量
249955 -
芯片
+關(guān)注
關(guān)注
455文章
50714瀏覽量
423131 -
FlaSh
+關(guān)注
關(guān)注
10文章
1633瀏覽量
147939
原文標(biāo)題:FLASH 數(shù)據(jù)丟失原因分析及解決方案
文章出處:【微信號(hào):凌科芯安加密芯片,微信公眾號(hào):凌科芯安加密芯片】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論