stm32/boards: Factor out common data/bss/heap/stack linker sections.
Signed-off-by: Damien George <damien@micropython.org>bound-method-equality
parent
a866f868f8
commit
df3b466d6c
|
@ -72,39 +72,6 @@ SECTIONS
|
||||||
_etext = .;
|
_etext = .;
|
||||||
} >FLASH_APP
|
} >FLASH_APP
|
||||||
|
|
||||||
_sidata = LOADADDR(.data);
|
INCLUDE common_extratext_data_in_flash_app.ld
|
||||||
|
INCLUDE common_bss_heap_stack.ld
|
||||||
.data :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
_sdata = .;
|
|
||||||
*(.data*)
|
|
||||||
|
|
||||||
. = ALIGN(4);
|
|
||||||
_edata = .;
|
|
||||||
} >RAM AT> FLASH_APP
|
|
||||||
|
|
||||||
.bss :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
_sbss = .;
|
|
||||||
*(.bss*)
|
|
||||||
*(COMMON)
|
|
||||||
. = ALIGN(4);
|
|
||||||
_ebss = .;
|
|
||||||
} >RAM
|
|
||||||
|
|
||||||
.heap :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
. = . + _minimum_heap_size;
|
|
||||||
. = ALIGN(4);
|
|
||||||
} >RAM
|
|
||||||
|
|
||||||
.stack :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
. = . + _minimum_stack_size;
|
|
||||||
. = ALIGN(4);
|
|
||||||
} >RAM
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,38 +62,6 @@ SECTIONS
|
||||||
_etext = .;
|
_etext = .;
|
||||||
} >FLASH_APP
|
} >FLASH_APP
|
||||||
|
|
||||||
_sidata = LOADADDR(.data);
|
INCLUDE common_extratext_data_in_flash_app.ld
|
||||||
|
INCLUDE common_bss_heap_stack.ld
|
||||||
.data :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
_sdata = .;
|
|
||||||
*(.data*)
|
|
||||||
. = ALIGN(4);
|
|
||||||
_edata = .;
|
|
||||||
} >RAM AT> FLASH_APP
|
|
||||||
|
|
||||||
.bss :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
_sbss = .;
|
|
||||||
*(.bss*)
|
|
||||||
*(COMMON)
|
|
||||||
. = ALIGN(4);
|
|
||||||
_ebss = .;
|
|
||||||
} >RAM
|
|
||||||
|
|
||||||
.heap :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
. = . + _minimum_heap_size;
|
|
||||||
. = ALIGN(4);
|
|
||||||
} >RAM
|
|
||||||
|
|
||||||
.stack :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
. = . + _minimum_stack_size;
|
|
||||||
. = ALIGN(4);
|
|
||||||
} >RAM
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,43 +68,6 @@ SECTIONS
|
||||||
_etext = .;
|
_etext = .;
|
||||||
} >FLASH_APP
|
} >FLASH_APP
|
||||||
|
|
||||||
/* Used by the startup to initialize data */
|
INCLUDE common_extratext_data_in_flash_app.ld
|
||||||
_sidata = LOADADDR(.data);
|
INCLUDE common_bss_heap_stack.ld
|
||||||
|
|
||||||
/* The initialized data section */
|
|
||||||
.data :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
_sdata = .;
|
|
||||||
*(.data*)
|
|
||||||
. = ALIGN(4);
|
|
||||||
_edata = .;
|
|
||||||
} >RAM AT> FLASH_APP
|
|
||||||
|
|
||||||
/* The uninitialized (zeroed) data section */
|
|
||||||
.bss :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
_sbss = .;
|
|
||||||
*(.bss*)
|
|
||||||
*(COMMON)
|
|
||||||
. = ALIGN(4);
|
|
||||||
_ebss = .;
|
|
||||||
} >RAM
|
|
||||||
|
|
||||||
/* Define the start of the heap, and make sure we have a minimum size */
|
|
||||||
.heap :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
. = . + _minimum_heap_size;
|
|
||||||
. = ALIGN(4);
|
|
||||||
} >RAM
|
|
||||||
|
|
||||||
/* Just checks there is enough RAM for the stack */
|
|
||||||
.stack :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
. = . + _minimum_stack_size;
|
|
||||||
. = ALIGN(4);
|
|
||||||
} >RAM
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,50 +37,6 @@ SECTIONS
|
||||||
_etext = .; /* define a global symbol at end of code */
|
_etext = .; /* define a global symbol at end of code */
|
||||||
} >FLASH
|
} >FLASH
|
||||||
|
|
||||||
/* used by the startup to initialize data */
|
INCLUDE common_extratext_data_in_flash.ld
|
||||||
_sidata = LOADADDR(.data);
|
INCLUDE common_bss_heap_stack.ld
|
||||||
|
|
||||||
/* This is the initialized data section
|
|
||||||
The program executes knowing that the data is in the RAM
|
|
||||||
but the loader puts the initial values in the FLASH (inidata).
|
|
||||||
It is one task of the startup to copy the initial values from FLASH to RAM. */
|
|
||||||
.data :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
_sdata = .; /* create a global symbol at data start; used by startup code in order to initialise the .data section in RAM */
|
|
||||||
*(.data*) /* .data* sections */
|
|
||||||
|
|
||||||
. = ALIGN(4);
|
|
||||||
_edata = .; /* define a global symbol at data end; used by startup code in order to initialise the .data section in RAM */
|
|
||||||
} >RAM AT> FLASH
|
|
||||||
|
|
||||||
/* Uninitialized data section */
|
|
||||||
.bss :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
_sbss = .; /* define a global symbol at bss start; used by startup code */
|
|
||||||
*(.bss*)
|
|
||||||
*(COMMON)
|
|
||||||
|
|
||||||
. = ALIGN(4);
|
|
||||||
_ebss = .; /* define a global symbol at bss end; used by startup code and GC */
|
|
||||||
} >RAM
|
|
||||||
|
|
||||||
/* this is to define the start of the heap, and make sure we have a minimum size */
|
|
||||||
.heap :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
. = . + _minimum_heap_size;
|
|
||||||
. = ALIGN(4);
|
|
||||||
} >RAM
|
|
||||||
|
|
||||||
/* this just checks there is enough RAM for the stack */
|
|
||||||
.stack :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
. = . + _minimum_stack_size;
|
|
||||||
. = ALIGN(4);
|
|
||||||
} >RAM
|
|
||||||
|
|
||||||
.ARM.attributes 0 : { *(.ARM.attributes) }
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,50 +37,6 @@ SECTIONS
|
||||||
_etext = .; /* define a global symbol at end of code */
|
_etext = .; /* define a global symbol at end of code */
|
||||||
} >FLASH_APP
|
} >FLASH_APP
|
||||||
|
|
||||||
/* used by the startup to initialize data */
|
INCLUDE common_extratext_data_in_flash_app.ld
|
||||||
_sidata = LOADADDR(.data);
|
INCLUDE common_bss_heap_stack.ld
|
||||||
|
|
||||||
/* This is the initialized data section
|
|
||||||
The program executes knowing that the data is in the RAM
|
|
||||||
but the loader puts the initial values in the FLASH (inidata).
|
|
||||||
It is one task of the startup to copy the initial values from FLASH to RAM. */
|
|
||||||
.data :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
_sdata = .; /* create a global symbol at data start; used by startup code in order to initialise the .data section in RAM */
|
|
||||||
*(.data*) /* .data* sections */
|
|
||||||
|
|
||||||
. = ALIGN(4);
|
|
||||||
_edata = .; /* define a global symbol at data end; used by startup code in order to initialise the .data section in RAM */
|
|
||||||
} >RAM AT> FLASH_APP
|
|
||||||
|
|
||||||
/* Uninitialized data section */
|
|
||||||
.bss :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
_sbss = .; /* define a global symbol at bss start; used by startup code */
|
|
||||||
*(.bss*)
|
|
||||||
*(COMMON)
|
|
||||||
|
|
||||||
. = ALIGN(4);
|
|
||||||
_ebss = .; /* define a global symbol at bss end; used by startup code and GC */
|
|
||||||
} >RAM
|
|
||||||
|
|
||||||
/* this is to define the start of the heap, and make sure we have a minimum size */
|
|
||||||
.heap :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
. = . + _minimum_heap_size;
|
|
||||||
. = ALIGN(4);
|
|
||||||
} >RAM
|
|
||||||
|
|
||||||
/* this just checks there is enough RAM for the stack */
|
|
||||||
.stack :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
. = . + _minimum_stack_size;
|
|
||||||
. = ALIGN(4);
|
|
||||||
} >RAM
|
|
||||||
|
|
||||||
.ARM.attributes 0 : { *(.ARM.attributes) }
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,50 +37,6 @@ SECTIONS
|
||||||
_etext = .; /* define a global symbol at end of code */
|
_etext = .; /* define a global symbol at end of code */
|
||||||
} >FLASH_TEXT
|
} >FLASH_TEXT
|
||||||
|
|
||||||
/* used by the startup to initialize data */
|
INCLUDE common_extratext_data_in_flash_text.ld
|
||||||
_sidata = LOADADDR(.data);
|
INCLUDE common_bss_heap_stack.ld
|
||||||
|
|
||||||
/* This is the initialized data section
|
|
||||||
The program executes knowing that the data is in the RAM
|
|
||||||
but the loader puts the initial values in the FLASH (inidata).
|
|
||||||
It is one task of the startup to copy the initial values from FLASH to RAM. */
|
|
||||||
.data :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
_sdata = .; /* create a global symbol at data start; used by startup code in order to initialise the .data section in RAM */
|
|
||||||
*(.data*) /* .data* sections */
|
|
||||||
|
|
||||||
. = ALIGN(4);
|
|
||||||
_edata = .; /* define a global symbol at data end; used by startup code in order to initialise the .data section in RAM */
|
|
||||||
} >RAM AT> FLASH_TEXT
|
|
||||||
|
|
||||||
/* Uninitialized data section */
|
|
||||||
.bss :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
_sbss = .; /* define a global symbol at bss start; used by startup code */
|
|
||||||
*(.bss*)
|
|
||||||
*(COMMON)
|
|
||||||
|
|
||||||
. = ALIGN(4);
|
|
||||||
_ebss = .; /* define a global symbol at bss end; used by startup code and GC */
|
|
||||||
} >RAM
|
|
||||||
|
|
||||||
/* this is to define the start of the heap, and make sure we have a minimum size */
|
|
||||||
.heap :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
. = . + _minimum_heap_size;
|
|
||||||
. = ALIGN(4);
|
|
||||||
} >RAM
|
|
||||||
|
|
||||||
/* this just checks there is enough RAM for the stack */
|
|
||||||
.stack :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
. = . + _minimum_stack_size;
|
|
||||||
. = ALIGN(4);
|
|
||||||
} >RAM
|
|
||||||
|
|
||||||
.ARM.attributes 0 : { *(.ARM.attributes) }
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
/* This linker script fragment is intended to be included in SECTIONS. */
|
||||||
|
|
||||||
|
/* Zeroed-out data section */
|
||||||
|
.bss :
|
||||||
|
{
|
||||||
|
. = ALIGN(4);
|
||||||
|
_sbss = .;
|
||||||
|
*(.bss*)
|
||||||
|
*(COMMON)
|
||||||
|
. = ALIGN(4);
|
||||||
|
_ebss = .;
|
||||||
|
} >RAM
|
||||||
|
|
||||||
|
/* This is to define the start of the heap, and make sure there is a minimum size */
|
||||||
|
.heap :
|
||||||
|
{
|
||||||
|
. = ALIGN(4);
|
||||||
|
. = . + _minimum_heap_size;
|
||||||
|
. = ALIGN(4);
|
||||||
|
} >RAM
|
||||||
|
|
||||||
|
/* This checks there is enough RAM for the stack */
|
||||||
|
.stack :
|
||||||
|
{
|
||||||
|
. = ALIGN(4);
|
||||||
|
. = . + _minimum_stack_size;
|
||||||
|
. = ALIGN(4);
|
||||||
|
} >RAM
|
|
@ -0,0 +1,14 @@
|
||||||
|
/* This linker script fragment is intended to be included in SECTIONS. */
|
||||||
|
|
||||||
|
/* 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
|
|
@ -0,0 +1,14 @@
|
||||||
|
/* This linker script fragment is intended to be included in SECTIONS. */
|
||||||
|
|
||||||
|
/* 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
|
|
@ -0,0 +1,14 @@
|
||||||
|
/* This linker script fragment is intended to be included in SECTIONS. */
|
||||||
|
|
||||||
|
/* 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
|
|
@ -54,50 +54,6 @@ SECTIONS
|
||||||
_etext = .; /* define a global symbol at end of code */
|
_etext = .; /* define a global symbol at end of code */
|
||||||
} >FLASH_TEXT
|
} >FLASH_TEXT
|
||||||
|
|
||||||
/* used by the startup to initialize data */
|
INCLUDE common_extratext_data_in_flash_text.ld
|
||||||
_sidata = LOADADDR(.data);
|
INCLUDE common_bss_heap_stack.ld
|
||||||
|
|
||||||
/* This is the initialized data section
|
|
||||||
The program executes knowing that the data is in the RAM
|
|
||||||
but the loader puts the initial values in the FLASH (inidata).
|
|
||||||
It is one task of the startup to copy the initial values from FLASH to RAM. */
|
|
||||||
.data :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
_sdata = .; /* create a global symbol at data start; used by startup code in order to initialise the .data section in RAM */
|
|
||||||
*(.data*) /* .data* sections */
|
|
||||||
|
|
||||||
. = ALIGN(4);
|
|
||||||
_edata = .; /* define a global symbol at data end; used by startup code in order to initialise the .data section in RAM */
|
|
||||||
} >RAM AT> FLASH_TEXT
|
|
||||||
|
|
||||||
/* Uninitialized data section */
|
|
||||||
.bss :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
_sbss = .; /* define a global symbol at bss start; used by startup code */
|
|
||||||
*(.bss*)
|
|
||||||
*(COMMON)
|
|
||||||
|
|
||||||
. = ALIGN(4);
|
|
||||||
_ebss = .; /* define a global symbol at bss end; used by startup code and GC */
|
|
||||||
} >RAM
|
|
||||||
|
|
||||||
/* this is to define the start of the heap, and make sure we have a minimum size */
|
|
||||||
.heap :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
. = . + _minimum_heap_size;
|
|
||||||
. = ALIGN(4);
|
|
||||||
} >RAM
|
|
||||||
|
|
||||||
/* this just checks there is enough RAM for the stack */
|
|
||||||
.stack :
|
|
||||||
{
|
|
||||||
. = ALIGN(4);
|
|
||||||
. = . + _minimum_stack_size;
|
|
||||||
. = ALIGN(4);
|
|
||||||
} >RAM
|
|
||||||
|
|
||||||
.ARM.attributes 0 : { *(.ARM.attributes) }
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue