ESP32S3学习——SPIFFS 文件系统

2023-11-13

芯片:esp32s3

开发环境:espidfv4.4

一、官网相关资料

1)简介

SPIFFS 是一个用于 SPI NOR flash 设备的嵌入式文件系统,支持磨损均衡、文件系统一致性检查等功能

2)说明
  • 目前,SPIFFS 尚不支持目录,但可以生成扁平结构。如果 SPIFFS 挂载在 /spiffs 下,在 /spiffs/tmp/myfile.txt 路径下创建一个文件则会在 SPIFFS 中生成一个名为 /tmp/myfile.txt 的文件,而不是在 /spiffs/tmp 下生成名为 myfile.txt 的文件;

  • SPIFFS 并非实时栈,每次写操作耗时不等;

  • 目前,SPIFFS 尚不支持检测或处理已损坏的块。

  • SPIFFS 只能稳定地使用约 75% 的指定分区容量。

  • 当文件系统空间不足时,垃圾收集器会尝试多次扫描文件系统来寻找可用空间。根据所需空间的不同,写操作会被调用多次,每次函数调用将花费几秒。同一操作可能会花费不同时长的问题缘于 SPIFFS 的设计,这个问题可以通过 SPIFFS 配置 部分缓解。

  • 被删除文件通常不会被完全清除,会在文件系统中遗留下无法使用的部分。

  • 如果 ESP32-S3 在文件系统操作期间断电,可能会导致 SPIFFS 损坏。但是仍可通过 esp_spiffs_check 函数恢复文件系统。详情请参阅官方 SPIFFS FAQ

二、简单上手

1、配置结构体

esp_vfs_spiffs_conf_t conf = {

.base_path = "/spiffs",

.partition_label = NULL,

.max_files = 5,

.format_if_mount_failed = true

};

2、注册 esp_err_t ret = esp_vfs_spiffs_register(&conf); 多合一函数

3、获取spiffs信心ret = esp_spiffs_info(conf.partition_label, &total, &used);总容量,已使用容量’

4.打开/创建文件FILE* f = fopen("/spiffs/hello.txt", "w");

5、写入关闭文件fprintf(f, "Hello World!\n");

fclose(f);

6、 删除文件:unlink("/spiffs/foo.txt");

7、重命名文件:rename("/spiffs/hello.txt", "/spiffs/foo.txt")

8、读取打印文件信息转为字符串

f = fopen("/spiffs/foo.txt", "r");

char line[64];

fgets(line, sizeof(line), f);

fclose(f);

// strip newline

char* pos = strchr(line, '\n');

if (pos) {

*pos = '\0';

}

