diff options
| author | aozima <[email protected]> | 2013-07-11 23:07:16 +0800 |
|---|---|---|
| committer | aozima <[email protected]> | 2013-07-11 23:07:16 +0800 |
| commit | cc8301d0f17210cf0e74232b8d58cde81e28e5e9 (patch) | |
| tree | e1bb093782f169b5a8f41ec7442d8ddad8698b61 /bsp/lpc2478 | |
| parent | 51532ae425b4b468ba78c956ef95f214dd427c1b (diff) | |
update linker script for components auto initial.
Diffstat (limited to 'bsp/lpc2478')
| -rw-r--r-- | bsp/lpc2478/lpc2478_rom.lds | 50 |
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 : |
