我正在 ESP32 开发板(esp8266,wroom)上进行开发。我需要获取当前运行设备的分区表。
该文档包含其分区表的相当不错的文档。我还可以通过esptool.py
和parttool.py
工具读/写闪存区域。这些可以很好地管理和修改表。
但是,我没有找到读取其分区的方法。我该怎么做?
我正在 ESP32 开发板(esp8266,wroom)上进行开发。我需要获取当前运行设备的分区表。
该文档包含其分区表的相当不错的文档。我还可以通过esptool.py
和parttool.py
工具读/写闪存区域。这些可以很好地管理和修改表。
但是,我没有找到读取其分区的方法。我该怎么做?
ESP32 的当前工具没有明确的选项。然而,现有的工具可以很容易地组合起来做到这一点。
分区表0x8000
在旧0x9000
系统上位于(32768),在新系统上位于(36384)。无论如何,它的位置可以CONFIG_PARTITION_TABLE_OFFSET
在 menuconfig的设置中找到(并设置)。它的长度总是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
将表转储到标准输出。
我正在尝试以下操作:
gen_esp32part.py partable.bin
在名为“partable.bin”的文件上,该文件是使用 esptool 提取的分区表。但是 gen_esp32part.py 不断抛出以下错误:
gen_esp32part.py: error: the following arguments are required: input
更新:没关系,当直接输入脚本名称时,它会被馈送到 pylauncher,它不会传递参数。我不得不使用:
python gen_esp32part.py partable.bin
然后它起作用了。