ESP32 分区表

ESP32 分区表

1. 分区表概述

ESP32 针对 flash 进行划分,划分为不同的区域用作不同的功能,并在flash的 0x8000 位置处烧写了一张分区表用来描述分区信息。

分区表可以根据自己的需要进行配置,每一个分区都有其特定的作用,可根据自己的需求进行配置以及修改,下述以官方例程里面的分区表进行描述。

以以下分区表为例:

# ESP-IDF Partition Table
# Name,   Type, SubType, Offset,  Size, Flags
nvs,      data, nvs,     0x9000,  0x4000,
otadata,  data, ota,     0xd000,  0x2000,
phy_init, data, phy,     0xf000,  0x1000,
factory,  app,  factory, 0x10000,  1M,
ota_0,    app,  ota_0,   0x110000, 1M,
ota_1,    app,  ota_1,   0x210000, 1M,

对应的 flash 布局如下:
在这里插入图片描述

  • partition_tables 分区:存储描述 flash 分区信息的分区表
  • nvs 分区:非易失性存储 (NVS) 库,主要用于在 flash 中存储键值格式的数据,使用方法参考:非易失性存储 (NVS) 库
  • otadata 分区:记录启动信息,描述启动具体哪一个OTA分区
  • phy_init 分区:用于存储芯片的PHY有关数据,芯片网络有关数据存放在此分区
  • factory 分区:工厂程序分区,通过串口烧录在芯片内的第一个出厂程序
  • ota_0 分区:OTA升级的程序分区
  • ota_1分区:OTA升级的程序分区

2. 分区表操作指南

2.1 查找默认分区表

其实每一个程序都有使用分区表,我们进入 hello_world 例程(路径:esp-idf/example/get-started/hello_world)执行idf.py build 在编译过程打印的信息中我们可以看到对应的工程分区表配置
在这里插入图片描述

那么工程的分区表在哪里呢?在hello_world 工程内似乎也没有看到有关分区表的描述文件。

其实,这是使用了 IDF 工具目录下的分区表配置了工程

输入idf.py menuconfig 打开menuconfig配置菜单,Partition Table 选项下是关于工程分区表的配置

在这里插入图片描述
分区表的使用方案总共有四种方案,分别是:

  • 单个工厂APP分区,无OTA分区
  • 单个工厂APP分区(更大的APP分区),无OTA分区
  • 工厂APP分区,两个OTA分区
  • 自定义分区表

在这里插入图片描述

关于配置描述可参考:CONFIG_PARTITION_TABLE_TYPE

对应的分区表存放在 IDF 目录下的 components/partition_table/目录下

在这里插入图片描述

2.2 配置自定义分区表

配置自定义的分区表,可以首先从 IDF 目录下的 components/partition_table/目录下拷贝一个示例分区表到对应工程目录下

在这里插入图片描述

之后配置menuconfig选择自定义分区表

指定自定义分区表名称

在这里插入图片描述

3. 参考文档

  1. ESP32 分区表描述:ESP32 分区表
  2. 分区表配置描述:CONFIG_PARTITION_TABLE_TYPE
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ESP分区表是一个定义了芯片内存布局和分区的配置文件。分区表可以通过一个名为partitions.csv的文件来定义。该文件包含了一系列的分区条目,每个分区条目包括了分区的名称、类型、大小和偏移量等信息。 例如,分区表可以定义bootloader分区、应用程序分区、数据分区等。每个分区都有一个唯一的名称用于标识,而类型可以是bootloader、数据、应用程序等。分区的大小和偏移量可以根据实际需求进行配置。 分区表的格式可以通过make menuconfig命令来配置。在ESP-IDF编程指南的最新文档中可以找到ESP32分区表格式的详细介绍。 总结起来,ESP32分区表是一个定义了芯片内存布局和分区配置的文件,它可以通过partitions.csv文件来定义。分区表的格式可以通过make menuconfig命令进行配置。详细的分区表格式可以在ESP-IDF编程指南的最新文档中找到。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [ESP32分区表图解](https://blog.csdn.net/toopoo/article/details/107327828)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [ESP32 分区表修改导致重启的问题](https://blog.csdn.net/qq_42312125/article/details/127806525)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [ESP32 快速入门(九):自定义 ESP32 分区表 partitions.csv](https://download.csdn.net/download/weixin_38677505/14031363)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

爱出名的狗腿子

你的鼓励就是我最大的动力

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

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

打赏作者

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

抵扣说明:

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

余额充值