Fix print of "soft reboot" when the user presses ^D
The logic of the main loop was changed between version 7 and 8.
[Commit](9307b62ad5
)
Something is wrong with the existing version 8 logic so the serial
write of "soft reboot" is never executed when the user does a
soft reboot.
A consequence of this is that tools like `tools/pyboard.py`, `ampy`
and `mpremote` are not able to activate the raw REPL since they
execute a soft reboot and wait for this to be printed to the console.
This commit is contained in:
parent
f9831b3bbc
commit
5bca86b43d
4
main.c
4
main.c
|
@ -1078,15 +1078,17 @@ int __attribute__((used)) main(void) {
|
||||||
int exit_code = PYEXEC_FORCED_EXIT;
|
int exit_code = PYEXEC_FORCED_EXIT;
|
||||||
bool skip_repl = true;
|
bool skip_repl = true;
|
||||||
bool simulate_reset = true;
|
bool simulate_reset = true;
|
||||||
|
bool first_run = true;
|
||||||
for (;;) {
|
for (;;) {
|
||||||
if (!skip_repl) {
|
if (!skip_repl) {
|
||||||
exit_code = run_repl(get_safe_mode());
|
exit_code = run_repl(get_safe_mode());
|
||||||
supervisor_set_run_reason(RUN_REASON_REPL_RELOAD);
|
supervisor_set_run_reason(RUN_REASON_REPL_RELOAD);
|
||||||
}
|
}
|
||||||
if (exit_code == PYEXEC_FORCED_EXIT) {
|
if (exit_code == PYEXEC_FORCED_EXIT) {
|
||||||
if (!simulate_reset) {
|
if (!first_run) {
|
||||||
serial_write_compressed(translate("soft reboot\n"));
|
serial_write_compressed(translate("soft reboot\n"));
|
||||||
}
|
}
|
||||||
|
first_run = false;
|
||||||
if (pyexec_mode_kind == PYEXEC_MODE_FRIENDLY_REPL) {
|
if (pyexec_mode_kind == PYEXEC_MODE_FRIENDLY_REPL) {
|
||||||
// If code.py did a fake deep sleep, pretend that we
|
// If code.py did a fake deep sleep, pretend that we
|
||||||
// are running code.py for the first time after a hard
|
// are running code.py for the first time after a hard
|
||||||
|
|
Loading…
Reference in New Issue