diff options
Diffstat (limited to 'support/ld')
-rw-r--r-- | support/ld/common.inc | 53 |
1 files changed, 23 insertions, 30 deletions
diff --git a/support/ld/common.inc b/support/ld/common.inc index 926f9eb..f749b19 100644 --- a/support/ld/common.inc +++ b/support/ld/common.inc @@ -102,29 +102,6 @@ SECTIONS } > REGION_TEXT /* - * Read-only data - */ - .rodata : - { - *(.rodata .rodata.* .gnu.linkonce.r.*) - - /* ROM image configuration; for C startup */ - . = ALIGN(4); - _lm_rom_img_cfgp = .; - LONG(LOADADDR(.data)); - } > REGION_RODATA - - /* - * .ARM.exidx exception unwinding; mandated by ARM's C++ ABI - */ - __exidx_start = .; - .ARM.exidx : - { - *(.ARM.exidx* .gnu.linkonce.armexidx.*) - } > REGION_RODATA - __exidx_end = .; - - /* * End of text */ .text.align : @@ -134,12 +111,14 @@ SECTIONS } > REGION_TEXT /* - * .USER_FLASH: We allow users to allocate into Flash here + * .ARM.exidx exception unwinding; mandated by ARM's C++ ABI */ - .USER_FLASH : + __exidx_start = .; + .ARM.exidx : { - *(.USER_FLASH) + *(.ARM.exidx* .gnu.linkonce.armexidx.*) } > REGION_RODATA + __exidx_end = .; /* * .data @@ -152,6 +131,22 @@ SECTIONS *(.got.plt) *(.got) *(.data .data.* .gnu.linkonce.d.*) + . = ALIGN(8); + _edata = .; + } > REGION_DATA AT> REGION_RODATA + + /* + * Read-only data + */ + .rodata : + { + *(.rodata .rodata.* .gnu.linkonce.r.*) + /* .USER_FLASH: We allow users to allocate into Flash here */ + *(.USER_FLASH) + /* ROM image configuration; for C startup */ + . = ALIGN(4); + _lm_rom_img_cfgp = .; + LONG(LOADADDR(.data)); /* * Heap: Linker scripts may choose a custom heap by overriding * _lm_heap_start and _lm_heap_end. Otherwise, the heap is in @@ -163,9 +158,7 @@ SECTIONS */ _lm_heap_start = DEFINED(_lm_heap_start) ? _lm_heap_start : _end; _lm_heap_end = DEFINED(_lm_heap_end) ? _lm_heap_end : __msp_init; - . = ALIGN (8); - _edata = .; - } > REGION_DATA AT> REGION_TEXT + } > REGION_RODATA /* * .bss @@ -179,7 +172,7 @@ SECTIONS . = ALIGN (8); _ebss = .; _end = _ebss; - } > REGION_BSS AT> REGION_TEXT + } > REGION_BSS /* * Debugging sections |