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 接口(open/read/write)。

降低开发迁移成本,应用代码可在不同系统间复用。

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 原生无权限控制)。