警告

This document is not updated for ESP32C5 yet, so some of the content may not be correct.

This warning was automatically inserted due to the source file being in the add_warnings_pages list.

存储 API

[English]

本节提供高层次的存储 API 的参考文档。这些 API 基于如 SPI flash、SD/MMC 等低层次驱动。

  • 分区表 API 基于 分区表 ,允许以块为单位访问 SPI flash。

  • 非易失性存储库 (NVS) 在 SPI NOR flash 上实现了一个有容错性,和磨损均衡功能的键值对存储。

  • 虚拟文件系统 (VFS) 库提供了一个用于注册文件系统驱动的接口。SPIFFS、FAT 以及多种其他的文件系统库都基于 VFS。

  • SPIFFS 是一个专为 SPI NOR flash 优化的磨损均衡的文件系统,非常适用于小分区和低吞吐率的应用。

  • FAT 是一个可用于 SPI flash 或者 SD/MMC 存储卡的标准文件系统。

  • 磨损均衡 库实现了一个适用于 SPI NOR flash 的 flash 翻译层 (FTL),用于 flash 中 FAT 分区的容器。

与存储安全相关的信息,请参考 :doc:` 存储安全 <storage-security>`。

备注

建议使用高层次的 API(esp_partition 或者文件系统)而非低层次驱动 API 去访问 SPI NOR flash。

由于 NOR flash 和乐鑫硬件的一些限制,访问主 flash 会影响各个系统的性能。关于这些限制的更多信息,参见 SPI flash API

示例

存储 API 相关例程

例程

描述

nvs_rw_blob

演示了如何在 NVS flash 中使用 C 语言 API 读写 blob 数据类型。

nvs_rw_value

演示了如何在 NVS flash 中使用 C 语言 API 读写整数数据类型。

nvs_rw_value

演示了如何在 NVS flash 中使用 C++ 语言 API 读写整数数据类型。

nvs_bootloader

演示了如何使用引导加载程序代码中可用的 API 来读取 NVS 数据。

nvsgen

演示了如何使用基于 Python 的 NVS 镜像生成工具,根据 CSV 文件内容创建 NVS 分区镜像。

常用文件系统 API

代码示例

描述

fatfs/getting_started

演示了如何使用 FATFS 库在内部 flash 上应用标准文件 API (stdio.h)。

fatfs/fs_operations

演示了如何使用 POSIX API 进行文件系统操作,如移动、删除和重命名文件等。

FATFS API 示例

代码示例

描述

fatfsgen

演示了在主机上使用 Python 工具生成 FATFS 镜像的相关功能。

ext_flash_fatfs

演示了在外部 flash 上使用带有磨损均衡功能的 FATFS。

wear_leveling

演示了在内部 flash 上使用带有磨损均衡功能的 FATFS。

SPIFFS API 示例

代码示例

描述

spiffs

演示了如何使用 SPIFFS API 初始化文件系统,并使用 POSIX 函数处理文件。

spiffsgen

演示了在主机计算机上使用 Python 工具生成 SPIFFS 镜像的功能。

分区 API 示例

代码示例

描述

partition_api

介绍了用于查找特定分区、执行基本 I/O 操作以及通过 CPU 内存映射使用分区的 API 函数。

parttool

演示了在主机计算机上使用 Python 工具生成分区镜像的功能。

VFS 相关示例

代码示例

描述

littlefs

演示了如何使用 LittleFS 组件初始化文件系统,并使用 POSIX 函数处理文件。

semihost_vfs

演示了如何使用 VFS API,利用 POSIX 函数使 ESP 设备访问通过 JTAG 连接的主机上的文件。


此文档对您有帮助吗?