summaryrefslogtreecommitdiff
path: root/ports/esp32/main.c
diff options
context:
space:
mode:
authorrobert-hh <robert@hammelrath.com>2023-10-11 09:55:14 +0200
committerDamien George <damien@micropython.org>2023-10-12 11:53:29 +1100
commit480659b1ac758c377568c93c0ccda6a232f744ca (patch)
tree4dfe05b96f66505b9d3ecffe79f2acac2e0428db /ports/esp32/main.c
parentd2a9d70c0977f02b4d52fa5e6d31f17c2a7aa313 (diff)
ports: Make all ports skip execution of main.py if boot.py fails.
That can be caused e.g. by an exception. This feature is implemented in some way already for the stm32, renesas-ra, mimxrt and samd ports. This commit adds it for the rp2, esp8266, esp32 and nrf ports. No change for the cc3200 and teensy ports. Signed-off-by: robert-hh <robert@hammelrath.com>
Diffstat (limited to 'ports/esp32/main.c')
-rw-r--r--ports/esp32/main.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/ports/esp32/main.c b/ports/esp32/main.c
index b514f44e0..044b43655 100644
--- a/ports/esp32/main.c
+++ b/ports/esp32/main.c
@@ -124,8 +124,11 @@ soft_reset:
// run boot-up scripts
pyexec_frozen_module("_boot.py", false);
- pyexec_file_if_exists("boot.py");
- if (pyexec_mode_kind == PYEXEC_MODE_FRIENDLY_REPL) {
+ int ret = pyexec_file_if_exists("boot.py");
+ if (ret & PYEXEC_FORCED_EXIT) {
+ goto soft_reset_exit;
+ }
+ if (pyexec_mode_kind == PYEXEC_MODE_FRIENDLY_REPL && ret != 0) {
int ret = pyexec_file_if_exists("main.py");
if (ret & PYEXEC_FORCED_EXIT) {
goto soft_reset_exit;