此文档包含其分区表的相当不错的文档。我还可以通过
esptool.py
和parttool.py
工具读取/写入闪存区域。这些可以很好地管理和修改表。但是,我没有找到读取其分区的方法。我该怎么办?
#1 楼
ESP32的当前工具对此没有明确的选择。但是,可以轻松组合现有工具来实现此目的。分区表位于旧版本的
0x8000
(32768)上,而在较新的系统上位于0x9000
(36384)上。无论如何,可以在menuconfig的CONFIG_PARTITION_TABLE_OFFSET
设置中找到(并设置)其位置。它的长度始终是0xc00
(3072)字节。通过
esptool.py
可以例如通过命令python $(IDF_PATH)/components/esptool_py/esptool/esptool.py read_flash 0x9000 0xc00 ptable.img
读出,然后可以使用
gen_esp32part.py
工具进行转换到csv到stdout:gen_esp32part.py ptable.img
。对于某些脚本,这些工具也可以组合使用,例如在Linux中。(python $(IDF_PATH)/components/esptool_py/esptool/esptool.py \
read_flash 0x9000 0xc00 /dev/fd/3 >&2) 3>&1|python \
$(IDF_PATH)/components/partition_table/gen_esp32part.py /dev/fd/0
会将表转储到stdout。