esp32使用内部flash创建文件系统 您所在的位置:网站首页 外置flash怎么烧录文件 esp32使用内部flash创建文件系统

esp32使用内部flash创建文件系统

#esp32使用内部flash创建文件系统| 来源: 网络整理| 查看: 265

文章目录 ESP32使用内部flash创建文件系统声明简介参考资料环境硬件步骤修改flash大小查看硬件flash大小复制工程修改flash大小 添加分区表复制分区表修改分区表修改工程配置 修改源码 心路历程

ESP32使用内部flash创建文件系统 声明

个人学习笔记,仅做参考,能力有限,如有错误请不吝赐教

简介

去年的时候,在B站看到了大佬稚晖君的视频,瞬间变成小迷弟,奢望以后能有稚晖君百分之一的成就

(感觉没啥希望😄😄😄)

新的一年准备做人生第一个开源项目(鸡汤闹钟)

因为是刚接触esp32,很多东西不懂,每次遇到问题的时候记录一下,争取养成写博客的习惯

参考资料 官方文档https://docs.espressif.com/projects/esp-idf/zh_CN/v4.2-beta1/esp32/api-guides/partition-table官方例程 esp-idf\examples\storage\ext_flash_fatfs官方例程esp-idf\examples\system\console 环境

idf+vscode+wsl

硬件

WROOM-32D

步骤 修改flash大小 查看硬件flash大小

官方文档

https://docs.espressif.com/projects/esp-idf/zh_CN/latest/get-started/get-started-devkitc.html

复制工程

拷贝 esp-idf\examples\storage\ext_flash_fatfs工程到任意一个位置,当然你硬要在原来工程上修改我也拦不住你

修改flash大小

终端执行idf.py menuconfig,第一次执行可能会报错,在执行一次就可以了

idf.py menuconfig

选择serial flasher config

官方默认的是2MB,如果你的也是2MB就不用修改了

修改为对应硬件大小,退出时会有提示按Y保存

添加分区表 复制分区表

从官方例程esp-idf\examples\system\console下面找到partitions_example.csv并刚才复制到工程文件夹下

修改分区表

修改分区大小,自己需要多少就给多少,注意总和不能超过flash大小,偏移地址可以不填,系统会自动计算

修改工程配置

终端执行idf.py menuconfig,选择partition table

选择第一项

选择最后一项

选择后会回到上个界面,选择第二项,修改名字,修改完按回车确认

退出并保存

生成二进制分区表

idf.py partition_table

成功截图

分区表官方参考资料

https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/api-guides/partition-tables.html 修改源码

1.取消外部flash初始化

2.添加文件系统初始化(初始化函数是从官方例程esp-idf\examples\system\console拷贝的)

#define MOUNT_PATH "/extflash" static void initialize_filesystem(void) { static wl_handle_t wl_handle; const esp_vfs_fat_mount_config_t mount_config = { .max_files = 4, .format_if_mount_failed = true}; esp_err_t err = esp_vfs_fat_spiflash_mount(MOUNT_PATH, "storage", &mount_config, &wl_handle); if (err != ESP_OK) { ESP_LOGE(TAG, "Failed to mount FATFS (%s)", esp_err_to_name(err)); return; } }

过程只为快速演示效果,工程不规范的地方请自行修改

过程只为快速演示效果,工程不规范的地方请自行修改

过程只为快速演示效果,工程不规范的地方请自行修改

3.调用初始化

成功截图

心路历程

(题外话:一说心里历程就想起了当初大学的时候,十几个窝在一个宿舍里面玩狼人杀,悍跳预言家的时候老是讲验人的心路历程)

搜了一圈网上没有相关资料(2021,1,4),不知道是我姿势不对还是压根就没有

不要问我为什么不自己写,问就是因为菜

既然面向百度失败,我就去官方历程里面找,然后就找到了ext_flash_fatfs历程

这就非常棒,我感觉这就是我苦苦寻找的她,一行源码我都不可能看,但凡看一眼都是对她的不信任

我编译下载一顿操作,满怀期待的等待着她即将给我的惊喜,结果狠狠给了我一个大嘴巴子,事实证明我在想屁吃

被迫无奈,看了看readme在瞅瞅源码,好把他的外部是指模组外

问题不大,把外部改成内部就可以了,接着就是看官方文档

看着看着就悟了,,彻底悟了,大彻大悟,先这样,再那样就可以了,很简单

第一步是先搞一个分区表,官方文档我看懂了,明白了,但是我不知道表咋弄,路径咋写

但是重点我抓住了,就是csv,我直接在例程里面找,果不其然被我找到了console例程

感觉这就是另一个她阿,文件系统初始化也有了

写不会写,抄我还不会吗,cv工程师上线 加一下初始化函数,改一下挂载地址,perfect



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有