Fix alignment problems in Linkerscript

This commit is contained in:
Mario Hüttel 2021-05-24 03:54:19 +02:00
parent b483f4ebc6
commit e42b985db3

View File

@ -38,16 +38,14 @@ MEMORY
SECTIONS
{
.vectors :
.vectors : ALIGN(4)
{
. = ALIGN(4);
KEEP(*(.vectors))
. = ALIGN(4);
} >FLASH
.text :
.text : ALIGN(4)
{
. = ALIGN(4);
*(.text) /* .text sections (code) */
*(.text*) /* .text* sections (code) */
*(.rodata) /* .rodata sections (constants, strings, etc.) */
@ -57,49 +55,54 @@ SECTIONS
*(.eh_frame)
KEEP(*(.init)) /* Constructors */
KEEP(*(.fini)) /* Destructors */
. = ALIGN(4);
} >FLASH
.ARM.extab :
.ARM.extab : ALIGN(4)
{
*(.ARM.extab* .gnu.linkonce.armextab.*)
*(.ARM.extab* .gnu.linkonce.armextab.*)
. = ALIGN(4);
} >FLASH
.ARM :
.ARM : ALIGN(4)
{
__exidx_start = .;
*(.ARM.exidx*)
. = ALIGN(4);
__exidx_end = .;
} >FLASH
/* Constructor/Destructor tables */
.preinit_array :
.preinit_array : ALIGN(4)
{
PROVIDE_HIDDEN (__preinit_array_start = .);
KEEP (*(.preinit_array*))
. = ALIGN(4);
PROVIDE_HIDDEN (__preinit_array_end = .);
} >FLASH
.init_array :
.init_array : ALIGN(4)
{
PROVIDE_HIDDEN (__init_array_start = .);
KEEP (*(SORT(.init_array.*)))
KEEP (*(.init_array*))
. = ALIGN(4);
PROVIDE_HIDDEN (__init_array_end = .);
} >FLASH
.fini_array :
.fini_array : ALIGN(4)
{
PROVIDE_HIDDEN (__fini_array_start = .);
KEEP (*(.fini_array*))
KEEP (*(SORT(.fini_array.*)))
. = ALIGN(4);
PROVIDE_HIDDEN (__fini_array_end = .);
} >FLASH
/* Initialized Data */
__ld_load_data = LOADADDR(.data);
.data :
.data : ALIGN(4)
{
. = ALIGN(4);
__ld_sdata = .;
*(.data)
*(.data*)
@ -108,9 +111,8 @@ SECTIONS
} >RAM AT> FLASH
/* Uninitialized static data */
.bss :
.bss : ALIGN(4)
{
. = ALIGN(4);
__ld_sbss = .;
*(.bss)
*(.bss*)
@ -119,9 +121,8 @@ SECTIONS
__ld_ebss = .;
} >RAM
.heap_stack (NOLOAD) :
.heap_stack (NOLOAD) : ALIGN(4)
{
. = ALIGN(4);
__ld_sheap = .;
. = . + __ld_heap_size;
__ld_eheap = .;