当前位置: 首页 > news >正文

ESP32 partitions csv 分区表文件完整讲解

一、核心作用

partitions.csvESP-IDF 分区表配置文件,用来定义 ESP32 Flash(闪存)的空间如何切分、每个分区名称、类型、子类型、起始地址、大小、标志位
芯片上电后,bootloader 读取分区表,根据分区地址找到应用程序、数据存储区。

Flash 物理上是一块连续存储空间,分区表就是 Flash 的「分区规划图纸」。

二、文件格式(CSV逗号分隔)

标准列定义(顺序不能乱):

# Name,   Type, SubType, Offset,  Size, Flags
  1. Name:分区名称(程序内通过名字查找分区)
  2. Type:分区大类
    • app:应用程序分区(存放固件 bin)
    • data:数据分区(nvs、spiffs、fatfs、otadata 等)
  3. SubType:子类型,细分用途
  4. Offset:分区起始地址;留空 → 自动紧跟上一个分区末尾
  5. Size:分区大小,支持 0x十六进制 / 十进制 / KB MB
  6. Flags:标志,常用 encrypted(开启分区加密)

三、常见分区类型说明

1. app 应用分区(固件运行区域)

  • factory:出厂固件分区(单固件方案使用)
  • ota_0ota_1:OTA A/B 双分区(无线升级必备)

OTA原理:运行 ota_0,新固件下载写入 ota_1,校验成功后切换启动分区。

2. data 数据分区

  • nvs非易失性存储,保存参数、WiFi账号、配置(最常用)
  • otadata:OTA 分区标记区,记录当前启动哪个 ota 分区
  • phy_init:射频校准参数(WiFi/蓝牙PHY配置,必须保留,不要删除
  • spiffs:SPI 文件系统,存放网页、静态资源、日志
  • fat:FAT32 文件系统

四、使用vscode ESP-IDF 创建方法

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

我们按下“Add New Row”选项添加子分区条目,然后设置条目的类型、偏移和大小,最后按下“Save”选项保存退出
image 1

五、举一份典型OTA分区示例

# Name,   Type, SubType, Offset,  Size, Flags
nvs,      data, nvs,     0x9000,  0x6000,
otadata,  data, ota,     0xf000,  0x2000,
phy_init, data, phy,     0x11000, 0x1000,
factory,  app,  factory, 0x12000, 1M,
ota_0,    app,  ota_0,   ,        1M,
ota_1,    app,  ota_1,   ,        1M,
spiffs,   data, spiffs,  ,        0x50000,
  • Offset为空:自动连续排布,不用手动计算地址,推荐写法
  • Flash总大小必须大于所有分区总和,否则编译报错

六、开发中常见注意事项

  1. 分区总和不能超过Flash大小
    ESP32常用 4MB Flash,分区总和不能超过4MB;超出会编译报错。
  2. 不能删除 phy_init
    丢失会导致WiFi/蓝牙无法正常工作。
  3. NVS分区大小最小建议 0x3000(12KB),过小容易存不下参数。
  4. 使用文件系统(spiffs/fat)时,分区大小必须符合文件系统对齐要求。
  5. OTA项目必须配套 otadata 分区,否则无法切换OTA分区。
  6. 修改分区表后:最好全片擦除Flash再下载,旧分区残留数据容易引发异常。
http://www.jsqmd.com/news/1289566/

相关文章:

  • 双相情感障碍的脑功能成像:连接性和网络
  • 突破上传限制:gh_mirrors/fi/file-upload断点续传原理与实现
  • 玻璃钢管道玻璃钢罐厂家山东明驰:喷衬缠绕工艺,出厂合格率≥99% 质保 1 年 - 速递信息
  • 告别龟速合成:用Matcha-TTS实现实时语音生成的技术实践
  • 专属钉钉定制开发需要多少钱?2026年费用构成方案
  • Docker 镜像与容器核心概念详解
  • TypeScript Workshop集成指南:如何将TypeScript与现有项目无缝整合
  • Docup部署指南:3种简单方法将文档发布到Web
  • 如何从零开始学习Docker安全?awesome-docker-security资源精选
  • Gscript核心功能全解析:从多平台编译到高级反检测技术
  • 杭州老铺黄金以旧换新对比直接回收,哪种变现方式收益更高? - 日常比对手册
  • 2026实测可用的免费导入题库刷题小程序有哪些 - 软件测评小帮手
  • 10个实用示例:React Native Modern Datepicker在真实项目中的应用技巧
  • 山东潍坊明驰环境|玻璃钢管道 + 玻璃钢罐成套解决方案厂家,适配化工、冶金、市政全场景 - 速递信息
  • 第 17 篇:Token 成本太高?教你把大模型调用成本降 70% > Java+AI 落地实战系列 | 精细化成本管控 | 不影响用户体验,综合降本 70%
  • AI写作辅助网站的合规秘籍:从文献整理到成稿的合规流程解析? - 掌桥科研-AI论文写作
  • TEL E208-000032-11 接口模块
  • Go-mtpfs开发者必备:核心代码实现原理与架构详解
  • STM32 采集效率翻倍!ADC+DMA 乒乓缓冲 + FreeRTOS 并行架构全拆解
  • Buzz:免费离线语音转文字的终极解决方案
  • 广州增值电信EDI许可证公司口碑好哪家更靠谱?创业者机构测评与选择建议 - GrowthUME
  • 低成本精准拓客,长沙中医馆 AI 运营服务商优选 - GrowthUME
  • Get It.高级技巧:利用Feynman技巧和测验功能深化概念理解
  • 三款游戏自动打金指南,简单操作新手轻松掌握
  • 从纸质家政合同到电子签,家政公司远程签完服务协议
  • React Native Modern Datepicker完全指南:打造高颜值跨平台日期选择器
  • 终极微信数据备份指南:3步掌握安全解密与完整数据保护方案
  • 从零开始:5分钟学会用Python构建你的缠论量化交易系统
  • 数字化转型:制造业AI智能体的专属方案与应用场景
  • 南昌老同学聚会火锅店推荐|多场景适配本地觅食实用指南 - 品牌2026推荐