X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fsamd21%2Fao_flash_samd21.c;h=b0d91c5cdee2e1f482880907cdbf5eea0475661f;hb=59f08a3079ccecaeb91b637e7d311f3f98d10c42;hp=c1cee3f876e75e95b493e24866cd41e48a8cfee9;hpb=f7e6cbeaf3e84935b38da8605a6d5bb702eff3a5;p=fw%2Faltos diff --git a/src/samd21/ao_flash_samd21.c b/src/samd21/ao_flash_samd21.c index c1cee3f8..b0d91c5c 100644 --- a/src/samd21/ao_flash_samd21.c +++ b/src/samd21/ao_flash_samd21.c @@ -101,6 +101,9 @@ ao_flash_erase_page(uint32_t *page) uint32_t row_size = samd21_nvmctrl_row_size(); uint32_t rows = (row_size + 255) / 256; + if ((uintptr_t) page & (row_size - 1)) + return; + ao_arch_block_interrupts(); if (((uintptr_t) row & (row_size - 1)) == 0) { @@ -121,6 +124,8 @@ ao_flash_page(uint32_t *page, uint32_t *src) uint32_t i; uint32_t per_page = page_size / sizeof(uint32_t); + ao_flash_erase_page(page); + ao_arch_block_interrupts(); while(pages--) {