summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2013-12-08 19:05:01 -0800
committerKeith Packard <keithp@keithp.com>2013-12-08 19:37:53 -0800
commit2cb7a96567e1302a699f78290fab5e29693940ab (patch)
treefca08acb04507e5b89c96b8ccbb034acf7dc85f5
parent3e22a0dce4248cce862147c985078de44c427b12 (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>
-rw-r--r--src/stm/altos-loader.ld6
-rw-r--r--src/stm/ao_flash_stm.c4
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;