ESP32 快速入门(九):自定义 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 快速入门(九):自定义 ESP32 分区表 partitions.csv相关推荐
- 自定义 ESP32 分区表 partitions.csv
最近在 ESP32 编译中遇到了以下问题: esp_image: Image length 1057652 doesn't fit in partition length 1048576 boot: ...
- java day53【 Mybatis框架概述 、 Mybatis 框架快速入门、自定义 Mybatis 框架 】
第1章 框架概述 1.1 什么是框架 1.1.1 什么是框架 框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种 定义认为,框架是可被应用开发者定 ...
- esp32开发快速入门 8 : MQTT 的快速入门,基于esp32实现MQTT通信
MQTT 介绍 简介 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的&quo ...
- 第二章 Vue快速入门-- 28 自定义按键修饰符
事件处理-按键修饰符 js 里面的键盘事件对应的键码 1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head&g ...
- 权限操作-springSecurity快速入门-使用自定义页面
使用自定义页面 spring-security.xml配置 <?xml version="1.0" encoding="UTF-8"?> <b ...
- 乐鑫Esp32学习之旅14 esp32 sdk编程实现门户强制认证,连接esp32热点之后,自动强制弹出指定的登录html界面。(附带Demo)
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 " ...
- Python+ESP32 快速上手(九、控制1602LCD屏幕显示内容
Python+ESP32 快速上手(九.控制1602LCD屏幕显示内容) 一.九.控制1602LCD屏幕显示内容 二,代码 来自 一.九.控制1602LCD屏幕显示内容 二,代码 import tim ...
- VSCODE+Arduino生态快速入门ESP32(一)——点个呼吸灯、开个定时器
VSCODE+Arduino生态快速入门ESP32(一)--点个呼吸灯.开个定时器 我手里这块是ESP32WROOM开发板,20多块钱,性价比非常高. 1.环境搭建 环境搭建就不在此赘述,CSDN上的 ...
- ESP32学习入门:WiFi连接网络
目录 一.ESP32简单介绍 二.ESP32 Wi-Fi模块介绍 三.ESP32 Wi-Fi 编程模型 四.ESP32 Wi-Fi 事件处理流程 五.ESP32 Wi-Fi开发环境 六.ESP32 W ...
最新文章
- 九度OJ 1339:ACM (排序)
- 鼠标控制方向java代码_java鼠标操控小程序
- Java黑皮书课后题第2章:*2.23(驾驶费用)编写一个程序,提示用户输入驾驶的距离、每加仑多少英里的汽车燃油性能值,以及每加仑的价格,然后显示旅程的费用
- case when then的用法
- jupyter notebook代码导出_Jupyter Notebook导出包含中文的pdf_亲测有效
- 前端-面试题(答案仅限于自己的理解,非正确答案)
- 845B - Luba And The Ticket
- 416亿元公有云市场:阿里173亿、腾讯50亿、华为35亿
- Windows下 tuxedo 安装及测试
- 【笔试/面试】—— 计算一个数二进制形式中 0 的个数
- 服务器硬盘检测工具有哪些,最常用的10大服务器管理工具
- 推荐一款神仙颜值的 Redis 客户端工具
- GridView中DataFormatString属性的取值
- html 如何在按钮中加字,html button标签 语法
- 老毛子(Padavan)路由器解锁网易云灰色音乐
- 【翻译服务(1)】有道智云使用入门及文本、图片和语音翻译服务
- 华为手机使用应用沙盒动态修改imsi参数
- 神州优车上云之路:如何在效率、质量和成本三方面达到平衡?
- CWND和HWND之间的关系和转换 和获取方法
- 现在很多人都想做抖音短视频,那我们应该怎样去做呢?一起来看一吧
热门文章
- SOC课程——②——Verilog程序(明德杨代码规范)
- Android开发音效增强中铃声播放Ringtone及声音池调度SoundPool的讲解及实战(超详细 附源码)
- android 优秀的开源框架整理
- Matlab安装bav-io插件时报错:Either you are offline, a firewall is blocking EEGLAB from accessing itsplugin s
- CTO 写低级 Bug,致公司 70 GB 数据泄露!
- Python玩耍:一个小小的爬虫,在一堆公司列表里筛选出总部位于中国的公司
- Android 开源框架精选
- Python集合(附练习题)
- 〖Python 数据库开发实战 - Python与Redis交互篇⑪〗- 综合案例 - 新闻管理系统 - 缓存新闻数据至redis
- 计算机网络(期末复习5、6章)