目录
1、原因
由于FLASH的擦除和写入的特性,如果在擦除中掉电或者写入时掉电,有可能会出现失败的情况,下次再上电读取就会出错。
擦除的时候掉电,不能保证擦除完全,但是已经擦除的部分,肯定是0xff了。
写的时候掉电,已经写入的就是正确的,电平掉到最低极限工作电压附近时,写入的就无法保证了,地址无法保证,写入的值也无法保证。没有写到的,肯定还是 0xFF。
2、解决方式
2.1、硬件方式解决 — 掉电保护机制
必须硬件电路上有相应的掉电警告中断,而且必须有足够的时间供软件响应。
掉电保存和上电恢复,需要以下:
1) 快速检测掉电信号;
2) 要有足够的时间让你停下来保存现场;
3) 上电后可靠的复位;
这些的关键是掉电信号\电源\复位信号三个怎么配合的事;
掉电保护不是重新擦写那么简单,首先要有一个机制能知道发生了掉电事件,还要知道什么地方的数据是可能出错的,如果是新建文件还好一点,一般就是数据作废,如果是改写一个文件时发生掉电事故的话,