9、卸载spiffs:esp_vfs_spiffs_unregister(conf.partition_label);

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ESP32S3学习——SPIFFS 文件系统 的相关文章

  • STM32F207 I2C 测试失败

    我正在使用 STM32F207 微控制器在 STM3220G EVAL 板上学习嵌入式开发 我尝试通过连接同一芯片上的两个 I2C2 和 I2C3 模块并发送 接收字符来测试 I2C 接口 这是我当前编写的代码 使用 mdk arm 5 i
  • 毕设开题分享 单片机智能教室系统(智能照明+人数统计)

    1 简介 Hi 大家好 今天向大家介绍一个学长做的单片机项目 单片机智能教室系统 智能照明 人数统计 大家可用于 课程设计 或 毕业设计 项目分享 https gitee com feifei1122 simulation project
  • 在职状态下继续学习的心得体会

    本来平时记录的都是一些技术点的学习和使用 今天打算记录一下学习方法 当然不一定适合所有人 因人而异 仅供参考 学习这件事 对于IT行业来说 真的是活到老学到老 技术的更新迭代速度非常快 而且总是有那么一些公司特别的卷 没办法 改变不了外因
  • 我当年自学黑客(网络安全)的一些心得!(内附学习笔记)

    前 言 写这篇教程的初衷是很多朋友都想了解如何入门 转行网络安全 实现自己的 黑客梦 文章的宗旨是 1 指出一些自学的误区 2 提供客观可行的学习表 3 推荐我认为适合小白学习的资源 大佬绕道哈 文末有福利 一 自学网络安全学习的误区和陷阱
  • 通过一个寒假能学会黑客技术吗?看完你就知道了

    一个寒假能成为黑客吗 资深白帽子来告诉你 如果你想的是学完去美国五角大楼内网随意溜达几圈 想顺走一点机密文件的话 劝你还是趁早放弃 但是成为一名初级黑客还是绰绰有余的 你只需要掌握好渗透测试 Web安全 数据库 搞懂web安全防护 SQL注
  • 为什么C语言没有被C++所取代呢?

    今日话题 为什么C语言没有被C 所取代呢 C 的复杂编译器实现和嵌入式平台的限制 使C语言保持了其地位 嵌入式系统多数仅支持C 即使支持C 也会限制某些功能 尤其是异常处理和RTTI 此外 C 引入的功能增加了二进制文件大小和运行时内存占用
  • 学习STM32正点原子好吗?

    今日话题 学习STM32正点原子好吗 正点原子的教程内容简单明了 代码也清晰直接 使初学者能够轻松理解其功能和使用方法 尤其对于需要快速完成大学作业等任务的大学生来说 可以直接借鉴并稍作修改 便可满足需求 正点原子提供的资料通俗易懂 适合用
  • 会stm32有机会进大公司吗?

    今日话题 会stm32有机会进大公司吗 我本科期间参与了飞思卡尔和电赛等比赛 使用过多种单片机 但渐渐发现单片机只是其中的一小部分 不要过分迷恋所谓的单片机基础和技巧 更值得深入研究的是C语言 如果你对此感兴趣 我愿意无偿分享一个资源包 其
  • Python采集猎聘网站招聘数据内容,看看现在职位风向

    嗨喽 大家好呀 这里是爱看美女的茜茜呐 环境使用 Python 3 10 Pycharm 模块使用 第三方模块 需安装 requests gt pip install requests pandas gt pip install panda
  • Freertos低功耗管理

    空闲任务中的低功耗Tickless处理 在整个系统运行得过程中 其中大部分时间都是在执行空闲任务的 空闲任务之所以执行 因为在系统中的其他任务处于阻塞或者被挂起时才会执行 因此可以将空闲任务的执行时间转换成低功耗模式 在其他任务解除阻塞而准
  • STM32F4XX的12位ADC采集数值超过4096&右对齐模式设置失败

    文章目录 一 前言 二 问题1 数值超过4096 三 问题1的排错过程 四 问题2 右对齐模式设置失败 五 问题2的解决方法 5 1 将ADC ExternalTrigConv设置为0 5 2 使用ADC StructInit 函数 一 前
  • 【计算机毕业设计】实验室预约管理

    身处网络时代 随着网络系统体系发展的不断成熟和完善 人们的生活也随之发生了很大的变化 人们在追求较高物质生活的同时 也在想着如何使自身的精神内涵得到提升 而读书就是人们获得精神享受非常重要的途径 为了满足人们随时随地只要有网络就可以看书的要
  • 【计算机毕业设计】精品课程在线学习系统

    如今社会上各行各业 都喜欢用自己行业的专属软件工作 互联网发展到这个时候 人们已经发现离不开了互联网 新技术的产生 往往能解决一些老技术的弊端问题 因为传统精品课程学习信息管理难度大 容错率低 管理人员处理数据费工费时 所以专门为解决这个难
  • 【VUE毕业设计】基于SSM的在线课堂学习设计与实现(含源码+论文)

    文章目录 1 项目简介 2 实现效果 2 1 界面展示 3 设计方案 3 1 概述 3 2 系统流程 3 3 系统结构设计 4 项目获取
  • 利用CHAT写实验结论

    问CHAT 通过观察放置在玻璃表面上的单个水滴 人们可以观察到水滴充当成像系统 探究这样一个透镜的放大倍数和分辨率 CHAT回复 实验报告标题 利用玻璃表面的单一水滴观察成像系统的放大倍数和分辨率 一 实验目的 通过对比和测量 研究和探索玻
  • 跨平台UI自动化框架:Airtest,游戏开发和应用测试的利器

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 【GRNN-RBFNN-ILC算法】【轨迹跟踪】基于神经网络的迭代学习控制用于未知SISO非线性系统的轨迹跟踪(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 2 1 第1部分 2 2 第2部分
  • 核心耦合内存在 STM32F4xx 上可执行吗?

    尝试从 STM32F429s CCM 运行代码 但每当我命中 CCM 中的第一条指令时 我总是会遇到硬故障 并且 IBUSERR 标志被设置 该指令有效且一致 STM32F4xx 是否可能不允许从 CCM 执行 数据访问效果良好 alios
  • PWM DMA 到整个 GPIO

    我有一个 STM32F4 我想对一个已与掩码进行 或 运算的 GPIO 端口进行 PWM 处理 所以 也许我们想要 PWM0b00100010一段时间为 200khz 但随后 10khz 后 我们现在想要 PWM0b00010001 然后
  • 当端点和 PMA 地址均更改时,CubeMX 生成的 USB HID 设备发送错误数据

    我正在调试我正在创建的复合设备的问题 并在新生成的仅 CubeMX 代码中重新创建了该问题 以使其更容易解决 我添加了少量代码main 让我发送 USB HID 鼠标点击 并在按下蓝色按钮时使 LED 闪烁 uint8 t click re

随机推荐

  • uboot以tag方式给内核传参

    1 tag方式传参 1 struct tag tag是一个数据结构 在uboot和linux kernel中都有定义tag数据机构 而且定义是一样的 2 tag header和tag xxx tag header中有这个tag的size和类
  • 查找二叉树的从根节点到叶子节点的所有路径,递归,c/c++描述

    前面我们写过一篇 讨论如何用栈的方法找到从根节点到叶子节点的路径 其实用递归的方法也可以 但递归也要用到数组来保存已经访问过的路径节点 当根节点等于叶子节点时 表示已经找到了一条从根节点到叶子节点的完整路径 查找函数findAllPathA
  • win 7 安装 VMware 14的bug

    win 7 安装 VMware 14的bug 问题描述 安装 VMware 10 的bug 出现 Failed to create the requested registry keyKey Installer Error 1021 安装
  • 我的错误

    数据库连接错了 oracle用一个数据实例查询 web用一个数据实例查询 我也是醉了 两个小时浪费了 罪过 罪过
  • Qt——(详细)“项目在Debug构建环境下能运行而在Release构建环境下不能运行”解决方案之一,以及 禁用(黄色)警告

    系列文章目录 提示 文章目录 系列文章目录 前言 环境 一 问题 准备工作 为了在Release环境下可以进行断点调试 分析 二 解决 1 根据需求 对函数类型进行更改 2 根据需求 在函数内添加 return int 延伸 禁用警告 消除
  • 记一次浏览器下载错误处理-失败网络错误

    背景 最近在自己电脑上Chrome浏览器正常使用 但只要是下载软件 就会在下载几十秒后 自动停止 报失败 网络错误 导致文件都下载不成功 如下图 猜测是更改了哪块的配置 导致一直中断 可以依次检查以下几种方案 1 检查下载文件目录是否存在
  • 双十一一大波建站优惠来袭,这不薅点来建站?

    双十一 哟呼 一年一度双十一又到了 看了一下今年双十一 确实是今年以来 最优惠的时候 这次就教大家买配套服务来建站吧 先说一下个人用户 再说一下企业用户 注意 个人用户可以薅的 企业用户也可以先去薅了先 本文只做优惠购买引导嗷 需要具体建站
  • C++ —— Argument Dependent Lookup

    命名空间的出现对于C 的影响是非常大的 比如说using声明和using指令或者使用namespace作用域加以限定的名字 还记得自己阅读的第一份源码是Laurent Gomila写的SFML游戏引擎 的源代码 阅读的第一份源码居然如此优美
  • 【03.02】大数据的多任务编程-进程

    当涉及到大数据处理时 多任务编程和进程管理是非常重要的概念 Python 提供了一些强大的库来处理这些任务 其中最常用的是 multiprocessing 模块 在本教程中 我们将使用 multiprocessing 模块来展示一个有关大数
  • RockerMQ集群部署

    目录 一 Broker集群模式 1 单Master 2 多Master多Slave模式异步复制 3 多Master多Slave模式同步双写 二 集群搭建实践 1 集群架构 2 克隆生成rocketmqos1 3 修改rocketmqos1配
  • Ubuntu-使用Xftp和Xshell连接

    流程如下 1 检查是否安装了 vsftpd vsftpd version 如果没有安装 则使用如下命令进行安装 apt get install vsftpd 2 检测是否安装了ssh ps e grep ssh 如果没有安装 则使用如下命令
  • 华为云备份会上传私密相册吗_2 亿部华为手机背后,这个功能不能忽视

    原标题 2 亿部华为手机背后 这个功能不能忽视 华为消费者业务昨天宣布 在全球消费者和合作伙伴的热情支持下 凭借华为 P20 系列 Mate20 系列 荣耀10 等多款华为 荣耀机型在市场上的优异表现 2018 年华为智能手机发货量 含荣耀
  • 逆序输出 之(单词整体顺序不变,单词的每个字母逆序输出)

    字符串反转 题目描述 小C很喜欢倒着写单词 现在给你一行小C写的文本 你能把每个单词都反转并输出它们吗 输入 输入包含多组测试样例 第一行为一个整数T 代表测试样例的数量 后面跟着T个测试样例 每个测试样例占一行 包含多个单词 一行最多有1
  • 【Java基础】重写equals方法详讲

    一 重写equals方法 Java比较学习 重写equals方法的安全写法 1 重写equals方法的两种方式 这里提供两个比较常见的equals重写方法 用instanceof实现重写equals方法 用getClass实现重写equal
  • 【Mojo】[英] Getting Started with Mojo ️‍

    本文共计5171字 预计阅读时间5分钟 注 此文被列入翻译计划 Mojo the new Programming Language for all AI developers is as simple as Python and as fa
  • wincc使用C脚本实现用户登录

    C脚本实现用户登录 脚本介绍 案例介绍 程序案例 脚本介绍 登录 pragma code useadmin dll include PWRT api h pragma code PWRTLogin 1 PWRTLogin 参数必须是 CHA
  • 如何用 Python 获取实时的股票数据?

    这个我会 先上图 这篇回答中 我将向你展示两种不同的代码版本 加强版和一般版 代码运行环境说明 非常重要 Python版本要求 Python 3 需要安装的库 efinance 库的安装方法是 打开 cmd 命令提示符或者其他终端工具 输入
  • moshi 极简封装

    目录 前言 Jackson的基本使用 Jackson获取泛型类型的巧妙处理 借鉴jackson优化moshi的封装 使用 总结 前言 之前写了一篇文章是介绍moshi的基本使用和实战 感兴趣的可以先看一下对kotlin友好的现代 JSON
  • Linux命令:kill

    kill命令 终止某个指定PID的服务进程 root LAPTOP HJMUH10E home simon kill 97 killall命令 终止某个指定名称的服务所对应的全部进程 root LAPTOP HJMUH10E home si
  • ESP32S3学习——SPIFFS 文件系统

    芯片 esp32s3 开发环境 espidfv4 4 一 官网相关资料 1 简介 SPIFFS 是一个用于 SPI NOR flash 设备的嵌入式文件系统 支持磨损均衡 文件系统一致性检查等功能 2 说明 目前 SPIFFS 尚不支持目录