diff --git a/stm-firmware/updater/ram-code/main.c b/stm-firmware/updater/ram-code/main.c index 3013e41..551d5e6 100644 --- a/stm-firmware/updater/ram-code/main.c +++ b/stm-firmware/updater/ram-code/main.c @@ -108,7 +108,7 @@ int write_flash_from_buffer(const char *buffer, uint32_t len, uint32_t addr) } /* Verify the write */ - for (i = 0; i < len; i++) { + for (i = 0; i < len; i++, verify_ptr++) { if (*verify_ptr != buffer[i]) { uart_send_string("Error verifying written data!\r\n"); return -2; @@ -238,6 +238,11 @@ int ram_code_main(void) uart_send_string(" checked successfully.\r\n"); uart_send_string("Starting updater...\r\n"); + /* disable the ART caches */ + FLASH->ACR &= ~FLASH_ACR_DCEN; + FLASH->ACR &= ~FLASH_ACR_ICEN; + FLASH->ACR |= FLASH_ACR_DCRST | FLASH_ACR_ICRST; + do { uart_send_string("Erasing chip..."); flash_writer_perform_mass_erase();