基于SPI(NOR) Flash的磨损平衡算法

2019-07-21 06:08发布

本帖最后由 cl17726 于 2017-7-7 10:43 编辑

NOR也是有寿命的,毕竟不是无限,哪一天丢数据就爽了,我写了个简单的算法,可以做冗余,代价只有几个Block而已,RAM开销几十字节+Buffer,典型设计10Byte的Buffer都非常够用.先看一眼. img_595e2dab63cb7.png

比如我这个是16MBte的Flash,能用的是16MB - 4K - 少部分冗余(小于150K),非常节省.支持多次配置,多声明几个结构体就行.移植简单,硬件无关,只要做CRC计算的,Flash擦读写的,还有Malloc就可以了.而且,操作跟一般Flash操作无区别,完全透明一层.初始化传入极少的参数就可以.(7个参数.) img_595e2e0ad493e.png

磨损平衡几乎没额外时间开销(通过多次验证,均在数us时间内完成转换,测试芯片是STM32L476VG~).磨损平衡,单文件实现~如果需要学习,注释明白清楚~ img_595e2f02cceea.png
有BUG和可优化地方欢迎指针.
然后下载地址是~ 我的博客(更多详情) GitHub(下载)
PS:非要说,EEPROM也是有寿命的,但是EEPROM都比较小,管理起来也没那么费劲(同样也很少管理EEPROM),
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。