esp32-s3 分区表的设置规则

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 自己打印的。
由两个表对比可知:

  1. 每个分区的起始地址(Offset)都是扇区对齐(0x1000(4K)),在使用的时候按照起始地址进行扇区对齐即可。
  2. 如果上一个区域的实际大小不满足扇区对齐,那么这个区域的偏移将不会按照实际 上一个的Offset + Length,而是在满足上述大小的情况下,再加一个满足 扇区对齐的条件。
  3. 设置分区表分区大小的时候,要符合扇区(4K)对齐,不然中间的内存就浪费掉了。

如何自定义分区表类型?

1.如果应用程序需要保存数据,需要在 0x40-0xFE 内添加一个自定义分区类型(Type),然后 subtype 可以在 (range 0x00-0xFE) 中随意挑选一个。

参考文章

分区表

posted @ 2023-03-20 22:22  SpinJump  阅读(532)  评论(0编辑  收藏  举报