ESP32 学习笔记(二十四)SPIFFS 文件系统

SPIFFS 文件系统

概述

SPIFFS 是一个文件系统,用于嵌入式目标上的 SPI NOR 闪存设备。它支持磨损均衡,文件系统一致性检查等。

注意

  • 目前,spiffs 不支持目录。它产生扁平结构。如果 SPIFFS 安装在 /spiffs 下创建一个带有路径 /spiffs/tmp/myfile.txt 的文件,则会在 SPIFFS 中创建一个名为 /tmp/myfile.txt 的文件,而不是在目录 /spiffs/tmp 下创建一个名为的 myfile.txt。
  • 它不是实时堆栈。一次写入操作可能持续时间比另一次更长。
  • 目前,它没法检测或处理块被损坏的情况。

工具

主机端工具用于创建 SPIFS 分区镜像文件(.bin),其中一个工具是 mkspiffs。您可以使用它从给定文件夹创建镜像文件,然后使用 esptool.py 下载该镜像文件到设备中

为此,您需要获取一些参数:

  • 块大小:4096(SPI Flash的标准)
  • 页面大小:256(SPI Flash标准)
  • 图像大小:分区大小(以字节为单位)(可以从分区表中获取)
  • 分区偏移:分区的起始地址(可以从分区表中获取)

例如:
将目标文件夹打包为 1 兆字节镜像文件:

mkspiffs -c [src_folder] -b 4096 -p 256 -s 0x100000 spiffs.bin

要在偏移量 0x110000 处将镜像文件烧录到 ESP32:

python esptool.py --chip esp32 --port [port] --baud [baud] write_flash -z 0x110000 spiffs.bin

解决问题

  1. 无法从 SPIFFS 中读取到文件内容

这种情况是由于通过工具制作的文件系统格式与程序中的文件系统格式不同导致,可通过运行 ./mkspiffs --version 在你的 mkspiffs 目录和 grep SPIFFS sdkconfig 在你的工程目录,之后对比两者配置的不同之处。

例如:

运行 ./mkspiffs --version 在 mkspiffs 目录中:

mkspiffs ver. 0.2.3-6-g983970e
Build configuration name: generic
SPIFFS ver. 0.3.7-5-gf5e26c4
Extra build flags: (none)
SPIFFS configuration
  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值