diff --git a/Makefile b/Makefile index daf4aaf65e..9e663fc9ad 100644 --- a/Makefile +++ b/Makefile @@ -349,8 +349,10 @@ $(TARGET_BIN): $(TARGET_UNPATCHED_BIN) $(OBJCOPY) $(TARGET_ELF) $(TARGET_EXST_ELF) --update-section .exst_hash=$(TARGET_EXST_HASH_SECTION_FILE) $(TARGET_HEX): $(TARGET_BIN) - @echo "Creating EXST HEX from patched EXST ELF $(TARGET_HEX)" "$(STDOUT)" - $(V1) $(OBJCOPY) -O ihex --set-start 0x8000000 $(TARGET_EXST_ELF) $@ + $(if $(EXST_ADJUST_VMA),,$(error "EXST_ADJUST_VMA not specified")) + + @echo "Creating EXST HEX from patched EXST ELF $(TARGET_HEX), VMA Adjust $(EXST_ADJUST_VMA)" "$(STDOUT)" + $(V1) $(OBJCOPY) -O ihex --adjust-vma=$(EXST_ADJUST_VMA) --gap-fill=0x00 --pad-to=$(shell echo "$(FIRMWARE_SIZE)" | awk '{printf("0x%08x", (1024*$$1) + $(EXST_ADJUST_VMA));}') $(TARGET_EXST_ELF) $@ endif diff --git a/src/main/target/SPRACINGH7EXTREME/target.mk b/src/main/target/SPRACINGH7EXTREME/target.mk index 28025721b6..6530f82a36 100644 --- a/src/main/target/SPRACINGH7EXTREME/target.mk +++ b/src/main/target/SPRACINGH7EXTREME/target.mk @@ -5,6 +5,9 @@ HSE_VALUE = 8000000 FEATURES += VCP ONBOARDFLASH SDCARD_SDIO EXST = yes +# flash address 0x97CE0000 - code_ram address (0x24010000) = 0x73CD0000 +EXST_ADJUST_VMA = 0x73CD0000 + TARGET_SRC += \ drivers/bus_quadspi_hal.c \ diff --git a/src/main/target/SPRACINGH7NANO/target.mk b/src/main/target/SPRACINGH7NANO/target.mk index 3560f6f401..68a9f25b02 100644 --- a/src/main/target/SPRACINGH7NANO/target.mk +++ b/src/main/target/SPRACINGH7NANO/target.mk @@ -3,6 +3,8 @@ H750xB_TARGETS += $(TARGET) HSE_VALUE = 8000000 EXST = yes +# flash address 0x97CE0000 - code_ram address (0x24010000) = 0x73CD0000 +EXST_ADJUST_VMA = 0x73CD0000 FEATURES += VCP ONBOARDFLASH diff --git a/src/main/target/SPRACINGH7ZERO/target.mk b/src/main/target/SPRACINGH7ZERO/target.mk index 8296e1d016..5b6cb7ccb6 100644 --- a/src/main/target/SPRACINGH7ZERO/target.mk +++ b/src/main/target/SPRACINGH7ZERO/target.mk @@ -3,6 +3,8 @@ H750xB_TARGETS += $(TARGET) HSE_VALUE = 8000000 EXST = yes +# flash address 0x97CE0000 - code_ram address (0x24010000) = 0x73CD0000 +EXST_ADJUST_VMA = 0x73CD0000 FEATURES += VCP ONBOARDFLASH SDCARD_SDIO