FLASH數(shù)據(jù)丟失錯誤原因:
由于FLASH寫入的特性是先擦后寫,寫入不會在原來位置重新寫數(shù)據(jù),一般都是把原位置的數(shù)據(jù)標(biāo)記為無效,再在新位置寫入數(shù)據(jù)。如果在擦除中掉電或者寫入時掉電,有可能會出現(xiàn)失敗的情況,下次再上電讀取就會出錯;如果是在擦除的時候掉電,不能保證擦除完全,但是已經(jīng)擦除的部分,全變成0xff了。如果是寫的時候掉電,已經(jīng)寫入的就是正確的,電平掉到最低極限工作電壓附近時寫入的數(shù)據(jù)就無法保證寫入正確。
解決方法:
(1)硬件加入掉電保護(hù)機(jī)制?
硬件電路上有相應(yīng)的掉電警告中斷,而且必須有足夠的時間供軟件響應(yīng)。
1) 電源管理芯片,檢測掉電事件的發(fā)生;?
2) 儲能元件,在掉電發(fā)生后能滿足執(zhí)行掉電保護(hù)的操作即有足夠的時間存儲一些標(biāo)志位和必要的數(shù)據(jù);
一個電源檢測芯片,一個儲能元件(比如大點的電容)結(jié)合軟件判斷以及提前保存現(xiàn)場就能很好的實現(xiàn)掉電保護(hù)。
(2)軟件方式解決?
1)要改寫某扇區(qū)內(nèi)容,先把該扇區(qū)內(nèi)容備份到一個特殊的扇區(qū);?
2)在某個地方寫一個特殊的標(biāo)記;?
3)完成該扇區(qū)的改寫操作,清除標(biāo)記;?
4)每次操作前先判斷備份區(qū)數(shù)據(jù)是否需要恢復(fù)。
這個過程“備份->置標(biāo)記->寫->清標(biāo)記”能有效的解決FLASH突然掉電數(shù)據(jù)異常的問題。
-
電源
+關(guān)注
關(guān)注
185文章
18372瀏覽量
256354 -
芯片
+關(guān)注
關(guān)注
460文章
52520瀏覽量
441054 -
FlaSh
+關(guān)注
關(guān)注
10文章
1679瀏覽量
151853
原文標(biāo)題:FLASH 數(shù)據(jù)丟失原因分析及解決方案
文章出處:【微信號:凌科芯安加密芯片,微信公眾號:凌科芯安加密芯片】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
LabView隊列操作程序數(shù)據(jù)會丟失,請問有什么好的改進(jìn)方法減少數(shù)據(jù)的丟失呢?
請問F28062如何把數(shù)據(jù)寫入FLASH使數(shù)據(jù)掉電不丟失從而代替EEPROM
Flash 數(shù)據(jù)丟失
msvcr71dll等dll丟失的解決方法
nvs_flash.h頭文件的解決方法
短波通信盲區(qū)現(xiàn)象解決方法介紹
Flash數(shù)據(jù)丟失的原因

Flash數(shù)據(jù)的內(nèi)容丟失的原因有哪些詳細(xì)說明
工控機(jī)數(shù)據(jù)丟失原因及解決方法
"STM32下載出現(xiàn)Cannot Load Flash Device Decription! 和 Error: Flash Download faled . ""Cortex-M3*的解決方法"

工業(yè)路由器為何會出現(xiàn)數(shù)據(jù)包丟失?丟包的4個常見問題與解決方法

評論