stm32/boards: Consolidate linker snippets to reduce duplication.

This commit uses the REGION_ALIAS GNU linker command to simplify the linker
snippets and consolidate the duplication.

Signed-off-by: Damien George <damien@micropython.org>
pull/9053/head
Andrew Leech 2022-08-15 08:35:23 +10:00 zatwierdzone przez Damien George
rodzic edc92d18db
commit fa57ee971b
13 zmienionych plików z 61 dodań i 178 usunięć

Wyświetl plik

@ -44,15 +44,12 @@ _micropy_hw_internal_flash_storage_ram_cache_end = ORIGIN(DTCM) + LENGTH(DTCM);
_micropy_hw_internal_flash_storage_start = ORIGIN(FLASH_FS);
_micropy_hw_internal_flash_storage_end = ORIGIN(FLASH_FS) + LENGTH(FLASH_FS);
REGION_ALIAS("FLASH_COMMON", FLASH_TEXT);
/* define output sections */
SECTIONS
{
.isr_vector :
{
. = ALIGN(4);
KEEP(*(.isr_vector))
. = ALIGN(4);
} >FLASH_TEXT
INCLUDE common_isr.ld
.text :
{
@ -65,6 +62,6 @@ SECTIONS
_etext = .;
} >FLASH_TEXT
INCLUDE common_extratext_data_in_flash_text.ld
INCLUDE common_extratext_data_in_flash.ld
INCLUDE common_bss_heap_stack.ld
}

Wyświetl plik

@ -42,6 +42,8 @@ _heap_end = _sstack;
ENTRY(Reset_Handler)
REGION_ALIAS("FLASH_COMMON", FLASH_APP);
/* Define output sections */
SECTIONS
{
@ -56,22 +58,8 @@ SECTIONS
. = ALIGN(4);
} >FLASH_EXT
.isr_vector :
{
. = ALIGN(4);
KEEP(*(.isr_vector))
. = ALIGN(4);
} >FLASH_APP
.text :
{
. = ALIGN(4);
*(.text*)
*(.rodata*)
. = ALIGN(4);
_etext = .;
} >FLASH_APP
INCLUDE common_extratext_data_in_flash_app.ld
INCLUDE common_isr.ld
INCLUDE common_text.ld
INCLUDE common_extratext_data_in_flash.ld
INCLUDE common_bss_heap_stack.ld
}

Wyświetl plik

@ -41,15 +41,12 @@ _heap_end = _sstack;
ENTRY(Reset_Handler)
REGION_ALIAS("FLASH_COMMON", FLASH_APP);
/* Define output sections */
SECTIONS
{
.isr_vector :
{
. = ALIGN(4);
KEEP(*(.isr_vector))
. = ALIGN(4);
} >FLASH_APP
INCLUDE common_isr.ld
.text :
{
@ -62,6 +59,6 @@ SECTIONS
_etext = .;
} >FLASH_APP
INCLUDE common_extratext_data_in_flash_app.ld
INCLUDE common_extratext_data_in_flash.ld
INCLUDE common_bss_heap_stack.ld
}

Wyświetl plik

@ -40,6 +40,8 @@ _heap_end = _sstack;
ENTRY(Reset_Handler)
REGION_ALIAS("FLASH_COMMON", FLASH_APP);
SECTIONS
{
/* Define the code that goes in QSPI flash */
@ -50,24 +52,8 @@ SECTIONS
. = ALIGN(4);
} >FLASH_QSPI
/* The startup code goes first into main flash */
.isr_vector :
{
. = ALIGN(4);
KEEP(*(.isr_vector))
. = ALIGN(4);
} >FLASH_APP
/* The program code and other data goes into flash */
.text :
{
. = ALIGN(4);
*(.text*)
*(.rodata*)
. = ALIGN(4);
_etext = .;
} >FLASH_APP
INCLUDE common_extratext_data_in_flash_app.ld
INCLUDE common_isr.ld
INCLUDE common_text.ld
INCLUDE common_extratext_data_in_flash.ld
INCLUDE common_bss_heap_stack.ld
}

Wyświetl plik

@ -12,31 +12,13 @@
ENTRY(Reset_Handler)
REGION_ALIAS("FLASH_COMMON", FLASH);
/* define output sections */
SECTIONS
{
/* The startup code goes first into FLASH */
.isr_vector :
{
. = ALIGN(4);
KEEP(*(.isr_vector)) /* Startup code */
. = ALIGN(4);
} >FLASH
/* The program code and other data goes into FLASH */
.text :
{
. = ALIGN(4);
*(.text*) /* .text* sections (code) */
*(.rodata*) /* .rodata* sections (constants, strings, etc.) */
/* *(.glue_7) */ /* glue arm to thumb code */
/* *(.glue_7t) */ /* glue thumb to arm code */
. = ALIGN(4);
_etext = .; /* define a global symbol at end of code */
} >FLASH
INCLUDE common_isr.ld
INCLUDE common_text.ld
INCLUDE common_extratext_data_in_flash.ld
INCLUDE common_bss_heap_stack.ld
}

Wyświetl plik

