main.c: Fix safe mode

Back in #5536 I modified how boot_out.txt got written. However, I broke
USB enumeration in the safe-mode case.  This fixes it so that a
safe-mode board still connects on USB with all defaults. (tested on a
macropad)
This commit is contained in:
Jeff Epler 2021-11-08 08:18:31 -06:00
parent c27b3a0e4f
commit c607efe557

10
main.c
View File

@ -645,10 +645,6 @@ STATIC void __attribute__ ((noinline)) run_boot_py(safe_mode_t safe_mode) {
&& safe_mode == NO_SAFE_MODE && safe_mode == NO_SAFE_MODE
&& MP_STATE_VM(vfs_mount_table) != NULL; && MP_STATE_VM(vfs_mount_table) != NULL;
if (!ok_to_run) {
return;
}
static const char * const boot_py_filenames[] = STRING_LIST("boot.py", "boot.txt"); static const char * const boot_py_filenames[] = STRING_LIST("boot.py", "boot.txt");
// Do USB setup even if boot.py is not run. // Do USB setup even if boot.py is not run.
@ -661,6 +657,9 @@ STATIC void __attribute__ ((noinline)) run_boot_py(safe_mode_t safe_mode) {
usb_set_defaults(); usb_set_defaults();
#endif #endif
pyexec_result_t result = {0, MP_OBJ_NULL, 0};
if (ok_to_run) {
#ifdef CIRCUITPY_BOOT_OUTPUT_FILE #ifdef CIRCUITPY_BOOT_OUTPUT_FILE
vstr_t boot_text; vstr_t boot_text;
vstr_init(&boot_text, 512); vstr_init(&boot_text, 512);
@ -670,8 +669,6 @@ STATIC void __attribute__ ((noinline)) run_boot_py(safe_mode_t safe_mode) {
// Write version info // Write version info
mp_printf(&mp_plat_print, "%s\nBoard ID:%s\n", MICROPY_FULL_VERSION_INFO, CIRCUITPY_BOARD_ID); mp_printf(&mp_plat_print, "%s\nBoard ID:%s\n", MICROPY_FULL_VERSION_INFO, CIRCUITPY_BOARD_ID);
pyexec_result_t result = {0, MP_OBJ_NULL, 0};
bool found_boot = maybe_run_list(boot_py_filenames, &result); bool found_boot = maybe_run_list(boot_py_filenames, &result);
(void) found_boot; (void) found_boot;
@ -709,6 +706,7 @@ STATIC void __attribute__ ((noinline)) run_boot_py(safe_mode_t safe_mode) {
filesystem_flush(); filesystem_flush();
} }
#endif #endif
}
#if CIRCUITPY_USB #if CIRCUITPY_USB
// Some data needs to be carried over from the USB settings in boot.py // Some data needs to be carried over from the USB settings in boot.py