TaterLi 个人博客

基于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

退出移动版