忘记过去,超越自己
- ❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️
- ❤️ 本篇创建记录 2023-11-04❤️
- ❤️ 本篇更新记录 2023-11-04❤️
- 🎉 欢迎关注 🔎点赞 👍收藏 ⭐️留言📝
- 🙏 此博客均由博主单独编写,不存在任何商业团队运营,如发现错误,请留言轰炸哦!及时修正!感谢支持!
- 🔥 Arduino ESP8266教程累计帮助过超过1W+同学入门学习硬件网络编程,入选过选修课程,刊登过无线电杂志 🔥
快速导读
-
- [1. 前言](#1. 前言)
- [2. 分区表说明](#2. 分区表说明)
- [3. 程序烧录](#3. 程序烧录)
- [4. 分区表如何对应配置](#4. 分区表如何对应配置)
1. 前言
Arduino ESP32有多个不同的分区版本。
我们在ESP32 for Arduino的工具中,有一个选项,可以配置不同的分区表
,这里已经做好了一些,一般我们都是使用默认的,如下图所示:
分别代表什么意思呢?
4M FLASH默认分区方案为1.2MB的应用程序空间,1.2MB为OTA保留,1.5MB为SPIFFS文件系统保留的。
我们找到这个描述文件,这里博主对应sdk版本是 2.0.11:
C:\Users\xxxx\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\tools\partitions
我们打开default.csv
,对应默认的分区表:
表格里面
- Name 对应各个分区名字
- Offset 对应的
偏移地址
- Size 对应
占用大小
比如,nvs分区,从0x9000地址处开始,大小为0x5000,也就是20480
字节的大小。
2. 分区表说明
网上找到一张ESP32的阿里云分区表。
- 0-0x1000 保留
- 0x1000-0x8000
Bootloader分区
- 0x8000-0x9000
Partition Table
分区,保存着分区表 - 0x9000-0xD000
NVS
分区,可以存储一些PHY初始化数据,也可以存储其他数据,一些断电存储的数据建议放在这里 - 0xD000-0xF000
OTA data
分区,系统从哪个app分区启动由这里存储的数据决定 - 0xF000-0x10000
PHy_init
分区,用于存储的PHY初始化数据 - 0x10000-0x3FFFFF
Factory APP
分区,保存出厂应用程序(也就是我们平常代码写入的地方
),分区表有工厂应用程序就会启动这个分区的程序 Core dump
分区,查找系统崩溃时的软件错误
,以便开发者分析原因OTA0/OTA1
分区,保存OTA下载固件,交替保存在这两个分区,镜像验证无误之后,会更新OTA data分区,分配好下一次应该从哪里启动。fctry
分区,保存阿里云四元组,这个就是私有数据了,可以在存储空间的最后分配一些空间用于保存一些APP的激活数据之类的,没有用到就可以忽略。
3. 程序烧录
这个烧录过程就有各个区分的操作过程,包括Bootloader区、Partition Table区、app区。
4. 分区表如何对应配置
如何查找哪个配置对应哪个csv文件呢?
找一下Board.txt文件。
随便以一个为案例(Default 4MB with spiffs):