X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fstmf0%2Fao_storage_stm.c;h=4ecdc7a526534644994a8fbb6a1ffbd8772bb4af;hb=936eceded2d08f4eb7318b28bd1be6cd3b06a7b3;hp=1a6198a79308cd66808629ec999521113ed3c2b6;hpb=475940cb8032c76622c64dd0bd30f31c0b0f6cf4;p=fw%2Faltos diff --git a/src/stmf0/ao_storage_stm.c b/src/stmf0/ao_storage_stm.c index 1a6198a7..4ecdc7a5 100644 --- a/src/stmf0/ao_storage_stm.c +++ b/src/stmf0/ao_storage_stm.c @@ -70,7 +70,7 @@ stm_flash_page_size(void) #define ao_flash_wait_bsy() do { while (stm_flash.sr & (1 << STM_FLASH_SR_BSY)); } while (0) -static void __attribute__ ((section(".ramtext"),noinline)) +static void __attribute__ ((section(".sdata2.flash"), noinline)) _ao_flash_erase_page(uint16_t *page) { stm_flash.cr |= (1 << STM_FLASH_CR_PER); @@ -86,7 +86,8 @@ _ao_flash_erase_page(uint16_t *page) #define _ao_flash_addr(pos) ((uint16_t *) (void *) ((uint8_t *) __flash__ + (pos))) -static void __attribute ((section(".ramtext"), noinline)) _ao_flash_byte(uint32_t pos, uint8_t b) +static void __attribute__ ((section(".sdata2.flash"), noinline)) +_ao_flash_byte(uint32_t pos, uint8_t b) { uint16_t v; uint16_t *a = _ao_flash_addr(pos & ~1); @@ -99,7 +100,7 @@ static void __attribute ((section(".ramtext"), noinline)) _ao_flash_byte(uint32_ ao_flash_wait_bsy(); } -static void __attribute__ ((section(".ramtext"), noinline)) +static void __attribute__ ((section(".sdata2.flash"), noinline)) _ao_flash_write(uint32_t pos, void *sv, uint16_t len) { uint8_t *s = sv; @@ -128,7 +129,7 @@ _ao_flash_write(uint32_t pos, void *sv, uint16_t len) } uint8_t -ao_storage_erase(uint32_t pos) +ao_storage_device_erase(uint32_t pos) { ao_arch_block_interrupts(); ao_flash_unlock(); @@ -157,7 +158,7 @@ ao_storage_device_write(uint32_t pos, void *v, uint16_t len) } uint8_t -ao_storage_device_read(uint32_t pos, __xdata void *d, uint16_t len) __reentrant +ao_storage_device_read(uint32_t pos, void *d, uint16_t len) { if (pos >= ao_storage_total || pos + len > ao_storage_total) return 0; @@ -166,7 +167,7 @@ ao_storage_device_read(uint32_t pos, __xdata void *d, uint16_t len) __reentrant } void -ao_storage_flush(void) __reentrant +ao_storage_flush(void) { } @@ -179,7 +180,7 @@ ao_storage_setup(void) } void -ao_storage_device_info(void) __reentrant +ao_storage_device_info(void) { printf ("Using internal flash, page %d bytes, total %d bytes\n", ao_storage_block, ao_storage_total);