自定义 ESP32 分区表 partitions.csv
最近在 ESP32 编译中遇到了以下问题:
esp_image: Image length 1057652 doesn't fit in partition length 1048576
boot: Factory app partition is not bootable
boot: No bootable app partitions in the partition table
这里应该是分区表分配给 APP 的空间不够。借此契机来了解一下 ESP32 的分区表 partitions.csv
吧。
1. ESP32 预定义分区表
make menuconfig
配置中可选择以下预定义分区表:
Single factory app, no OTA
Factory app, two OTA definitions
接下来可以分别查看其中的具体信息。
1.1 Single factory app, no OTA
# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x6000,
phy_init, data, phy, 0xf000, 0x1000,
factory, app, factory, 0x10000, 1M,
我们可以看到:
- 定义了两个用于存储 NVS 库分区和 PHY 初始化数据的数据区域
- 在0x10000(64 KB) 偏移量处为 factory 应用程序,定义的长度是 1 M
故此时程序固件大于 1 M,即会出现文章开头的报错。
1.2 Factory app, two OTA definitions
# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x4000,
otadata, data, ota, 0xd000, 0x2000,
phy_init, data, phy, 0xf000, 0x1000,
factory, 0, 0, 0x10000, 1M,
ota_0, 0, ota_0, 0x110000, 1M,
ota_1, 0, ota_1, 0x210000, 1M,
我们可以看到:
- 有 factory、ota_0 和 ota_1三个应用程序分区定义,这三种 Type 都设置为 app。长度大小都是 1M;
- 有一个 ota data 区域,一般用于保存 OTA 更新的数据。 如果 ota data 为空,它将执行 factory 应用程序。
2. 解决方案:自定义 ESP32 分区表
拿 Single factory app, no OTA
来举例,如果 程序固件 大于 1 M,即会出现文章开头的错误。此时我们可以做如下修改(flash 为 4 M 时):
# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x6000,
phy_init, data, phy, 0xf000, 0x1000,
factory, app, factory, 0x10000, 2M,
修改后如果程序固件不大于 2 M,就不会报错了。
自定义 ESP32 分区表 partitions.csv相关推荐
- ESP32 快速入门(九):自定义 ESP32 分区表 partitions.csv
最近在 ESP32 编译中遇到了以下问题: esp_image: Image length 1057652 doesn't fit in partition length 1048576 boot: ...
- ESP32分区表,flash大小修改
分区表: 用Excel表格打开分区表文件partitions_singleapp.csv 例如我的路径E:\Espressif\frameworks\esp-idf-v4.3.2\components ...
- Arduino ESP8266自定义配置分区表
ESP8266自定义分区表配置 随着项目的不断开发,项目文件也不断在增大,在没有考虑更换主硬件的条件下,最大开发利用有限资源势在必行,所以今天带来ESP8266自定义分区表的配置. 我这里以版本:2. ...
- 乐鑫Esp32学习之旅 22 讨论下程序员 “青春饭” 那些事,分享在esp32实现多种加密算法md5 |AES CBC-ECB| Sha1 | Sha256 等,附带Demo;
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 " ...
- 乐鑫Esp32学习之旅② 巧用eclipes编辑器,官方教程在Windows下搭建esp32开发环境,打印 “Hello World”。
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 " ...
- 乐鑫Esp32学习之旅 23 安信可 esp32-a1s 音频开发板移植最新 esp-adf 音频框架,小试牛刀如何实现在线文字转语音播放。
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 " ...
- 乐鑫Esp32学习之旅11 入门 乐鑫esp-adf 音频框架开发,造一个蓝牙耳机,实现切换歌曲,获取歌曲信息等功能。(附带Demo)
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 " ...
- 乐鑫Esp32学习之旅28 分享在 esp32 SDK实现驱动 Flash W25Q32 的封装,扩大容量存储更多的资源。(开源源码工程)。
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 系列一:ESP32系列模组基础学习系列笔记 1. 爬坑学习新旅程,虚 ...
- 乐鑫Esp32学习之旅27 带你在Windows10平台下用自带的Linux安装 ESP8266/ESP32 环境,再无需额外安装虚拟机了。
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 " ...
最新文章
- 从0开始搭建坚不可摧的Web系统主流架构
- Gridview分页模板
- 性能翻倍 IBM借DS3500拓中低端存储市场
- VisualStudio C++内存泄漏的检测方法(二)
- mysql zip 安装
- 超全超详细AC-DC电源模块测试教程!
- IDEA打开父类的接口方法快捷键
- 虚拟机nfs服务器的安装,linux 安装nfs服务器
- Eclipse配置Tomcat并运行
- dedecms调用日期格式化形式大全
- 容灾服务器作用,存储容灾服务
- 笔记本风扇声音大怎么办
- 文献笔记:Contrast-Phys: Unsupervised Video-based Remote Physiological Measurement viaSpatiotemporal Con
- vmware虚拟机运行速度卡慢原因分析及解决办法大全(二)
- HCSC 2022cvpr 训练报错
- scala 中 foreach 的作用解释
- 2021年全球与中国农用拖拉机变速器行业市场规模及发展前景分析
- 分页的自由点击和一整页的翻越
- android日历窗口实现,基于Android日历及记事功能完整实现.doc
- 晨曦记账本怎么导出明细的详细步骤