PlatformIO ESP32: генерация полного образа памяти для прошивки Печать
Добавил(а) microsin   

Проект, компилируемый под управлением PlatformIO-плагина VScode для ESP32, сохраняет конечный двоичный код в отдельных файлах для загрузчика, приложения, таблицы разделов и других файлов. Например, образ flash-памяти может состоять из следующих файлов:

Файл Смещение Описание
bootloader.bin 0x1000 Двоичный код загрузчика.
partitions.bin 0x8000 Таблица разделов FLASH.
boot_app0.bin 0xe000 Не нашел, для чего нужен этот файл. Некоторая информация есть в статье [2].
firmware.bin 0x10000 Двоичный код приложения.

Информация этой таблицы находится в файле idedata.json проекта (этот файл присутствует в каталоге .pio/build/esp32dev/). Информация закодирована в объектах JSON примерно в таком виде:

{"flash_images": [
{"offset": "0x1000", "path": "./.pio/build/esp32dev/bootloader.bin"},
{"offset": "0x8000", "path": "./.pio/build/esp32dev/partitions.bin"},
{"offset": "0xe000", "path": "/.platformio/packages/framework-arduinoespressif32/tools/partitions/boot_app0.bin"} ],
"application_offset": "0x10000"}

В документации esptool [1] описывается, как с помощью команды merge-bin можно сгенерировать из этих файлов один общий файл образа merged-flash.bin, который впоследствии прошивается в память чипа:

$ esptool.py --chip ESP32 merge-bin -o merged-flash.bin\
 --flash-mode dio --flash-size 4MB\
 0x1000 bootloader.bin\
 0x8000 partitions.bin\
 0x10000 firmware.bin\
 0xE000 boot_app0.bin

[Ссылки]

1. esptool: Merge Binaries for Flashing.
2. No need of boot_app0.bin flashing since many years site:openmqttgateway.com.