Firmware¶
App images are checked against the connected chip before they're written, so a build for the wrong target is refused rather than flashed.
factory¶
Write an app to the factory partition and erase otadata, so the bootloader
falls back to factory on the next boot. Without a factory partition, the app
goes to ota_0 instead.
Only the sectors that differ are written, and nothing at all if the partition already holds this build. otadata is erased either way. See Write options.
ota¶
Write an app to the next OTA slot and make it the boot slot. idftool reads
otadata to find the next slot, writes the image, and bumps the OTA sequence
number: what an OTA update from the firmware would do, over USB.
Only the sectors that differ are written, and nothing at all if the slot already holds this build. The boot slot is switched either way.
Boot selection¶
These read and write otadata, the partition the bootloader consults to pick an OTA slot. The app images themselves are never touched.
get-boot¶
Show which OTA slot the bootloader will run on the next reset, with its sequence number and OTA state.
set-boot¶
Make the next boot run a specific OTA partition.
clear-boot¶
Erase otadata. The bootloader then falls back to the factory partition if
there is one, and to ota_0 otherwise.
app-info¶
Print the app description of a bare application binary, without a device:
project name, version, IDF version, compile time, ELF SHA-256, and target
chip. The same block print-image and
print-bundle print for each app partition.
Given a bootloader, it prints which chip it's for.
Alias: print-app.