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