esp32-s3 分区表的设置规则
1. 分区表对齐规则
#分区表文件
# ESP-IDF Partition Table
# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x4001,
otadata, data, ota, , 0x2000,
phy_init, data, phy, , 0x1000,
test_data, data, phy, , 1k,
factory, app, factory, , 3M,
#ESP32-S3 启动打印
I (54) boot: Partition Table:
I (57) boot: ## Label Usage Type ST Offset Length
I (64) boot: 0 nvs WiFi data 01 02 00009000 00004001
I (72) boot: 1 otadata OTA data 01 00 0000e000 00002000
I (79) boot: 2 phy_init RF data 01 01 00010000 00001000
I (87) boot: 3 test_data RF data 01 01 00011000 00000400
I (94) boot: 4 factory factory app 00 00 00020000 00300000
说明:第一个是我自定义的分区表文件,第二个表是启动的时候,ESP32-S3 自己打印的。
由两个表对比可知:
- 每个分区的起始地址(Offset)都是扇区对齐(0x1000(4K)),在使用的时候按照起始地址进行扇区对齐即可。
- 如果上一个区域的实际大小不满足扇区对齐,那么这个区域的偏移将不会按照实际 上一个的Offset + Length,而是在满足上述大小的情况下,再加一个满足 扇区对齐的条件。
- 设置分区表分区大小的时候,要符合扇区(4K)对齐,不然中间的内存就浪费掉了。
如何自定义分区表类型?
1.如果应用程序需要保存数据,需要在 0x40-0xFE 内添加一个自定义分区类型(Type),然后 subtype 可以在 (range 0x00-0xFE) 中随意挑选一个。