nickfox-taterli / nor_flash_wl

NOR Flash的磨损平衡算法

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

好用的NOR Flash磨损平衡算法


因为SPI Flash也是有寿命的,所以要磨损平衡.一般Flash自己擦改写,总在一个位置嘛,容易死,不总在又不知道怎么写算法,我现在写了一个简单的算法,有个算法例子和核心文件.本系统只需60Byte+Buffer Size的RAM,另外3级优化下只需要1KB的Flash,NOR的冗余和数据占用根据Flash不同会有所改变.

需要移植以下内容.

  • SPI Flash的写(Multi-Byte),读(Multi-Byte),擦(SubSector).
  • Malloc的实现,我用FreeRTOS了.
  • CRC的实现,一般单片机有硬件支持.

使用磨损平衡中间层的好处是什么?

  • 基于SPIFFS能实现磨损平衡,但是不支持Windows/Linux/Mac操作系统读写.也就是仅能MCU自己处理.
  • 一般系统中基于FATFS不能实现磨损平衡,如果添加这个磨损平衡中间层,就能实现了.
  • SPI FLASH典型100K寿命,但是EEPROM典型1KK寿命,使用磨损平衡后,如果储存的数据只有1MByte,那么16Mbyte的SPI FLASH也能达到1KK寿命以上.而1MByte的EEPROM远比16MByte的SPI Flash贵.
  • SPI FLASH + 磨损平衡读写速度优于EEPROM.

欢迎访问我的网站:

TaterLi 个人博客

这个程序不具备完全的时间确定性.

About

NOR Flash的磨损平衡算法


Languages

Language:C 97.0%Language:Assembly 2.2%Language:C++ 0.8%