From 3596075ee0f189f8a95090c4fb5522844255a029 Mon Sep 17 00:00:00 2001 From: Piotr Esden-Tempski Date: Wed, 25 Apr 2012 17:34:07 +0200 Subject: Fixed the linker scripts to be the way Tomaz Solc proposed. Something went wrong when cherrypicking his commits in the pull request. Sorry about that. :( --- lib/stm32/f1/libopencm3_stm32f1.ld | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'lib/stm32/f1/libopencm3_stm32f1.ld') diff --git a/lib/stm32/f1/libopencm3_stm32f1.ld b/lib/stm32/f1/libopencm3_stm32f1.ld index a794314..a64a1f7 100644 --- a/lib/stm32/f1/libopencm3_stm32f1.ld +++ b/lib/stm32/f1/libopencm3_stm32f1.ld @@ -38,6 +38,7 @@ SECTIONS . = ALIGN(4); *(.rodata*) /* Read-only data */ . = ALIGN(4); + _etext = .; } >rom /* @@ -55,19 +56,25 @@ SECTIONS . = ORIGIN(ram); - .data : { + .data : AT (__exidx_end) { _data = .; *(.data*) /* Read-write initialized data */ . = ALIGN(4); _edata = .; - } >ram AT >rom + } >ram .bss : { *(.bss*) /* Read-write zero initialized data */ *(COMMON) . = ALIGN(4); _ebss = .; - } >ram + } >ram AT >rom + + /* + * The .eh_frame section appears to be used for C++ exception handling. + * You may need to fix this if you're using C++. + */ + /DISCARD/ : { *(.eh_frame) } . = ALIGN(4); end = .; -- cgit v1.2.3