summaryrefslogtreecommitdiff
path: root/bsp/lpc2478
diff options
context:
space:
mode:
authoraozima <[email protected]>2013-07-11 23:07:16 +0800
committeraozima <[email protected]>2013-07-11 23:07:16 +0800
commitcc8301d0f17210cf0e74232b8d58cde81e28e5e9 (patch)
treee1bb093782f169b5a8f41ec7442d8ddad8698b61 /bsp/lpc2478
parent51532ae425b4b468ba78c956ef95f214dd427c1b (diff)
update linker script for components auto initial.
Diffstat (limited to 'bsp/lpc2478')
-rw-r--r--bsp/lpc2478/lpc2478_rom.lds50
1 files changed, 28 insertions, 22 deletions
diff --git a/bsp/lpc2478/lpc2478_rom.lds b/bsp/lpc2478/lpc2478_rom.lds
index ced52b9fc8..f6e3672ff1 100644
--- a/bsp/lpc2478/lpc2478_rom.lds
+++ b/bsp/lpc2478/lpc2478_rom.lds
@@ -15,8 +15,8 @@ SECTIONS
{
.text :
{
- *(.init)
- *(.text)
+ *(.init)
+ *(.text)
*(.text.*) /* remaining code */
*(.rodata) /* read-only data (constants) */
*(.rodata*)
@@ -36,25 +36,31 @@ SECTIONS
. = ALIGN(4);
. = ALIGN(4);
+ __rt_init_start = .;
+ KEEP(*(SORT(.rti_fn*)))
+ __rt_init_end = .;
+ . = ALIGN(4);
+
+ . = ALIGN(4);
_etext = .;
} > CODE = 0
- . = ALIGN(4);
- .ctors :
- {
- PROVIDE(__ctors_start__ = .);
- KEEP(*(SORT(.ctors.*)))
- KEEP(*(.ctors))
- PROVIDE(__ctors_end__ = .);
- } > CODE
+ . = ALIGN(4);
+ .ctors :
+ {
+ PROVIDE(__ctors_start__ = .);
+ KEEP(*(SORT(.ctors.*)))
+ KEEP(*(.ctors))
+ PROVIDE(__ctors_end__ = .);
+ } > CODE
- .dtors :
- {
- PROVIDE(__dtors_start__ = .);
- KEEP(*(SORT(.dtors.*)))
- KEEP(*(.dtors))
- PROVIDE(__dtors_end__ = .);
- } > CODE
+ .dtors :
+ {
+ PROVIDE(__dtors_start__ = .);
+ KEEP(*(SORT(.dtors.*)))
+ KEEP(*(.dtors))
+ PROVIDE(__dtors_end__ = .);
+ } > CODE
/* .ARM.exidx is sorted, so has to go in its own output section. */
__exidx_start = .;
@@ -82,12 +88,12 @@ SECTIONS
/* This is used by the startup in order to initialize the .data secion */
_edata = . ;
} >DATA
- __data_end = .;
+ __data_end = .;
- .noinit :
- {
- *(.bss.noinit)
- } > DATA
+ .noinit :
+ {
+ *(.bss.noinit)
+ } > DATA
__bss_start = .;
.bss :