stm32/Makefile: Allow a board to config either 1 or 2 firmware sections.
This patch forces a board to explicitly define TEXT1_ADDR in order to split the firmware into two separate pieces. Otherwise the default is now to produce only a single continuous firmware image with all ISR, text and data together.
This commit is contained in:
parent
95b2cb008e
commit
ed75b2655f
|
@ -387,8 +387,29 @@ else
|
|||
$(Q)$(DFU_UTIL) -a 0 -d $(DEVICE) -D $<
|
||||
endif
|
||||
|
||||
# A board should specify TEXT0_ADDR if to use a different location than the
|
||||
# default for the firmware memory location. A board can also optionally define
|
||||
# TEXT1_ADDR to split the firmware into two sections; see below for details.
|
||||
TEXT0_ADDR ?= 0x08000000
|
||||
TEXT1_ADDR ?= 0x08020000
|
||||
|
||||
ifeq ($(TEXT1_ADDR),)
|
||||
# No TEXT1_ADDR given so put all firmware at TEXT0_ADDR location
|
||||
|
||||
deploy-stlink: $(BUILD)/firmware.dfu
|
||||
$(ECHO) "Writing $(BUILD)/firmware.bin to the board via ST-LINK"
|
||||
$(Q)$(STFLASH) write $(BUILD)/firmware.bin $(TEXT0_ADDR)
|
||||
|
||||
deploy-openocd: $(BUILD)/firmware.dfu
|
||||
$(ECHO) "Writing $(BUILD)/firmware.bin to the board via ST-LINK using OpenOCD"
|
||||
$(Q)$(OPENOCD) -f $(OPENOCD_CONFIG) -c "stm_flash $(BUILD)/firmware.bin $(TEXT0_ADDR)"
|
||||
|
||||
$(BUILD)/firmware.dfu: $(BUILD)/firmware.elf
|
||||
$(ECHO) "Create $@"
|
||||
$(Q)$(OBJCOPY) -O binary -j .isr_vector -j .text -j .data $^ $(BUILD)/firmware.bin
|
||||
$(Q)$(PYTHON) $(DFU) -b $(TEXT0_ADDR):$(BUILD)/firmware.bin $@
|
||||
|
||||
else
|
||||
# TEXT0_ADDR and TEXT1_ADDR are specified so split firmware between these locations
|
||||
|
||||
deploy-stlink: $(BUILD)/firmware.dfu
|
||||
$(ECHO) "Writing $(BUILD)/firmware0.bin to the board via ST-LINK"
|
||||
|
@ -406,6 +427,8 @@ $(BUILD)/firmware.dfu: $(BUILD)/firmware.elf
|
|||
$(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 $@
|
||||
|
||||
endif
|
||||
|
||||
$(BUILD)/firmware.hex: $(BUILD)/firmware.elf
|
||||
$(ECHO) "GEN $@"
|
||||
$(Q)$(OBJCOPY) -O ihex $< $@
|
||||
|
|
|
@ -4,5 +4,6 @@ CMSIS_MCU = STM32L475xx
|
|||
# the only diffrence to the stm32l476 - so reuse some files.
|
||||
AF_FILE = boards/stm32l476_af.csv
|
||||
LD_FILES = boards/stm32l476xg.ld boards/common_ifs.ld
|
||||
TEXT0_ADDR = 0x08000000
|
||||
TEXT1_ADDR = 0x08004000
|
||||
OPENOCD_CONFIG = boards/openocd_stm32l4.cfg
|
||||
|
|
|
@ -2,3 +2,5 @@ MCU_SERIES = f4
|
|||
CMSIS_MCU = STM32F405xx
|
||||
AF_FILE = boards/stm32f405_af.csv
|
||||
LD_FILES = boards/stm32f405.ld boards/common_ifs.ld
|
||||
TEXT0_ADDR = 0x08000000
|
||||
TEXT1_ADDR = 0x08020000
|
||||
|
|
|
@ -2,6 +2,8 @@ MCU_SERIES = f4
|
|||
CMSIS_MCU = STM32F401xE
|
||||
AF_FILE = boards/stm32f401_af.csv
|
||||
LD_FILES = boards/stm32f401xd.ld boards/common_ifs.ld
|
||||
TEXT0_ADDR = 0x08000000
|
||||
TEXT1_ADDR = 0x08020000
|
||||
|
||||
# Don't include default frozen modules because MCU is tight on flash space
|
||||
FROZEN_MPY_DIR ?=
|
||||
|
|
|
@ -2,3 +2,5 @@ MCU_SERIES = f4
|
|||
CMSIS_MCU = STM32F405xx
|
||||
AF_FILE = boards/stm32f405_af.csv
|
||||
LD_FILES = boards/stm32f405.ld boards/common_ifs.ld
|
||||
TEXT0_ADDR = 0x08000000
|
||||
TEXT1_ADDR = 0x08020000
|
||||
|
|
|
@ -2,4 +2,5 @@ MCU_SERIES = l4
|
|||
CMSIS_MCU = STM32L476xx
|
||||
AF_FILE = boards/stm32l476_af.csv
|
||||
LD_FILES = boards/stm32l476xe.ld boards/common_ifs.ld
|
||||
TEXT0_ADDR = 0x08000000
|
||||
TEXT1_ADDR = 0x08004000
|
||||
|
|
|
@ -2,3 +2,5 @@ MCU_SERIES = f4
|
|||
CMSIS_MCU = STM32F405xx
|
||||
AF_FILE = boards/stm32f405_af.csv
|
||||
LD_FILES = boards/stm32f405.ld boards/common_ifs.ld
|
||||
TEXT0_ADDR = 0x08000000
|
||||
TEXT1_ADDR = 0x08020000
|
||||
|
|
|
@ -2,3 +2,5 @@ MCU_SERIES = f4
|
|||
CMSIS_MCU = STM32F401xE
|
||||
AF_FILE = boards/stm32f401_af.csv
|
||||
LD_FILES = boards/stm32f401xe.ld boards/common_ifs.ld
|
||||
TEXT0_ADDR = 0x08000000
|
||||
TEXT1_ADDR = 0x08020000
|
||||
|
|
|
@ -2,3 +2,5 @@ MCU_SERIES = f4
|
|||
CMSIS_MCU = STM32F411xE
|
||||
AF_FILE = boards/stm32f411_af.csv
|
||||
LD_FILES = boards/stm32f411.ld boards/common_ifs.ld
|
||||
TEXT0_ADDR = 0x08000000
|
||||
TEXT1_ADDR = 0x08020000
|
||||
|
|
|
@ -2,3 +2,5 @@ MCU_SERIES = f4
|
|||
CMSIS_MCU = STM32F429xx
|
||||
AF_FILE = boards/stm32f429_af.csv
|
||||
LD_FILES = boards/stm32f429.ld boards/common_ifs.ld
|
||||
TEXT0_ADDR = 0x08000000
|
||||
TEXT1_ADDR = 0x08020000
|
||||
|
|
|
@ -2,3 +2,5 @@ MCU_SERIES = f4
|
|||
CMSIS_MCU = STM32F446xx
|
||||
AF_FILE = boards/stm32f429_af.csv
|
||||
LD_FILES = boards/stm32f411.ld boards/common_ifs.ld
|
||||
TEXT0_ADDR = 0x08000000
|
||||
TEXT1_ADDR = 0x08020000
|
||||
|
|
|
@ -2,3 +2,5 @@ MCU_SERIES = f7
|
|||
CMSIS_MCU = STM32F746xx
|
||||
AF_FILE = boards/stm32f746_af.csv
|
||||
LD_FILES = boards/stm32f746.ld boards/common_ifs.ld
|
||||
TEXT0_ADDR = 0x08000000
|
||||
TEXT1_ADDR = 0x08020000
|
||||
|
|
|
@ -3,3 +3,5 @@ CMSIS_MCU = STM32F767xx
|
|||
MICROPY_FLOAT_IMPL = double
|
||||
AF_FILE = boards/stm32f767_af.csv
|
||||
LD_FILES = boards/stm32f767.ld boards/common_ifs.ld
|
||||
TEXT0_ADDR = 0x08000000
|
||||
TEXT1_ADDR = 0x08020000
|
||||
|
|
|
@ -2,4 +2,5 @@ MCU_SERIES = l4
|
|||
CMSIS_MCU = STM32L476xx
|
||||
AF_FILE = boards/stm32l476_af.csv
|
||||
LD_FILES = boards/stm32l476xg.ld boards/common_ifs.ld
|
||||
TEXT0_ADDR = 0x08000000
|
||||
TEXT1_ADDR = 0x08004000
|
||||
|
|
|
@ -2,3 +2,5 @@ MCU_SERIES = f4
|
|||
CMSIS_MCU = STM32F407xx
|
||||
AF_FILE = boards/stm32f405_af.csv
|
||||
LD_FILES = boards/stm32f405.ld boards/common_ifs.ld
|
||||
TEXT0_ADDR = 0x08000000
|
||||
TEXT1_ADDR = 0x08020000
|
||||
|
|
|
@ -2,3 +2,5 @@ MCU_SERIES = f4
|
|||
CMSIS_MCU = STM32F411xE
|
||||
AF_FILE = boards/stm32f411_af.csv
|
||||
LD_FILES = boards/stm32f411.ld boards/common_ifs.ld
|
||||
TEXT0_ADDR = 0x08000000
|
||||
TEXT1_ADDR = 0x08020000
|
||||
|
|
|
@ -2,3 +2,5 @@ MCU_SERIES = f4
|
|||
CMSIS_MCU = STM32F405xx
|
||||
AF_FILE = boards/stm32f405_af.csv
|
||||
LD_FILES = boards/stm32f405.ld boards/common_ifs.ld
|
||||
TEXT0_ADDR = 0x08000000
|
||||
TEXT1_ADDR = 0x08020000
|
||||
|
|
|
@ -2,3 +2,5 @@ MCU_SERIES = f4
|
|||
CMSIS_MCU = STM32F405xx
|
||||
AF_FILE = boards/stm32f405_af.csv
|
||||
LD_FILES = boards/stm32f405.ld boards/common_ifs.ld
|
||||
TEXT0_ADDR = 0x08000000
|
||||
TEXT1_ADDR = 0x08020000
|
||||
|
|
|
@ -2,3 +2,5 @@ MCU_SERIES = f4
|
|||
CMSIS_MCU = STM32F405xx
|
||||
AF_FILE = boards/stm32f405_af.csv
|
||||
LD_FILES = boards/stm32f405.ld boards/common_ifs.ld
|
||||
TEXT0_ADDR = 0x08000000
|
||||
TEXT1_ADDR = 0x08020000
|
||||
|
|
|
@ -2,3 +2,5 @@ MCU_SERIES = f4
|
|||
CMSIS_MCU = STM32F405xx
|
||||
AF_FILE = boards/stm32f405_af.csv
|
||||
LD_FILES = boards/stm32f405.ld boards/common_ifs.ld
|
||||
TEXT0_ADDR = 0x08000000
|
||||
TEXT1_ADDR = 0x08020000
|
||||
|
|
|
@ -2,3 +2,5 @@ MCU_SERIES = f4
|
|||
CMSIS_MCU = STM32F411xE
|
||||
AF_FILE = boards/stm32f411_af.csv
|
||||
LD_FILES = boards/stm32f411.ld boards/common_ifs.ld
|
||||
TEXT0_ADDR = 0x08000000
|
||||
TEXT1_ADDR = 0x08020000
|
||||
|
|
|
@ -2,3 +2,5 @@ MCU_SERIES = f4
|
|||
CMSIS_MCU = STM32F429xx
|
||||
AF_FILE = boards/stm32f429_af.csv
|
||||
LD_FILES = boards/stm32f429.ld boards/common_ifs.ld
|
||||
TEXT0_ADDR = 0x08000000
|
||||
TEXT1_ADDR = 0x08020000
|
||||
|
|
|
@ -2,3 +2,5 @@ MCU_SERIES = f4
|
|||
CMSIS_MCU = STM32F439xx
|
||||
AF_FILE = boards/stm32f439_af.csv
|
||||
LD_FILES = boards/stm32f439.ld boards/common_ifs.ld
|
||||
TEXT0_ADDR = 0x08000000
|
||||
TEXT1_ADDR = 0x08020000
|
||||
|
|
|
@ -2,3 +2,5 @@ MCU_SERIES = f4
|
|||
CMSIS_MCU = STM32F407xx
|
||||
AF_FILE = boards/stm32f405_af.csv
|
||||
LD_FILES = boards/stm32f405.ld boards/common_ifs.ld
|
||||
TEXT0_ADDR = 0x08000000
|
||||
TEXT1_ADDR = 0x08020000
|
||||
|
|
|
@ -3,3 +3,5 @@ CMSIS_MCU = STM32F769xx
|
|||
MICROPY_FLOAT_IMPL = double
|
||||
AF_FILE = boards/stm32f767_af.csv
|
||||
LD_FILES = boards/stm32f769.ld boards/common_ifs.ld
|
||||
TEXT0_ADDR = 0x08000000
|
||||
TEXT1_ADDR = 0x08020000
|
||||
|
|
|
@ -2,3 +2,5 @@ MCU_SERIES = f7
|
|||
CMSIS_MCU = STM32F746xx
|
||||
AF_FILE = boards/stm32f746_af.csv
|
||||
LD_FILES = boards/stm32f746.ld boards/common_ifs.ld
|
||||
TEXT0_ADDR = 0x08000000
|
||||
TEXT1_ADDR = 0x08020000
|
||||
|
|
|
@ -2,5 +2,6 @@ MCU_SERIES = l4
|
|||
CMSIS_MCU = STM32L476xx
|
||||
AF_FILE = boards/stm32l476_af.csv
|
||||
LD_FILES = boards/stm32l476xg.ld boards/common_ifs.ld
|
||||
TEXT0_ADDR = 0x08000000
|
||||
TEXT1_ADDR = 0x08004000
|
||||
OPENOCD_CONFIG = boards/openocd_stm32l4.cfg
|
||||
|
|
Loading…
Reference in New Issue