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):

相关推荐
热爱运维的小七10 小时前
MongoDB 内存管理避坑指南:解决高占用、页错误等核心问题,让数据库性能翻倍
数据库·mongodb
冉冰学姐12 小时前
SSM公办小学网络报名系统f3d3p(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·ssm 框架·公办小学网络报名系统·教育信息化
叡鳍13 小时前
hive---HQL查询
数据库
vortex513 小时前
谷歌黑客语法挖掘 SQL 注入漏洞
android·数据库·sql
九河云14 小时前
软件开发平台 DevCloud
运维·服务器·数据库·科技·华为云
wind_one115 小时前
7.基础--SQL--DDL-数据类型及案例
数据库·sql
l1t16 小时前
利用DeepSeek改写SQLite版本的二进制位数独求解SQL
数据库·人工智能·sql·sqlite
QT 小鲜肉16 小时前
【QT/C++】Qt定时器QTimer类的实现方法详解(超详细)
开发语言·数据库·c++·笔记·qt·学习
研究司马懿16 小时前
【ETCD】ETCD常用命令
网络·数据库·云原生·oracle·自动化·运维开发·etcd
刘一说17 小时前
深入理解 Spring Boot 中的数据库迁移:Flyway 与 Liquibase 实战指南
数据库·spring boot·oracle