tools/esp32: Create option for merging all binaries into a single file

This is only useful when the path to binary files (e.g. bootloader) is
provided via the ESPTOOL_BINDIR variable.

Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
This commit is contained in:
Gustavo Henrique Nihei 2021-09-01 19:19:47 -03:00 committed by Abdelatif Guettouche
parent 26b4bb3075
commit c0344d2273
2 changed files with 35 additions and 0 deletions

View File

@ -2,6 +2,15 @@
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#
config ESP32_MERGE_BINS
bool "Merge raw binary files into a single file"
default n
---help---
Merge the raw binary files into a single file for flashing to the
device.
This is only useful when the path to binary files (e.g. bootloader)
is provided via the ESPTOOL_BINDIR variable.
config ESP32_QEMU_IMAGE
bool "ESP32 binary image for QEMU"
default n

View File

@ -104,6 +104,30 @@ else
MK_QEMU_IMG=
endif
# MERGEBIN -- Merge raw binary files into a single file
ifeq ($(CONFIG_ESP32_MERGE_BINS),y)
define MERGEBIN
$(Q) if [ -z $(ESPTOOL_BINDIR) ]; then \
echo "MERGEBIN error: Missing argument for binary files directory."; \
echo "USAGE: make ESPTOOL_BINDIR=<dir>"; \
exit 1; \
fi
$(Q) if [ -z $(FLASH_SIZE) ]; then \
echo "Missing Flash memory size configuration for the ESP32 chip."; \
exit 1; \
fi
$(eval ESPTOOL_MERGEBIN_OPTS := -fs $(FLASH_SIZE) -fm $(FLASH_MODE) -ff $(FLASH_FREQ))
esptool.py -c esp32 merge_bin --output nuttx.merged.bin $(ESPTOOL_MERGEBIN_OPTS) $(ESPTOOL_BINS)
$(Q) echo nuttx.merged.bin >> nuttx.manifest
$(Q) echo "Generated: nuttx.merged.bin"
endef
else
define MERGEBIN
endef
endif
# POSTBUILD -- Perform post build operations
ifeq ($(CONFIG_ESP32_APP_FORMAT_MCUBOOT),y)
@ -121,6 +145,7 @@ define POSTBUILD
-S $(CONFIG_ESP32_OTA_SLOT_SIZE) \
nuttx.bin nuttx.signed.bin
$(Q) echo "Generated: nuttx.signed.bin (MCUboot compatible)"
$(call MERGEBIN)
endef
else
define POSTBUILD
@ -139,6 +164,7 @@ define POSTBUILD
$(eval ESPTOOL_ELF2IMG_OPTS := -fs $(FLASH_SIZE) -fm $(FLASH_MODE) -ff $(FLASH_FREQ))
esptool.py -c esp32 elf2image $(ESPTOOL_ELF2IMG_OPTS) -o nuttx.bin nuttx
$(Q) echo "Generated: nuttx.bin (ESP32 compatible)"
$(call MERGEBIN)
$(Q) $(MK_QEMU_IMG)
endef
endif