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