stm32/mboot: Allow a board to customise the linker scripts.
A board can now define MBOOT_LD_FILES (at the Makefile-level) to specify custom linker scripts. And stm32_generic.ld has been split into 2 pieces so one or the other can be reused (usually stm32_sections.ld wolud be reused by a board, and stm32_memory.ld redefined). Signed-off-by: Damien George <damien@micropython.org>
This commit is contained in:
parent
97f09fda3e
commit
58be5a5aa3
@ -85,7 +85,8 @@ CFLAGS += -DBUILDING_MBOOT=$(BUILDING_MBOOT)
|
|||||||
CFLAGS += -DMICROPY_HW_STM32WB_FLASH_SYNCRONISATION=0
|
CFLAGS += -DMICROPY_HW_STM32WB_FLASH_SYNCRONISATION=0
|
||||||
CFLAGS += -DBOOTLOADER_DFU_USB_VID=$(BOOTLOADER_DFU_USB_VID) -DBOOTLOADER_DFU_USB_PID=$(BOOTLOADER_DFU_USB_PID)
|
CFLAGS += -DBOOTLOADER_DFU_USB_VID=$(BOOTLOADER_DFU_USB_VID) -DBOOTLOADER_DFU_USB_PID=$(BOOTLOADER_DFU_USB_PID)
|
||||||
|
|
||||||
LDFLAGS = -nostdlib -L . -T stm32_generic.ld -Map=$(@:.elf=.map) --cref
|
MBOOT_LD_FILES ?= stm32_memory.ld stm32_sections.ld
|
||||||
|
LDFLAGS = -nostdlib -L . $(addprefix -T,$(MBOOT_LD_FILES)) -Map=$(@:.elf=.map) --cref
|
||||||
LIBS = $(shell $(CC) $(CFLAGS) -print-libgcc-file-name)
|
LIBS = $(shell $(CC) $(CFLAGS) -print-libgcc-file-name)
|
||||||
|
|
||||||
# Remove uncalled code from the final image.
|
# Remove uncalled code from the final image.
|
||||||
|
10
ports/stm32/mboot/stm32_memory.ld
Normal file
10
ports/stm32/mboot/stm32_memory.ld
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
/*
|
||||||
|
Linker script fragment for mboot on an STM32xxx MCU.
|
||||||
|
This defines the memory sections for the bootloader to use.
|
||||||
|
*/
|
||||||
|
|
||||||
|
MEMORY
|
||||||
|
{
|
||||||
|
FLASH_BL (rx) : ORIGIN = 0x08000000, LENGTH = 32K
|
||||||
|
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 120K
|
||||||
|
}
|
@ -1,14 +1,8 @@
|
|||||||
/*
|
/*
|
||||||
GNU linker script for generic STM32xxx MCU
|
Linker script fragment for mboot on an STM32xxx MCU.
|
||||||
|
This needs the following MEMORY sections to be defined: FLASH_BL, RAM.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Specify the memory areas */
|
|
||||||
MEMORY
|
|
||||||
{
|
|
||||||
FLASH_BL (rx) : ORIGIN = 0x08000000, LENGTH = 32K /* sector 0 (can be 32K) */
|
|
||||||
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 120K
|
|
||||||
}
|
|
||||||
|
|
||||||
/* produce a link error if there is not this amount of RAM for these sections */
|
/* produce a link error if there is not this amount of RAM for these sections */
|
||||||
_minimum_stack_size = 8K;
|
_minimum_stack_size = 8K;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user