diff --git a/flight/libraries/op_dfu.c b/flight/libraries/op_dfu.c index d10b351e6..3cfb03a5b 100644 --- a/flight/libraries/op_dfu.c +++ b/flight/libraries/op_dfu.c @@ -157,7 +157,8 @@ void processComand(uint8_t *xReceive_Buffer) switch (Command) { case EnterDFU: if (((DeviceState == BLidle) && (Data0 < numberOfDevices)) - || (DeviceState == DFUidle)) { + || (DeviceState == DFUidle) + || (DeviceState == failed_jump)) { if (Data0 > 0) { OPDfuIni(true); } diff --git a/flight/targets/boards/spracingf3evo/bootloader/main.c b/flight/targets/boards/spracingf3evo/bootloader/main.c index c21f408eb..daf5bb210 100644 --- a/flight/targets/boards/spracingf3evo/bootloader/main.c +++ b/flight/targets/boards/spracingf3evo/bootloader/main.c @@ -199,6 +199,7 @@ void jump_to_app() Jump_To_Application(); } else { DeviceState = failed_jump; + JumpToApp = FALSE; return; } }