ESP-IDF 内置了多套现成的分区表方案,全部放在组件目录里:

C:\esp\v6.0.2\esp-idf\components\partition_table\

根据你的安装位置决定

文件描述

在这里插入图片描述

进入目录后,可以发现许多文件,这些文件的对应关系如下:

文件名 对应 menuconfig 选项 分区说明
partition_single.csv Single factory app, no OTA 单工厂应用,无 OTA(你当前项目用的就是这个)
partition_double.csv Factory app, two OTA definitions 双 OTA 分区,支持空中升级
partition_minimal.csv Minimal partition table 极简分区表,占用空间最小
partition_singleapp_nvs_encryption.csv Single factory app with encrypted NVS 带 NVS 加密的单应用版本

分区详解

使用Excel打开任意一个CSV文件,效果如下:
在这里插入图片描述

标题含义

列名 含义
Name 分区名称,用户自定义,仅作为标识使用
Type 分区类型,分为两类:app(应用程序)和 data(数据存储)
SubType 子类型,用于详细描述该分区的具体功能
Offset 分区在 Flash 中的起始地址,若留空则由工具自动计算连续地址
Size 分区容量,支持十六进制格式(如 0x6000)或单位表示法(如 1M、64K)
Flags 扩展属性,通常留空;常用选项为 encrypted,表示对该分区启用 Flash 加密

分区详解

  1. nvs 分区
    类型:data / nvs
    大小:0x6000 = 24 KB
    作用:非易失性存储(Non-Volatile Storage),是 ESP32 最核心的系统数据分区。
    以键值对的形式持久化保存数据,掉电不丢失;
    系统层面存:WiFi 配网信息、蓝牙配对密钥、系统运行参数、校准数据等;
    用户层面可以用 nvs_flash API 自己存自定义配置(比如设备序列号、用户设置);
    自带磨损均衡,延长 Flash 寿命。
  2. phy_init 分区
    类型:data / phy
    大小:0x1000 = 4 KB
    作用:射频校准数据分区。
    存放 WiFi / 蓝牙 PHY(物理层)的校准参数,比如射频增益、偏移值等;
    芯片第一次启动时自动校准并写入,后续启动直接读取,加快开机速度;
    系统专用分区,用户代码一般不会直接操作,固定 4KB 就够用。
  3. factory 分区
    类型:app / factory
    大小:1M = 1024 KB
    作用:工厂主应用分区,也就是你的固件程序存放的位置。
    你编译出来的 .bin 固件,烧录时就写进这个分区;
    subtype = factory 表示这是出厂默认固件,不带 OTA 升级的项目,永远从这个分区启动;
    ESP32 启动时,Bootloader 读取分区表后,就会加载这个分区里的程序并运行。

在实际开发项目中修改分区大小

直接把CSV文件复制一个到我们项目的根目录下,并重命名,如partitions.csv
在这里插入图片描述

然后打开并修改其中的值(也可以用vscode修改)。编译,成功。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