当前位置: 首页 > article >正文

ESP32学习--SPIFFS文件系统

文件系统SPIFFS学习

本次学习基于 storage/spiffsgen 例程

前言

在嵌入式系统的学习过程中,我们将越来越频繁的需要去和内存打交道,有的是外置存储,有的是内置的存储。当我们需要管理的内存越来越多的时候,再使用简单的地址读取操作就会显得比较麻烦,这个时候就需要文件系统来帮我们进行管理,本次学习也是基于这个需求展开。

基本介绍

SPIFFS 是一个用于 SPI NOR flash 设备的嵌入式文件系统,支持磨损均衡(嵌入式设备使用的大多数存储芯片都支持每个扇区有限的擦除集,如果没有均衡,则嵌入式设备的寿命可能会受到影响)、文件系统一致性检查等功能。该文件系统只需要少量的RAM就可以运行,这对于一些资源不是很充足的单片机来说非常有用。

配置步骤

方法一直接使用spiffsgen.py

生成文件系统的镜像

我们要使用文件系统首先来讲肯定是需要一个文件系统的镜像,这里我们可以使用 spiffsgen.py这个工具进行制作。这个文件可以在,esp32提供的idf中找到,路径是components/spiffs
在这里插入图片描述

  • image_size:你所设置分区的大小
  • base_dir:想要烧录文件的位置
  • output_file:输出文件的名称

使用示例
在这里插入图片描述
在这里插入图片描述

这样你就可以得到一个可以烧录的bin文件了
然后使用 esptool.py工具烧录进去
可以先擦除我们这个位置的内容 通过下面这个命令
在这里插入图片描述
esptool.py --chip esp32s3 --port /dev/ttyACM0 erase_region 0x110000 0x100000

esptool.py --chip esp32 --port /dev/ttyUSB0 erase_region <start_address>

在这里插入图片描述
打印发现检测不到 ,然后我们再把镜像下载进去
在这里插入图片描述
esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 115200 write_flash <your.bin>

方法二在构建系统中使用(推荐)

第二种方法相对于第一种更加简单,只需要在我们的cmake构建工程中添加如下代码即可

spiffs_create_partition_image(my_spiffs_partition my_folder FLASH_IN_PROJECT)

在这里插入图片描述
老规矩先使用命令擦除flash上面的程序

在这里插入图片描述

esptool.py --chip esp32s3 --port /dev/ttyACM0 --baud 115200 erase_flash

使用idf.py build构建工程
在这里插入图片描述
构建完成之后我们可以在build目录下面发现这两个文件,一个是我们的主程序的文件,一个是spiffs镜像文件,这里我们直接使用idf.py flash esp32的脚本会帮我们自动全部烧进去

观察烧录日志 确实把我们的spiffs镜像给烧录进去了
在这里插入图片描述

尾声

新年的第一篇文章,祝各位新年快乐,天天进步!


http://www.kler.cn/a/468584.html

相关文章:

  • 【学习笔记】数据结构(十)
  • 《AI 造梦:解锁虚拟场景与角色逼真丰富密码》
  • unity学习8:unity的基础操作 和对应shortcut
  • 【算法】查找与排序
  • 【C++】字符串与字符数|组操作详解:strcpy 和 strcat 的使用与解析
  • (六)优化 ChatGPT 交互:任务式 Prompt 的力量
  • gaussdb中怎么查询一个表有多少GB
  • Spring MVC实战指南:构建高效Web应用的架构与技巧(二)
  • JMeter线程组Duration和循环次数设置冲突后,Duration优先级高
  • 代码随想录 day55 第十一章 图论part05
  • 数据结构之双链表(超详解)
  • 【intro】BLEU
  • 圆周率的广泛应用
  • vscode如何离线安装插件
  • 深度学习YOLOv3压双黄线期末项目
  • 7-10 逆序对
  • ArkTS更简洁
  • 贝叶斯算法详解:用概率思维解决分类难题
  • 如何提高软件研发效率?
  • 0042.大学校园生活信息平台+论文
  • 2.1.8 epoll的实现原理
  • 流程图(三)利用python绘制桑基图
  • 指代消解:自然语言处理中的核心任务与技术进展
  • 使用 LangChain 构建聊天机器人:从基础到实战
  • 跨平台游戏引擎 Axmol-2.3.0 发布
  • STM32-笔记37-吸烟室管控系统项目