嵌入式开发 延长FLASH使用寿命技巧

	在嵌入式单片机开发时,虽说现在的flash擦写次数少则10w次,也有寿命接近无限的铁电存储器,但对于常常把
成本挂嘴边的消费电子来说不实际,通常需要在软件上微操,一般两个办法:1、上文件系统;2、也就是本文要说的
规范FLASH使用,以达到延长产品寿命目的。
首先需要说明,擦除是0变1,写入是1变1或0,FLASH的寿命指的是每1bit擦、写寿命,读不受限制,随着擦写次数越
多,FLASH老化,表现为很难擦除干净,但只要擦干净了,写入一定正确,但写入的数据是否牢固就不一定了。

通常情况

一般情况下,需要向FLASH写入数据会是如下步骤:
1、读取扇区内所有数据到RAM中:
2、把需要写入的数据写到对应的RAM;
3、擦除扇区;
4、把RAM中的数据写入到FLASH中。
步骤就是如此,接下来就是微操:

提升使用寿命技巧

1、由于FLASH在写入前起码要擦除整个扇区的特点,在成本允许的情况下,尽可能地选取扇区小的芯片,可以加快写
入速率,也提高了可靠性;这是项目前期FLASH选型;
2、在写入时,结合项目实际设计产品周期,一般10年内的写入次数不要大于FLASH的寿命,重要的数据特别关注,比如
增加备份,不重要的数据可以降低要求;
3、每次在写入前,将原数据读出来对比,如果相同就不再写入,虽然一般来说都是不相同的数据;每次写入前判断对
应FLASH的数据是否全为0xff,如果是则不需要再擦除,当然如果能凭空确定是擦除过的也行,不过不一定保险。
4、配置信息一般写入次数比较少,可以把所有配置信息放一块,不要与其他经常需要改变的数据放在相同扇区,减少
频繁写入的数据量;
5、删除动作是对原有数据的清除,最好不要把数据清为0,而是清除为0xFF,这样做的好处是下次对这个地址编程时,
不需要再擦除该扇区,只需要重新写入就可以;
6、各个应用数据如果都需要频繁擦写,如果放在同一扇区就尽量统一处理,减少擦写次数。
7、开始就对一个扇区擦除一次,之后每写一笔数据做一个offset处理,下一笔接着后面直接写,直到写满一个扇区
才做一次擦除动作。
以上是一些拙见,还希望能够抛砖引玉。

猜你喜欢

转载自blog.csdn.net/qq_24179601/article/details/112667303