diff options
author | Keith Packard <keithp@keithp.com> | 2013-12-08 19:05:01 -0800 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2013-12-08 19:37:53 -0800 |
commit | 2cb7a96567e1302a699f78290fab5e29693940ab (patch) | |
tree | fca08acb04507e5b89c96b8ccbb034acf7dc85f5 /src | |
parent | 3e22a0dce4248cce862147c985078de44c427b12 (diff) |
altos/stm: arm-none-eabi-binutils now puts 'main' into .text.startup
Change name of .text.ram to .ramtext, then load .text* into flash and
.ramtext into ram. This ensures that 'main' and anything else in a
random .text.* segment will get loaded into flash as appropriate.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/stm/altos-loader.ld | 6 | ||||
-rw-r--r-- | src/stm/ao_flash_stm.c | 4 |
2 files changed, 5 insertions, 5 deletions
diff --git a/src/stm/altos-loader.ld b/src/stm/altos-loader.ld index 2be964f2..0753f5f7 100644 --- a/src/stm/altos-loader.ld +++ b/src/stm/altos-loader.ld @@ -37,11 +37,11 @@ SECTIONS { ao_romconfig.o(.romconfig*) ao_product.o(.romconfig*) - *(.text) /* Executable code */ + *(.text*) /* Executable code */ *(.ARM.exidx* .gnu.linkonce.armexidx.*) *(.rodata*) /* Constants */ - __text_end__ = .; } > rom + __text_end__ = .; /* Boot data which must live at the start of ram so that * the application and bootloader share the same addresses. @@ -66,7 +66,7 @@ SECTIONS { .textram BLOCK(8): { __data_start__ = .; __text_ram_start__ = .; - *(.text.ram) + *(.ramtext) __text_ram_end = .; } >ram AT>rom diff --git a/src/stm/ao_flash_stm.c b/src/stm/ao_flash_stm.c index d7a85582..38b1c2d8 100644 --- a/src/stm/ao_flash_stm.c +++ b/src/stm/ao_flash_stm.c @@ -69,7 +69,7 @@ ao_flash_wait_bsy(void) ; } -static void __attribute__ ((section(".text.ram"),noinline)) +static void __attribute__ ((section(".ramtext"),noinline)) _ao_flash_erase_page(uint32_t *page) { stm_flash.pecr |= (1 << STM_FLASH_PECR_ERASE) | (1 << STM_FLASH_PECR_PROG); @@ -91,7 +91,7 @@ ao_flash_erase_page(uint32_t *page) ao_flash_lock(); } -static void __attribute__ ((section(".text.ram"), noinline)) +static void __attribute__ ((section(".ramtext"), noinline)) _ao_flash_half_page(uint32_t *dst, uint32_t *src) { uint8_t i; |