LittleFS
Solution中,NOR方案使用LittleFs。
LittleFS 介绍
LittleFS 是一款专为 嵌入式设备 设计的轻量级日志型文件系统,核心特点是 低内存占用、强容错性、支持磨损均衡,适配 NOR Flash、NAND Flash 等存储介质,广泛应用于智能穿戴、物联网终端、工业控制器等资源受限场景(如 RAM < 64KB、Flash 容量 < 1GB 的设备)。
LittleFS 核心特性与优势
相比传统 FAT 文件系统或其他嵌入式文件系统(如 SPIFFS),LittleFS 针对嵌入式场景做了深度优化,核心特性如下:
特性 |
说明 |
嵌入式场景价值 |
---|---|---|
轻量级设计 |
代码体积 < 10KB(编译后),运行时 RAM 占用 < 2KB(默认配置),无复杂依赖。 |
适配内存紧张的嵌入式设备(如 8 位/32 位 MCU),不挤占应用程序内存。 |
日志型存储结构 |
采用“日志+索引”混合架构,文件写入时先写日志区,再更新索引,避免数据丢失。 |
应对嵌入式设备“意外断电”场景,降低文件系统损坏概率(传统 FAT 断电易丢 FAT 表)。 |
原生磨损均衡 |
自动记录 Flash 块擦写次数,优先使用擦写少的块,支持动态坏块标记与跳过。 |
延长 Flash 寿命(如 NOR Flash 擦写寿命 10 万次→均衡后整体寿命提升 3-5 倍)。 |
灵活的存储适配 |
支持自定义 Flash 块大小(2KB~64KB)、页大小(256B~4KB),无需格式化分区。 |
兼容不同型号 Flash 芯片(如 Winbond W25Q64、GD25Q128),硬件适配成本低。 |
支持文件级压缩(可选) |
集成 LZ77 轻量级压缩算法,小文件(如配置文件、日志)存储体积可减少 30%~50%。 |
节省 Flash 空间,尤其适合存储大量小文件的场景(如传感器日志、设备配置)。 |
跨平台兼容性 |
支持 RT-Thread、FreeRTOS、裸机等嵌入式环境,提供标准 POSIX 接口( |
降低开发迁移成本,应用代码可在不同系统间复用。 |
LittleFS 适用场景与限制
1. 适用场景
资源受限设备:RAM < 64KB、Flash 容量 < 1GB 的 MCU 设备(如 STM32L4、ESP32-C3);
高可靠性需求:需频繁读写且怕断电的场景(如设备配置存储、传感器日志记录);
Flash 存储为主:NOR Flash(常用)、NAND Flash(需配合 ECC 校验)、SPI Flash 等介质;
轻量文件操作:以小文件(< 100KB)为主,无复杂目录层级(建议目录深度 ≤ 3 级)的场景。
不适用场景
大容量存储:Flash 容量 > 1GB 或需存储大文件(> 1MB,如固件、音频)的场景(建议用 FAT32 或 exFAT);
高频随机写:需频繁修改文件中间内容(如数据库文件)的场景(日志型结构随机写性能较低);
复杂权限管理:需多用户权限、文件加密(需额外集成加密模块)的场景(LittleFS 原生无权限控制)。