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

Flash數據的內容丟失的原因有哪些詳細說明
工控機數據丟失原因及解決方法
"STM32下載出現Cannot Load Flash Device Decription! 和 Error: Flash Download faled . ""Cortex-M3*的解決方法"

工業路由器為何會出現數據包丟失?丟包的4個常見問題與解決方法

評論