因为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.
欢迎访问我的网站:
这个程序不具备完全的时间确定性.