T-Dongle-S3开发笔记——分区表

参考:

ESP32之 ESP-IDF 教学(十三)—— 分区表_esp32分区表-CSDN博客

分区表 - ESP32 - — ESP-IDF 编程指南 latest 文档 (espressif.com)

分区表是 ESP32 划分内部 flash 闪存的清单,它将 flash 划分为多个不同功能的区域用于其他功能。

默认分区如上图

分区表的格式

Name —— 分区名

Name字段可以是任何有意义的名称,但不能超过16个字符(之后的内容将被截断)。该字段对 ESP32并不是特别重要。

Type —— 主类型

Type 字段可以指定为 app (0x00) 或者 data (0x01),也可以直接使用数字 0-254(或者十六进制 0x00-0xFE)。但二级引导程序bootloader会忽略除app 和 data 的类型

如果您的应用程序需要以 ESP-IDF 尚未支持的格式存储数据,请在 0x40-0xFE 内添加一个自定义分区类型。因为 0x00-0x3F 是预留给 esp-idf 的核心功能的

SubType —— 子类型

子类型用于明确具体类型,该字段本质上为长度 8 bit 的数字,内容与具体分区 Type 有关。目前,esp-idf 仅仅规定了 “app” 和 “data” 两种分区类型的子类型含义。

目前esp-idf能识别的已知关键字有:

app 类型下:

factory, test, ota_0, ota_1, ota_2, ota_3, ota_4, ota_5, ota_6, ota_7, ota_8, ota_9, ota_10, ota_11, ota_12, ota_13, ota_14, ota_15

data 类型下:

ota, phy, nvs, coredump, nvs_keys, efuse, esphttpd, fat, spiffs

其余自定义类型要通过数字来表示:见官方文档

Offset & Size —— 偏移地址 & 分区大小

偏移地址指此分区开始的位置,语法上分区的大小和偏移地址可以采用以下表示方法:

十进制数(支持 K 或 M 的倍数单位(分别代表 1024 和 1024² 字节)
以 0x 为前缀的十六进制数,
对于主类型为 app 的分区,要求分区偏移地址必须与0x10000 (64K) 对齐,否则编译分区表时,gen_esp32part.py 工具会报错!

另外,Offset 字段可以留空。如果留空则会发生以下情况:
① 若为首个分区,则将紧跟着分区表开始。
② 若为 app 分区,gen_esp32part.py 工具会自动计算得到一个满足偏移地址对齐要求的偏移地址。
③ 对于其余情况,偏移地址将紧跟在前一个分区之后。

Flag —— 标记

当前仅支持 encrypted 标记。如果 Flags 字段设置为 encrypted,且已启用 Flash 加密功能,则该分区将会被加密。其余情况此标记可以省略。

内置分区表

目录位置

分区若偏移地址为空,则会紧跟着前一个分区之后开始;若为首个分区,则将紧跟着分区表开始。

在 flash 的 默认偏移地址 0x8000 处烧写一张分区表。

分区表的长度为 0xC00 字节(最多可以保存 95 条分区表条目)。

选择分区表

自定义分区表

选择模板

更名partitions.csv(可任意),放项目根目录里面

设置本地分区表

重新编译

报错

Partitions tables occupies 3.1MB of flash (3211264 bytes) which does not fit in configured flash size 2MB. Change the flash size 
in menuconfig under the 'Serial Flasher Config' menu.

 大概意思是分区表的大小大于flash设置大小

根据实际情况设置flash大小

编译后的分区表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/488525.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

反序列化字符串逃逸 [安洵杯 2019]easy_serialize_php1

打开题目 $_SESSION是访客与整个网站交互过程中一直存在的公有变量 然后看extract()函数的功能: extract($_POST)就是将post的内容作为这个函数的参数。 extract() 函数从数组中将变量导入到当前的符号表(本题的作用是将_SESSION的两个函数变为post传参) function…

展锐S8000安卓核心板参数_紫光展锐5G核心板模块定制方案

展锐S8000核心板模块是基于八核S8000平台开发设计的,采用了先进的6nm EUV制程技术。搭载了全新的智能Android 13操作系统,展现出超强的画面解析能力和高性能双通道MIPI,拥有120Hz高刷新率,独立NPU和3.2TOPS Al算力,同时…

【leetcode热题】填充每个节点的下一个右侧节点指针

给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下: struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到…

运维SRE-15 自动化批量管理-ansible1

## 1.什么是自动化批量管理重复性工作与内容: 思考如何自动化完成. 部署环境,批量查看信息,批量检查:自动化 一般步骤:1.如何手动实现2.如何自动化管理工具,批量实现3.注意事项:想要自动化一定要先标准化(所有环境,软件,目录一致)…

.net6 webapi log4net完整配置使用流程

前置&#xff1a;为项目安装如下两个依赖 1.创建文件夹cfgFile 2.创建log4net.Config <?xml version"1.0" encoding"utf-8" ?> <log4net><appender name"ConsoleAppender" type"log4net.Appender.ConsoleAppender"…

猫头虎分享已解决Bug || ReferenceError: process is not defined ‍

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

【操作系统】14.I/O设备怎么分配和回收?

5.2 I/O设备怎么分配和回收&#xff1f; 5.2.1 I/O核心子系统 I/O调度 设备保护 假脱机技术&#xff08;SPOOLing技术&#xff09; ​ 输入井和输出井 ​ 输入进程和输出进程 ​ 输入缓冲区和输出缓冲区 设备分配与回收 ​ 设备分配应考虑的因素 ​ 静态分配与动态分配 ​ 设备…

#12解决request中getReader()和getInputStream()只能调用一次的问题

目录 1、背景 2、解决方案 2.1、自定义HttpServletRequestWrapper 2.2、JsonRequestHeaderParamsHelper 2.3、HttpServletRequestReplacedFilter 2.4、使用 1、背景 当前系统Content-Type为application/json&#xff0c;参数接收方式采用RequestBody和RequestParam&#…

绿盾限制终端网络访问权限会恢复后,别的网站访问正常就是无法访问钉钉网站和下载东西

环境&#xff1a; Win10 专业版 钉钉7.5.5 绿盾7.0 问题描述&#xff1a; 绿盾限制终端网络访问权限会恢复后&#xff0c;别的网站访问正常就是无法访问钉钉网站和下载东西 解决方案&#xff1a; 排查方法 1.重置浏览器或者更换浏览器测试&#xff08;未解决&#xff09…

window: C++ 获取自己写的dll的地址

我自己用C写了一个插件,插件是dll形式的,我的插件式在dll的目录下有个config文件夹,里面是我用json写的插件配置文件,当插件运行的时候我需要读取到json配置文件,所有最重要的就是如何获取dll的路径. 大概就是这么个结构, 我自己封装了一个函数.只适用于window编程,因为里面用…

学习JAVA的第二天(基础)

目录 基本概念 关键字 class关键字 字面量 练习 变量 定义格式 变量使用 数据类型 基本数据类型 标识符 命名规则 键盘录入 1.导包 2.创建对象 3.接受数据 运算符 算术运算符 练习 隐式转换&#xff08;自动类型提升&#xff09; 强制转换 自增自减运算符 …

26-k8s的附加组件-图形化管理工具dashboard

一、简单介绍 Dashboard是k8s集群管理的一个WebUI&#xff0c;它是k8s的一个附加组件&#xff0c;所以需要单独来部署&#xff1b; 我们可以通过图形化的方法&#xff0c;创建、删除、修改、查询k8s资源&#xff1b; 二、部署安装dashboard组件 Github地址&#xff1a;GitHub…