# nor_flash_wl **Repository Path**: yurenrun/nor_flash_wl ## Basic Information - **Project Name**: nor_flash_wl - **Description**: NOR Flash的磨损平衡算法 - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 6 - **Created**: 2021-12-15 - **Last Updated**: 2022-11-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 好用的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 个人博客](https://www.lijingquan.net/) > 这个程序不具备完全的时间确定性.