@ -12,31 +12,13 @@
ENTRY(Reset_Handler)
REGION_ALIAS("FLASH_COMMON", FLASH_APP);
/* define output sections */
SECTIONS
{
/* The startup code goes first into FLASH */
.isr_vector :
{
. = ALIGN(4);
KEEP(*(.isr_vector)) /* Startup code */
. = ALIGN(4);
} >FLASH_APP
/* The program code and other data goes into FLASH */
.text :
{
. = ALIGN(4);
*(.text*) /* .text* sections (code) */
*(.rodata*) /* .rodata* sections (constants, strings, etc.) */
/* *(.glue_7) */ /* glue arm to thumb code */
/* *(.glue_7t) */ /* glue thumb to arm code */
. = ALIGN(4);
_etext = .; /* define a global symbol at end of code */
} >FLASH_APP
INCLUDE common_extratext_data_in_flash_app.ld
INCLUDE common_isr.ld
INCLUDE common_text.ld
INCLUDE common_extratext_data_in_flash.ld
INCLUDE common_bss_heap_stack.ld
}

Wyświetl plik

@ -12,31 +12,13 @@
ENTRY(Reset_Handler)
REGION_ALIAS("FLASH_COMMON", FLASH_TEXT);
/* define output sections */
SECTIONS
{
/* The startup code goes first into FLASH */
.isr_vector :
{
. = ALIGN(4);
KEEP(*(.isr_vector)) /* Startup code */
. = ALIGN(4);
} >FLASH_TEXT
/* The program code and other data goes into FLASH */
.text :
{
. = ALIGN(4);
*(.text*) /* .text* sections (code) */
*(.rodata*) /* .rodata* sections (constants, strings, etc.) */
/* *(.glue_7) */ /* glue arm to thumb code */
/* *(.glue_7t) */ /* glue thumb to arm code */
. = ALIGN(4);
_etext = .; /* define a global symbol at end of code */
} >FLASH_TEXT
INCLUDE common_extratext_data_in_flash_text.ld
INCLUDE common_isr.ld
INCLUDE common_text.ld
INCLUDE common_extratext_data_in_flash.ld
INCLUDE common_bss_heap_stack.ld
}

Wyświetl plik

@ -6,7 +6,7 @@
__exidx_start = .;
*(.ARM.exidx*)
__exidx_end = .;
} >FLASH
} >FLASH_COMMON
/* Used by the start-up code to initialise data */
_sidata = LOADADDR(.data);
@ -19,4 +19,4 @@ _sidata = LOADADDR(.data);
*(.data*)
. = ALIGN(4);
_edata = .;
} >RAM AT> FLASH
} >RAM AT> FLASH_COMMON

Wyświetl plik

@ -1,22 +0,0 @@
/* This linker script fragment is intended to be included in SECTIONS. */
/* For C++ exception handling */
.ARM :
{
__exidx_start = .;
*(.ARM.exidx*)
__exidx_end = .;
} >FLASH_APP
/* Used by the start-up code to initialise data */
_sidata = LOADADDR(.data);
/* Initialised data section, start-up code will copy it from flash to RAM */
.data :
{
. = ALIGN(4);
_sdata = .;
*(.data*)
. = ALIGN(4);
_edata = .;
} >RAM AT> FLASH_APP

Wyświetl plik

@ -1,22 +0,0 @@
/* This linker script fragment is intended to be included in SECTIONS. */
/* For C++ exception handling */
.ARM :
{
__exidx_start = .;
*(.ARM.exidx*)
__exidx_end = .;
} >FLASH_TEXT
/* Used by the start-up code to initialise data */
_sidata = LOADADDR(.data);
/* Initialised data section, start-up code will copy it from flash to RAM */
.data :
{
. = ALIGN(4);
_sdata = .;
*(.data*)
. = ALIGN(4);
_edata = .;
} >RAM AT> FLASH_TEXT

Wyświetl plik

@ -13,6 +13,8 @@
ENTRY(Reset_Handler)
REGION_ALIAS("FLASH_COMMON", FLASH_TEXT);
/* define output sections */
SECTIONS
{
@ -41,19 +43,7 @@ SECTIONS
. = ALIGN(4);
} >FLASH_ISR
/* The program code and other data goes into FLASH */
.text :
{
. = ALIGN(4);
*(.text*) /* .text* sections (code) */
*(.rodata*) /* .rodata* sections (constants, strings, etc.) */
/* *(.glue_7) */ /* glue arm to thumb code */
/* *(.glue_7t) */ /* glue thumb to arm code */
. = ALIGN(4);
_etext = .; /* define a global symbol at end of code */
} >FLASH_TEXT
INCLUDE common_extratext_data_in_flash_text.ld
INCLUDE common_text.ld
INCLUDE common_extratext_data_in_flash.ld
INCLUDE common_bss_heap_stack.ld
}

Wyświetl plik

@ -0,0 +1,9 @@
/* This linker script fragment is intended to be included in SECTIONS. */
/* The startup code goes first into FLASH */
.isr_vector :
{
. = ALIGN(4);
KEEP(*(.isr_vector)) /* Startup code */
. = ALIGN(4);
} >FLASH_COMMON

Wyświetl plik

@ -0,0 +1,14 @@
/* This linker script fragment is intended to be included in SECTIONS. */
/* The program code and other data goes into FLASH */
.text :
{
. = ALIGN(4);
*(.text*) /* .text* sections (code) */
*(.rodata*) /* .rodata* sections (constants, strings, etc.) */
/* *(.glue_7) */ /* glue arm to thumb code */
/* *(.glue_7t) */ /* glue thumb to arm code */
. = ALIGN(4);
_etext = .; /* define a global symbol at end of code */
} >FLASH_COMMON