基于NOR Flash的磨损平衡算法

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

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

磨损平衡几乎没额外时间开销(通过多次验证,均在数us时间内完成转换,测试芯片是STM32L476VG~).
实测占用136KB即可管理N25Q128(16MByte),并且占用的只是NOR的空间.并且带冗余和各种了.
磨损平衡,单文件实现~

如果需要学习,注释明白清楚~

然后下载地址是~ https://github.com/nickfox-taterli/nor_flash_wl

《基于NOR Flash的磨损平衡算法》有6个想法

  1. 好久以前下了您的代码,今天再来看看,发现研究的东西很多。决定好好学学,希望以后不吝赐教!

  2. 你好,我想问一下这个用的话是否每次上电都需要调用这个WL_Flash_Config(&MWL_Flash);?另外就是出现坏块后是否自动跳过坏块去写

发表评论

电子邮件地址不会被公开。 必填项已用*标注