本文章 来自原创专栏《ESP32教学专栏 (基于ESP-IDF)》,讲解如何使用 ESP-IDF 构建 ESP32 程序,发布文章并会持续为已发布文章添加新内容! 每篇文章都经过了精打细磨!
↓↓↓通过下方对话框进入专栏目录页↓↓↓
CSDN 请求进入目录 _ O x
是否进入ESP32教学导航(基于ESP-IDF)?
确定
前边我们学习了分区表和虚拟文件系统(VFS),这篇文章我们将要使用它们
一、磨损均衡API
ESP32 所使用的 flash,特别是 SPI flash,多数具备扇区结构,且每个扇区仅允许有限次数的擦除/修改操作。为了避免过度使用某一扇区,乐鑫提供了磨损均衡组件,无需用户介入即可帮助用户均衡各个扇区之间的磨损。
1. 两个重要函数
函数名 | esp_vfs_fat_spiflash_mount() |
---|---|
函数原型 | esp_err_t esp_vfs_fat_spiflash_mount (const char *base_path, const char *partition_label, constesp_vfs_fat_mount_config_t *mount_config, wl_handle_t *wl_handle) |
含义 | 在SPI flash中初始化Fat文件系统,初始化磨损均衡组件,并通过给定的挂载点注册到VFS。 |
返回值 | esp_err_t |
参数 | base_path:类型为const char * ;为完整的挂载点名,如:/data partition_label:类型为 const char * ;欲挂载的分区标签mount_config:类型为 esp_vfs_fat_mount_config_t * ;通过结构体传递挂载配置wl_handle:类型为 wl_handle_t * ;在这里输出一个磨损均衡组件句柄 |
函数名 | esp_vfs_fat_spiflash_unmount() |
---|---|
函数原型 | esp_err_tesp_vfs_fat_spiflash_unmount(const char *base_path, wl_handle_twl_handle) |
含义 | 卸载Fat文件系统并从VFS中卸载,同时关闭相应的磨损均衡组件 |
返回值 | esp_err_t |
参数 | base_path:类型为const char * ;欲卸载的挂载点名wl_handle类型为 wl_handle_t ;挂载时获得的磨损均衡组件句柄 |
2. 相关配置结构体
对于上文提到的结构体
typedef struct {
// 如果FAT分区挂载失败,且该成员为true,则创建分区表并格式化文件系统。
bool format_if_mount_failed;
// 挂载后的文件系统最大可以开启的文件数
int