ESP32 for Arduino 分区信息

忘记过去,超越自己

  • ❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件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):

相关推荐
Python私教2 小时前
model中能定义字段声明不存储到数据库吗
数据库·oracle
BestandW1shEs5 小时前
谈谈Mysql的常见基础问题
数据库·mysql
重生之Java开发工程师5 小时前
MySQL中的CAST类型转换函数
数据库·sql·mysql
教练、我想打篮球5 小时前
66 mysql 的 表自增长锁
数据库·mysql
Ljw...5 小时前
表的操作(MySQL)
数据库·mysql·表的操作
哥谭居民00015 小时前
MySQL的权限管理机制--授权表
数据库
wqq_9922502775 小时前
ssm旅游推荐系统的设计与开发
数据库·旅游
难以触及的高度6 小时前
mysql中between and怎么用
数据库·mysql
Jacky(易小天)6 小时前
MongoDB比较查询操作符中英对照表及实例详解
数据库·mongodb·typescript·比较操作符