diff --git a/epicardium/modules/lifecycle.c b/epicardium/modules/lifecycle.c index 2e72880fb892fc38db427c36494b4044d40d1401..bce448e69442c6f9b6db81cd71814527caf02246 100644 --- a/epicardium/modules/lifecycle.c +++ b/epicardium/modules/lifecycle.c @@ -355,9 +355,17 @@ void vLifecycleTask(void *pvParameters) mutex_unlock(&core1_mutex); - /* If `main.py` exists, start it. Otherwise, start `menu.py`. */ - if (epic_exec("main.py") < 0) { - return_to_menu(); + /* + * If `main.py` exists, start it. Otherwise, start `menu.py`. + * + * We are not using epic_exec() & return_to_menu() here because those + * trigger a reset which is undesirable during startup. + */ + mutex_lock(&core1_mutex); + int ret = load_sync("main.py", false); + mutex_unlock(&core1_mutex); + if (ret < 0) { + load_menu(false); } hardware_init();