diff options
Diffstat (limited to 'libgloss/msp430/msp430xl-sim.ld')
-rw-r--r-- | libgloss/msp430/msp430xl-sim.ld | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/libgloss/msp430/msp430xl-sim.ld b/libgloss/msp430/msp430xl-sim.ld index 14ba083b7..322a490f4 100644 --- a/libgloss/msp430/msp430xl-sim.ld +++ b/libgloss/msp430/msp430xl-sim.ld @@ -19,6 +19,8 @@ ENTRY(_start) /* Do we need any of these for elf? __DYNAMIC = 0; */ +INCLUDE intr_vectors.ld + MEMORY { RAM (rx) : ORIGIN = 0x00200, LENGTH = 0x0ee00 LOWROM (w) : ORIGIN = 0x0f000, LENGTH = 0x00800 @@ -114,14 +116,23 @@ SECTIONS *(.sbss .sbss.*) *(.bss .bss.* .gnu.linkonce.b.*) . = ALIGN(2); - *(COMMON) - . = ALIGN(2); PROVIDE (__bssend = .); - _end = .; - PROVIDE (end = .); } > RAM PROVIDE (__bsssize = SIZEOF(.bss)); + /* This section contains data that is not initialised at startup. */ + .noinit : { + . = ALIGN(2); + PROVIDE (__noinit_start = .); + *(.noinit) + . = ALIGN(2); + *(COMMON) + PROVIDE (__noinit_end = .); + } > RAM + + _end = .; + PROVIDE (end = .); + .stack (ORIGIN (RAM) + LENGTH(RAM)) : { PROVIDE (__stack = .); @@ -133,8 +144,13 @@ SECTIONS { PROVIDE (_start = .); . = ALIGN(2); - *(.lowtext) + KEEP (*(.crt_init)) + KEEP (*(.crt_bss)) + KEEP (*(.crt_movedata)) + KEEP (*(.crt_main)) + KEEP (*(.lowtext)) } > LOWROM + .text : { . = ALIGN(2); @@ -149,6 +165,7 @@ SECTIONS . = ALIGN(2); KEEP (*(.init)) KEEP (*(.fini)) + KEEP (*(.tm_clone_table)) } > ROM /* The rest are all not normally part of the runtime image. */ @@ -183,7 +200,7 @@ SECTIONS /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } - .debug_line 0 : { *(.debug_line) } + .debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end ) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } |