diff --git a/README.md b/README.md index 740e24a..5b11bb8 100644 --- a/README.md +++ b/README.md @@ -12,12 +12,12 @@ [View this README on GitHub.](https://github.com/Infineon/mtb-example-mcuboot-basic) -[Provide feedback on this code example.](https://cypress.co1.qualtrics.com/jfe/form/SV_1NTns53sK2yiljn?Q_EED=eyJVbmlxdWUgRG9jIElkIjoiQ0UyMzA2NTAiLCJTcGVjIE51bWJlciI6IjAwMi0zMDY1MCIsIkRvYyBUaXRsZSI6Ik1DVWJvb3QtYmFzZWQgYmFzaWMgYm9vdGxvYWRlciIsInJpZCI6InZhaXIiLCJEb2MgdmVyc2lvbiI6IjcuNC4wIiwiRG9jIExhbmd1YWdlIjoiRW5nbGlzaCIsIkRvYyBEaXZpc2lvbiI6Ik1DRCIsIkRvYyBCVSI6IklDVyIsIkRvYyBGYW1pbHkiOiJXSUZJIn0=) +[Provide feedback on this code example.](https://cypress.co1.qualtrics.com/jfe/form/SV_1NTns53sK2yiljn?Q_EED=eyJVbmlxdWUgRG9jIElkIjoiQ0UyMzA2NTAiLCJTcGVjIE51bWJlciI6IjAwMi0zMDY1MCIsIkRvYyBUaXRsZSI6Ik1DVWJvb3QtYmFzZWQgYmFzaWMgYm9vdGxvYWRlciIsInJpZCI6InZhaXIiLCJEb2MgdmVyc2lvbiI6IjcuNS4wIiwiRG9jIExhbmd1YWdlIjoiRW5nbGlzaCIsIkRvYyBEaXZpc2lvbiI6Ik1DRCIsIkRvYyBCVSI6IklDVyIsIkRvYyBGYW1pbHkiOiJXSUZJIn0=) ## Requirements -- [ModusToolbox™](https://www.infineon.com/modustoolbox) v3.2 or later (tested with v3.3) +- [ModusToolbox™](https://www.infineon.com/modustoolbox) v3.4 or later (tested with v3.4) - Board support package (BSP) minimum required version: 4.0.0 - Programming language: C - Other tools: Python v3.8.10 or later @@ -792,6 +792,7 @@ Document title: *CE230650* – *MCUboot-based basic bootloader* 7.2.0 | Added support for KIT_XMC71_EVK_LITE_V1 7.3.0 | Added support for CY8CKIT-062S2-AI 7.4.0 | Enabled D-cache support for XMC7000 devices + 7.5.0 | Updated to support NINJA based build flow
diff --git a/blinky_app/Makefile b/blinky_app/Makefile index 53b3309..8b2b949 100644 --- a/blinky_app/Makefile +++ b/blinky_app/Makefile @@ -47,29 +47,39 @@ DEFINES= ################################################################################ # MCUboot Specific Configuration ############################################################################### - -.PHONY: generate_flashmap_blinky_app - # Python command to generate flashmap header file from flashmap JSON file ifneq ($(FLASH_MAP), ) +.PHONY: FORCE ifeq ($(FAMILY), PSOC6) -generate_flashmap_blinky_app: +memorymap.mk: FORCE @echo -e "\n=============================================================" @echo -e "= Generating memorymap.h, memorymap.c and memorymap.mk =" @echo -e "=============================================================" - $(CY_PYTHON_PATH) ../scripts/memorymap_psoc6.py -p $(PLATFORM) -m -i ../flashmap/$(FLASH_MAP) -o ./source/memorymap.c -a ./source/memorymap.h -d $(IMG_ID) > ./memorymap.mk + @rm -f ./source/memorymap.* + $(if $(SEARCH_core-make),$(CY_PYTHON_PATH),true) ../scripts/memorymap_psoc6.py -p $(PLATFORM) -m -i ../flashmap/$(FLASH_MAP) -o ./source/memorymap.c -a ./source/memorymap.h -d $(IMG_ID) > ./memorymap.mk.tmp + @if ! cmp -s "memorymap.mk.tmp" "memorymap.mk"; then \ + mv -f "memorymap.mk.tmp" "memorymap.mk"; \ + else \ + rm -f "memorymap.mk.tmp"; \ + fi @echo -e "=============================================================\n" else ifeq ($(FAMILY), XMC7000) -generate_flashmap_blinky_app: +memorymap.mk: FORCE @echo -e "\n=============================================================" @echo -e "= Generating memorymap.h, memorymap.c and memorymap.mk =" @echo -e "=============================================================" - $(CY_PYTHON_PATH) ../scripts/memorymap_xmc7000.py run -p ../flashmap/$(PLATFORM_CONFIG) -i ../flashmap/$(FLASH_MAP) -o ./source -n memorymap -d $(IMG_ID) > ./memorymap.mk + @rm -f ./source/memorymap.* + $(if $(SEARCH_core-make),$(CY_PYTHON_PATH),true) ../scripts/memorymap_xmc7000.py run -p ../flashmap/$(PLATFORM_CONFIG) -i ../flashmap/$(FLASH_MAP) -o ./source -n memorymap -d $(IMG_ID) > ./memorymap.mk.tmp + @if ! cmp -s "memorymap.mk.tmp" "memorymap.mk"; then \ + mv -f "memorymap.mk.tmp" "memorymap.mk"; \ + else \ + rm -f "memorymap.mk.tmp"; \ + fi @echo -e "=============================================================\n" endif --include ./memorymap.mk +-include memorymap.mk DEFINES+=CY_FLASH_MAP_JSON endif @@ -283,11 +293,7 @@ HEX_START_ADDR?=$(SECONDARY_IMG_START) endif # Custom pre-build commands to run. -prebuild: - @rm -f ./source/memorymap.c - @rm -f ./source/memorymap.h - @rm -f ./memorymap.mk - @$(MAKE) generate_flashmap_blinky_app +PREBUILD= # Custom post-build commands to run. # 1. Take a backup of the original hex file (_raw.hex) diff --git a/bootloader_app/Makefile b/bootloader_app/Makefile index 270e0e0..d17714f 100644 --- a/bootloader_app/Makefile +++ b/bootloader_app/Makefile @@ -45,28 +45,40 @@ DEFINES= # MCUboot Specific Configuration ################################################################################ -.PHONY: generate_flashmap_bootloader - # Python command to generate flashmap header file from flashmap JSON file + ifneq ($(FLASH_MAP), ) +.PHONY: FORCE ifeq ($(FAMILY), PSOC6) -generate_flashmap_bootloader: +memorymap.mk: FORCE @echo -e "\n=============================================================" @echo -e "= Generating memorymap.h, memorymap.c and memorymap.mk =" @echo -e "=============================================================" - $(CY_PYTHON_PATH) ../scripts/memorymap_psoc6.py -p $(PLATFORM) -m -i ../flashmap/$(FLASH_MAP) -o ./source/memorymap.c -a ./source/memorymap.h > ./memorymap.mk + @rm -f ./source/memorymap.* + $(if $(SEARCH_core-make),$(CY_PYTHON_PATH),true) ../scripts/memorymap_psoc6.py -p $(PLATFORM) -m -i ../flashmap/$(FLASH_MAP) -o ./source/memorymap.c -a ./source/memorymap.h > ./memorymap.mk.tmp + @if ! cmp -s "memorymap.mk.tmp" "memorymap.mk"; then \ + mv -f "memorymap.mk.tmp" "memorymap.mk"; \ + else \ + rm -f "memorymap.mk.tmp"; \ + fi @echo -e "=============================================================\n" else ifeq ($(FAMILY), XMC7000) -generate_flashmap_bootloader: +memorymap.mk: FORCE @echo -e "\n=============================================================" @echo -e "= Generating memorymap.h, memorymap.c and memorymap.mk =" @echo -e "=============================================================" - $(CY_PYTHON_PATH) ../scripts/memorymap_xmc7000.py run -p ../flashmap/$(PLATFORM_CONFIG) -i ../flashmap/$(FLASH_MAP) -o ./source -n memorymap > ./memorymap.mk + @rm -f ./source/memorymap.* + $(if $(SEARCH_core-make),$(CY_PYTHON_PATH),true) ../scripts/memorymap_xmc7000.py run -p ../flashmap/$(PLATFORM_CONFIG) -i ../flashmap/$(FLASH_MAP) -o ./source -n memorymap > ./memorymap.mk.tmp + @if ! cmp -s "memorymap.mk.tmp" "memorymap.mk"; then \ + mv -f "memorymap.mk.tmp" "memorymap.mk"; \ + else \ + rm -f "memorymap.mk.tmp"; \ + fi @echo -e "=============================================================\n" endif --include ./memorymap.mk +-include memorymap.mk DEFINES+=CY_FLASH_MAP_JSON endif @@ -248,21 +260,7 @@ endif LDLIBS= # Custom pre-build commands to run. -# MCUboot uses submodules and "make getlibs" currently does not support -# fetching submodules. -# The PREBUILD command fetches the submodules only if the content of the -# "mcuboot/ext/mbedtls" directory is empty. -prebuild: - @if [ -n "$$(ls -A $(MBEDTLS_PATH) 2>/dev/null)" ]; then\ - echo "Git submodules for MCUboot exist. Skipping this step...";\ - else\ - echo "Initializing Git Submodules for MCUboot";\ - cd libs/mcuboot;git submodule update --init --recursive;\ - fi - @rm -f ./source/memorymap.c - @rm -f ./source/memorymap.h - @rm -f ./memorymap.mk - @$(MAKE) generate_flashmap_bootloader +PREBUILD= # Custom post-build commands to run. POSTBUILD=