gdb: Reset flash_mode with when erase or flash fails.

Thanks to Dave Marples <dave@marples.net>, extracted from  #607
This commit is contained in:
Uwe Bonnes 2020-03-10 15:06:13 +01:00 committed by UweBonnes
parent 58281ec232
commit 8289862b55
1 changed files with 8 additions and 4 deletions

View File

@ -490,19 +490,23 @@ handle_v_packet(char *packet, int plen)
target_reset(cur_target);
flash_mode = 1;
}
if(target_flash_erase(cur_target, addr, len) == 0)
if(target_flash_erase(cur_target, addr, len) == 0) {
gdb_putpacketz("OK");
else
} else {
flash_mode = 0;
gdb_putpacketz("EFF");
}
} else if (sscanf(packet, "vFlashWrite:%08lx:%n", &addr, &bin) == 1) {
/* Write Flash Memory */
len = plen - bin;
DEBUG_GDB("Flash Write %08lX %08lX\n", addr, len);
if(cur_target && target_flash_write(cur_target, addr, (void*)packet + bin, len) == 0)
if(cur_target && target_flash_write(cur_target, addr, (void*)packet + bin, len) == 0) {
gdb_putpacketz("OK");
else
} else {
flash_mode = 0;
gdb_putpacketz("EFF");
}
} else if (!strcmp(packet, "vFlashDone")) {
/* Commit flash operations. */