The Secondary Partitions Table¶
Overview¶
The primary partition table is for system usage, it will generate a “partitions_at.bin” according to the “partitions_at.csv” in compilation. And if the primary partition table goes wrong, the system will fail to startup. So generally, we should not change the “partitions_at.csv”.
In this case, we provide a secondary partition table for custom usage, “at_customize.csv”. We have already defined some user partitions in it. Custom can add new partitions in the “at_customize.csv”, and generate a new “at_customize.bin” according to it. The partition table can be updated by flashing the new “at_customize.bin” into flash, or be revised by command “AT+SYSFLASH”.
How to use the secondary partition table¶
- Enter the project esp32-at, run command
python esp-idf/components/partition_table/gen_esp32part.py -q at_customize.csv at_customize.bin
to generate a “at_customize.bin”. - Download the “at_customize.bin” into flash, the default address is 0x20000.
Notes of revising at_customize.csv¶
- Users should not change the “name” and “type” of the user partitions which we defined in the “at_customize.csv”. But “offset” and “size” can be changed, if necessary.
- If you need to add a new user partition, please check if it has already been defined in the ESP-IDF (esp_partition.h) first.
- If it is defined in the ESP-IDF, you should keep the “type” value to be the same when adding it into the at_customize.csv.
- If it is not defined in the ESP-IDF, please set the “type” to be “0x40” when adding it into the at_customize.csv.
- A user partition’s name should NOT be longer than 16 bytes.
- The default size of the entire “at_customize” partition is 0xE0000, which is defined in the first partition. Please do NOT over the range when adding new user partitions.
When a “at_customize.bin” is needed¶
To use below AT commands, the “at_customize.bin” should be downloaded into flash.
- AT+SYSFLASH — Set User Partitions in Flash
- AT+FS — Filesystem Operations
- SSL server relevant commands
- BLE server relevant commands