文件系统

[English]

已支持的文件系统列表:

文件系统特性比较

关键特性

NVS 库

FAT 文件系统

SPIFFS 文件系统

LittleFS 文件系统

特点

键值对保存,接口安全

操作系统支持,兼容性强

针对嵌入式开发,资源占用低

资源占用低,读、写、擦除速度快

应用场景

参数保存

音视频、文件保存

音视频、文件保存

文件保存

容量

KB-MB

GB

< 128 MB

< 128 MB

目录支持

X

X

磨损均衡

可选

读写效率

0

0

0

资源占用

0

0

1

1

掉电保护

X

X

加密

X

备注

  • 0:暂无数据或不参与比较。

  • 1:低 RAM 占用。

NVS 库

非易失性存储 (NVS) 库主要用于读写在 flash NVS 分区中存储的数据。NVS 中的数据以键值对的方式保存,其中键是 ASCII 字符串,值可以是整数、字符串、二进制数据 (BLOB) 类型。NVS 支持掉电保护和数据加密,适合存储一些较小的数据,如应用程序参数等。如需存储较大的 BLOB 或者字符串,请考虑使用基于磨损均衡库的 FAT 文件系统。

参考文档:

示例程序:

FAT 文件系统

ESP-IDF 使用 FatFs 库实现了对 FAT 文件系统的支持,FatFs 是独立于平台和存储介质的文件系统层,通过统一接口实现对物理设备(如 flash、SD 卡)的访问。用户可以直接调用 FatFs 的接口操作,也可以借助 C 标准库和 Posix API 通过 VFS(虚拟文件系统)使用 FatFs 库的大多数功能。

FAT 文件系统操作系统兼容性强,广泛应用于 USB 存储盘或 SD 卡等移动存储设备上。ESP32 系列芯片通过支持 FAT 文件系统,可以实现对这些常见存储设备的访问。

参考文档:

示例程序:

SPIFFS 文件系统

SPIFFS 是一个专用于 SPI NOR flash 的嵌入式文件系统,原生支持磨损均衡、文件系统一致性检查等功能。用户可以直接调用 SPIFFS 提供的 Posix 样式接口,也可以通过 VFS 操作 SPIFFS 的大多数功能。

SPIFFS 作为嵌入式平台 SPI NOR Flash 的专用文件系统,相比 FAT 文件系统占用 RAM 资源更少,但是仅用于支持容量小于 128 MB 的 Flash 芯片。

参考文档:

示例程序:

LittleFS 文件系统

LittleFS 是一个专用于 SPI NOR flash 的嵌入式文件系统,原生支持磨损均衡、文件系统一致性检查、断电保护等功能。

LittleFS 作为高完整性的嵌入式平台 SPI NOR Flash 文件系统,支持高效的读写速度且占用的 RAM 资源更少。

LittleFS 目前由第三方维护,可通过包管理器轻松获取。

参考文档:

示例程序:

虚拟文件系统 (VFS)

ESP-IDF 虚拟文件系统 (VFS) 组件可以为不同文件系统 (FAT, SPIFFS) 提供统一的接口,也可以为设备驱动程序提供类似文件读写的操作接口。

参考文档: