esp32使用内部flash创建文件系统 | 您所在的位置:网站首页 › 外置flash怎么烧录文件 › esp32使用内部flash创建文件系统 |
文章目录
ESP32使用内部flash创建文件系统声明简介参考资料环境硬件步骤修改flash大小查看硬件flash大小复制工程修改flash大小
添加分区表复制分区表修改分区表修改工程配置
修改源码
心路历程
ESP32使用内部flash创建文件系统
声明
个人学习笔记,仅做参考,能力有限,如有错误请不吝赐教 简介去年的时候,在B站看到了大佬稚晖君的视频,瞬间变成小迷弟,奢望以后能有稚晖君百分之一的成就 (感觉没啥希望😄😄😄) 新的一年准备做人生第一个开源项目(鸡汤闹钟) 因为是刚接触esp32,很多东西不懂,每次遇到问题的时候记录一下,争取养成写博客的习惯 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 实验室设备网 版权所有 |