软件设计分区表
如上图是正常运行需要的分区,一个系统的正常运行是需要这么多分区的。
分区表,我们软件默认配置的分区表如下
# Espressif ESP32 Partition Table
# Name, Type, SubType, Offset, Size, Flags
nvs,data,nvs,0x9000,16K,
otadata,data,ota,0xd000,8K,
phy_init,data,phy,0xf000,4K,
factory,app,factory,0x10000,1216K,
coredump,data,coredump,0x140000,64K,
ota_0,app,ota_0,0x150000,1216K,
ota_1,app,ota_1,0x270000,1216K,
开机的时候也会对应打印分区信息,对应的日志如下
I (49) boot: Partition Table:
I (52) boot: ## Label Usage Type ST Offset Length
I (60) boot: 0 nvs WiFi data 01 02 00009000 00004000
I (67) boot: 1 otadata OTA data 01 00 0000d000 00002000
I (74) boot: 2 phy_init RF data 01 01 0000f000 00001000
I (82) boot: 3 factory factory app 00 00 00010000 00130000
I (89) boot: 4 coredump Unknown data 01 03 00140000 00010000
I (97) boot: 5 ota_0 OTA app 00 10 00150000 00130000
I (104) boot: 6 ota_1 OTA app 00 11 00280000 00130000
I (112) boot: End of partition table
I (116) boot: OTA data offset 0xd000
里面的大小是这样定义的, 0x130000 bytes = 1,216 kb
后续固件如果加大,我们需要对应增加这部分大小,要不然程序不能正常执行。
硬件设计 SPI flash
上面要求了软件的分区大小,硬件的flash 理论是要大于上面的大小总和的。
右边框图出来的是分区的大小,硬件设计需要注意型号来确定flash 大小,同时要注意主控和SPI FLASH配合,是否属于支持列表范围的。