return;
}
if (prog_ok) {
+ FLASH_Enable((void *)flash_addr, (void *)(flash_addr + length));
// Erase area to be programmed
- if ((stat = flash_erase((void *)flash_addr, length, &err_addr)) != 0) {
+ stat = flash_erase((void *)flash_addr, length, &err_addr);
+ FLASH_Disable((void *)flash_addr, (void *)(flash_addr + length));
+ if (stat != 0) {
diag_printf("Can't erase region at %p: %s\n", err_addr, flash_errmsg(stat));
prog_ok = false;
}