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

2024-02-24 21:44

本文主要是介绍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大小

编译后的分区表

这篇关于T-Dongle-S3开发笔记——分区表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/743466

相关文章

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件