diff options
author | Sven Wegener <sven.wegener@stealer.net> | 2015-12-31 21:48:38 +0100 |
---|---|---|
committer | Sven Wegener <sven.wegener@stealer.net> | 2018-07-20 21:13:30 +0200 |
commit | d084650eb5bc6d19ac877f5b60b21c17fd92a3a9 (patch) | |
tree | 00ccbc78849e34213236811a7ba1527efa41c461 | |
parent | 9f957641a796454b7f4be023dc46287b7cf694fd (diff) |
stmhal: Split out firmware0.bin and firmware1.bin rules
Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
-rw-r--r-- | ports/stm32/Makefile | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/ports/stm32/Makefile b/ports/stm32/Makefile index 27e3e61fb..ffa5b9b7d 100644 --- a/ports/stm32/Makefile +++ b/ports/stm32/Makefile @@ -494,12 +494,25 @@ deploy-openocd: $(BUILD)/firmware.dfu $(ECHO) "Writing $(BUILD)/firmware{0,1}.bin to the board via ST-LINK using OpenOCD" $(Q)$(OPENOCD) -f $(OPENOCD_CONFIG) -c "stm_flash $(BUILD)/firmware0.bin $(TEXT0_ADDR) $(BUILD)/firmware1.bin $(TEXT1_ADDR)" -$(BUILD)/firmware.dfu: $(BUILD)/firmware.elf +# The addresses and extracted sections for the .bin files must match the ones +# used in the $(LD_FILE) linker file. + +firmware0_ADDR = $(TEXT0_ADDR) +firmware0_SECTIONS = .isr_vector +FIRMWARE_FILES += $(BUILD)/firmware0.bin + +firmware1_ADDR = $(TEXT1_ADDR) +firmware1_SECTIONS = .text .data +FIRMWARE_FILES += $(BUILD)/firmware1.bin + +.INTERMEDIATE: $(FIRMWARE_FILES) +$(FIRMWARE_FILES): $(BUILD)/firmware.elf $(ECHO) "GEN $@" - $(Q)$(OBJCOPY) -O binary -j .isr_vector $^ $(BUILD)/firmware0.bin - $(Q)$(OBJCOPY) -O binary -j .text -j .data $^ $(BUILD)/firmware1.bin - $(Q)$(PYTHON) $(DFU) -b $(TEXT0_ADDR):$(BUILD)/firmware0.bin -b $(TEXT1_ADDR):$(BUILD)/firmware1.bin $@ + $(Q)$(OBJCOPY) -O binary $(foreach section,$($(basename $(notdir $(@)))_SECTIONS),-j $(section)) $^ $@ +$(BUILD)/firmware.dfu: $(FIRMWARE_FILES) + $(ECHO) "GEN $@" + $(Q)$(PYTHON) $(DFU) $(foreach binfile,$(^),-b $($(basename $(notdir $(binfile)))_ADDR):$(binfile)) $@ endif $(BUILD)/firmware.hex: $(BUILD)/firmware.elf |