FLASH数据丢失错误原因:
由于FLASH写入的特性是先擦后写,写入不会在原来位置重新写数据,一般都是把原位置的数据标记为无效,再在新位置写入数据。如果在擦除中掉电或者写入时掉电,有可能会出现失败的情况,下次再上电读取就会出错;如果是在擦除的时候掉电,不能保证擦除完全,但是已经擦除的部分,全变成0xff了。如果是写的时候掉电,已经写入的就是正确的,电平掉到最低极限工作电压附近时写入的数据就无法保证写入正确。
解决方法:
(1)硬件加入掉电保护机制
硬件电路上有相应的掉电警告中断,而且必须有足够的时间供软件响应。
2) 储能元件,在掉电发生后能满足执行掉电保护的操作即有足够的时间存储一些标志位和必要的数据;
一个电源检测芯片,一个储能元件(比如大点的电容)结合软件判断以及提前保存现场就能很好的实现掉电保护。
(2)软件方式解决
1)要改写某扇区内容,先把该扇区内容备份到一个特殊的扇区;
2)在某个地方写一个特殊的标记;
3)完成该扇区的改写操作,清除标记;
4)每次操作前先判断备份区数据是否需要恢复。
这个过程“备份->置标记->写->清标记”能有效的解决FLASH突然掉电数据异常的问题。
-
电源
+关注
关注
184文章
17705浏览量
249967 -
芯片
+关注
关注
455文章
50721浏览量
423165 -
FlaSh
+关注
关注
10文章
1633浏览量
147947
原文标题: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个常见问题与解决方法

评论