一个解决Flash模拟EEPROM寿命短问题的方法

2019-07-20 21:34发布

QQ截图20160624142510.png
方法如图
由于Flash擦写次数的限制,并不适合用于存储每天需要更新的一些数据,比如生产计数类数据。按最坏情况计算的话,1K次擦写也就3年多点,对于设备来说三年是远远不够的。
我刚想了个解决办法,求拍砖,求改进。

将数据同时写入A,B,C三个区域,在D中记录三个区域的地址。

开机读取数据时从D中获取地址后获取数据并判断是否一致,如果一致就说明数据可靠,继续运行
如果不一致,丢弃不一致的那个(我认为同一块IC的Flash的不同区域擦写寿命不是完全一样的,会有差异,那么肯定会有一个先坏!即使是一样的,也可以在第一次存储的时候在区域A中多擦几次解决)

将数据搬移到另外三个区域,原来的都不要用了(继续用也是可以的),同时更新存储地址的D

STM32的Flash一般很大,无所谓一点让费。频繁修改的数据最好关机存。

以前是混阿mo的(付费用户)
第一次这里发帖
也说话你们的方法呗

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
jermy_z
1楼-- · 2019-07-20 21:36
如果参数需要频繁更新,就别存内部flash了吧。。。
小温
2楼-- · 2019-07-20 23:44
 精彩回答 2  元偷偷看……
PEGASUS
3楼-- · 2019-07-21 01:02
我的W25Q128 FVSG就挂过 太脆 可能是刷写的时候 我断电造成的

xuande
4楼-- · 2019-07-21 04:54

LZ想法就是滚动利用整片区域,这没错;
但每份数据都要重复写几次,感觉没必要。


liuem-mcu
5楼-- · 2019-07-21 05:52
xuande 发表于 2016-6-24 16:26
LZ想法就是滚动利用整片区域,这没错;
但每份数据都要重复写几次,感觉没必要。

我这种方法可确保数据的正确性,比只是单纯滚动要好吧
xuande
6楼-- · 2019-07-21 09:04
本帖最后由 xuande 于 2016-6-24 23:05 编辑
liuem-mcu 发表于 2016-6-24 22:38
我这种方法可确保数据的正确性,比只是单纯滚动要好吧


想想看,
CPU里下载到FLASH的程序数据,重要不重要?
有没有采用备份的方式?类似的例子非常多。

如果你认为某个数据特别特别重要,这样做也可以吧。。。但我这么多年还没有遇到过这样的情况。





一周热门 更多>