ESP32分区表介绍

1.分区表简介

        ESP32分区表就是管理ESP32的flash存储内容。其中主要优点体现在以下几个方面

        1.存储空间优化:通过将flash划分不同的分区,每个分区根据其功能定义,可以有效利用存          储空间,确保资源得到最大化利用。

        2.数据管理维护更加方便,只需关注相关分区,无需对整个flash进行操作

         3.灵活性,分区表可以根据用户的需求定义。可以设置一个或多个用于OTA的分区。

        使得版本更新更加安全,若新版本存在问题,还可以回滚到旧版本,确保系统稳定性。

2.分区表格式

        一种是.csv格式用于配置,另一种是.bin文件格式用于烧录

        在项目的代码编译过程中将自动转换

        手动将CSV文件转换为二进制文件指令如下

python gen_esp32part.py input_partitions.csv binary_partitions.bin

        手动将二进制文件转换位CSV文件指令如下

python gen_esp32part.py binary_partitions.bin input_partitions.csv

3.自定义分区表

1、先按照如下图打开自定义分区表功能

2、在Vscode中按下“Ctrl+Shift+P”快捷键打开命令面板,并在搜索栏内输入“打开分区表编辑器”,

按下图配置各个分区大小

首先按下"Add New Row”选项添加子分区条目然后设置条目的类型,偏移和大小。最后按下“Save”保存.

Name字段

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

Type字段

Type 字段可以指定为 app (0x00) 或者 data (0x01),也可以直接使用数字 0-254(或者十六进制 0x00-0xFE)。注意,0x00-0x3F 不得使用(预留

### ESP32 分区表配置解析 ESP32分区表是一个非常重要的概念,它决定了设备上存储空间如何被分配给不同的功能模块。通常情况下,开发者可以通过 `menuconfig` 或者手动编辑 `.csv` 文件来完成自定义分区表的配置。 #### 1. 默认分区表结构 默认情况下,ESP-IDF 提供了几种预设的分区方案,这些方案可以直接在 `menuconfig -> Partition Table` 中选择[^3]。以下是常见的几种: - **工厂程序(无 OTA 分区)**: 这是最简单的分区方式,适用于不需要空中升级的应用场景。 - **工厂程序(双 OTA 分区)**: 支持两个 OTA 更新区域,允许设备在更新失败时回滚到之前的版本。 - **用于自定义分区**: 开发人员可以根据需求自由调整各个分区的大小和用途。 如果选择了 “Custom partition CSV file”,则需要提供一个自定义的 `.csv` 文件路径[^4]。 #### 2. 自定义分区表文件格式 `.csv` 文件的内容遵循特定的语法,每一行代表一个独立的分区条目。下面是一份典型的 `partition.csv` 示例及其字段含义解释: ```plaintext # Name, Type, SubType, Offset, Size, Flags nvs, data, nvs, , 0x4000, otadata, data, ota, , 0xC00, app0, app, ota_0, , 1M, app1, app, ota_1, , 1M, spiffs, data, spiffs, , 1M, ``` | 字段 | 描述 | |------------|----------------------------------------------------------------------| | 名称 (`Name`) | 唯一标识符,便于引用该分区 | | 类型 (`Type`) | 表示数据还是应用程序;可选值有 `data`, `app` 等 | | 子类型 (`SubType`) | 对应于具体的数据类别或应用槽位 | | 起始偏移量 (`Offset`) | 定义此分区相对于闪存起始地址的位置 | | 大小 (`Size`) | 占用的空间大小 | | 标志 (`Flags`) | 可选项,目前仅支持 `encrypted` 来启用加密 | 注意:上述表格中的某些列可能为空白,意味着它们会由构建系统自动计算填充[^1]。 #### 3. 创建并验证自定义分区表 为了确保新设计的分区布局能够正常工作,在实际部署之前应该执行一些必要的测试步骤: - 使用命令行工具生成二进制形式的分区表: ```bash python $IDF_PATH/components/partition_table/gen_esp32part.py verify my_partition.csv ``` - 将其转换为目标硬件所需的原始格式: ```bash python $IDF_PATH/components/partition_table/gen_esp32part.py my_partition.bin my_partition.csv ``` 最后一步是利用烧录器将生成好的 `.bin` 文件上传至目标板卡指定位置[^2]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sky丶日暮途远

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值