Flash分区中有一部分是分区表。是包含关系。
一句话定义分区表:
电脑有分盘,C盘D盘F盘。ESP32的flash存储也类似电脑分盘。
很多人习惯把程序安装在D盘,把下载资料放在F盘,把娱乐类的放在E盘。flash存储也是这么分盘的。
Flash分区见下图(正点原子提供的):
boot、partitiontable(分区表)、factory系统自带,不配置也有!
①boot
:启动区域(有两级,咱们一般就看二级Boot(Bootloader))芯片上电后,先运行
片内 ROM Boot 一级引导,它只做一件事:直接跳转到Flash 里的二级 Boot(Bootloader),之后全由 Boot 接管启动流程。0x0000–0x0FFF 4KB ROM 一级 boot(芯片内置)0x1000–0x7FFF 28KB Bootloader(二级 boot)0x8000–0x8FFF 4KB Partition Table(分区表)
②、partitiontable(分区表)
把整块 Flash 切分成若干逻辑分区(app、nvs、文件系统、OTA 等),告诉 Bootloader 和系统:每个分区叫什么,是什么类型,从哪个地址开始,有多大。
没有它,系统完全不知道 Flash 里哪是程序、哪是数据,根本无法启动和运行。
⑤、
factory专门存放完整可运行程序。⑦、storage
自定义命名的通用存储分区,存放各种自定义数据。有人问:分区表,一听就不想学,不搞行不行?
有人问:什么时候必须改分区表?
开启 OTA 升级。
使用 SPIFFS / 文件系统 存放大量文件。
固件体积变大,默认分区不够用。
需要多份独立配置、大存储数据。
用VS图形化编辑器,修改分区表:
快捷键:Ctrl+Shift+P