@@ -645,10 +645,6 @@ STATIC void __attribute__ ((noinline)) run_boot_py(safe_mode_t safe_mode) {
645
645
&& safe_mode == NO_SAFE_MODE
646
646
&& MP_STATE_VM (vfs_mount_table ) != NULL ;
647
647
648
- if (!ok_to_run ) {
649
- return ;
650
- }
651
-
652
648
static const char * const boot_py_filenames [] = STRING_LIST ("boot.py" , "boot.txt" );
653
649
654
650
// Do USB setup even if boot.py is not run.
@@ -661,54 +657,56 @@ STATIC void __attribute__ ((noinline)) run_boot_py(safe_mode_t safe_mode) {
661
657
usb_set_defaults ();
662
658
#endif
663
659
664
- #ifdef CIRCUITPY_BOOT_OUTPUT_FILE
665
- vstr_t boot_text ;
666
- vstr_init (& boot_text , 512 );
667
- boot_output = & boot_text ;
668
- #endif
660
+ pyexec_result_t result = {0 , MP_OBJ_NULL , 0 };
669
661
670
- // Write version info
671
- mp_printf (& mp_plat_print , "%s\nBoard ID:%s\n" , MICROPY_FULL_VERSION_INFO , CIRCUITPY_BOARD_ID );
662
+ if (ok_to_run ) {
663
+ #ifdef CIRCUITPY_BOOT_OUTPUT_FILE
664
+ vstr_t boot_text ;
665
+ vstr_init (& boot_text , 512 );
666
+ boot_output = & boot_text ;
667
+ #endif
672
668
673
- pyexec_result_t result = {0 , MP_OBJ_NULL , 0 };
669
+ // Write version info
670
+ mp_printf (& mp_plat_print , "%s\nBoard ID:%s\n" , MICROPY_FULL_VERSION_INFO , CIRCUITPY_BOARD_ID );
674
671
675
- bool found_boot = maybe_run_list (boot_py_filenames , & result );
676
- (void ) found_boot ;
672
+ bool found_boot = maybe_run_list (boot_py_filenames , & result );
673
+ (void ) found_boot ;
677
674
678
675
679
- #ifdef CIRCUITPY_BOOT_OUTPUT_FILE
680
- // Get the base filesystem.
681
- fs_user_mount_t * vfs = (fs_user_mount_t * ) MP_STATE_VM (vfs_mount_table )-> obj ;
682
- FATFS * fs = & vfs -> fatfs ;
676
+ #ifdef CIRCUITPY_BOOT_OUTPUT_FILE
677
+ // Get the base filesystem.
678
+ fs_user_mount_t * vfs = (fs_user_mount_t * ) MP_STATE_VM (vfs_mount_table )-> obj ;
679
+ FATFS * fs = & vfs -> fatfs ;
683
680
684
- boot_output = NULL ;
685
- bool write_boot_output = (common_hal_mcu_processor_get_reset_reason () == RESET_REASON_POWER_ON );
686
- FIL boot_output_file ;
687
- if (f_open (fs , & boot_output_file , CIRCUITPY_BOOT_OUTPUT_FILE , FA_READ ) == FR_OK ) {
688
- char * file_contents = m_new (char , boot_text .alloc );
689
- UINT chars_read ;
690
- if (f_read (& boot_output_file , file_contents , 1 + boot_text .len , & chars_read ) == FR_OK ) {
691
- write_boot_output =
692
- (chars_read != boot_text .len ) || (memcmp (boot_text .buf , file_contents , chars_read ) != 0 );
681
+ boot_output = NULL ;
682
+ bool write_boot_output = (common_hal_mcu_processor_get_reset_reason () == RESET_REASON_POWER_ON );
683
+ FIL boot_output_file ;
684
+ if (f_open (fs , & boot_output_file , CIRCUITPY_BOOT_OUTPUT_FILE , FA_READ ) == FR_OK ) {
685
+ char * file_contents = m_new (char , boot_text .alloc );
686
+ UINT chars_read ;
687
+ if (f_read (& boot_output_file , file_contents , 1 + boot_text .len , & chars_read ) == FR_OK ) {
688
+ write_boot_output =
689
+ (chars_read != boot_text .len ) || (memcmp (boot_text .buf , file_contents , chars_read ) != 0 );
690
+ }
691
+ // no need to f_close the file
693
692
}
694
- // no need to f_close the file
695
- }
696
693
697
- if (write_boot_output ) {
698
- // Wait 1 second before opening CIRCUITPY_BOOT_OUTPUT_FILE for write,
699
- // in case power is momentary or will fail shortly due to, say a low, battery.
700
- mp_hal_delay_ms (1000 );
701
-
702
- // USB isn't up, so we can write the file.
703
- // operating at the oofatfs (f_open) layer means the usb concurrent write permission
704
- // is not even checked!
705
- f_open (fs , & boot_output_file , CIRCUITPY_BOOT_OUTPUT_FILE , FA_WRITE | FA_CREATE_ALWAYS );
706
- UINT chars_written ;
707
- f_write (& boot_output_file , boot_text .buf , boot_text .len , & chars_written );
708
- f_close (& boot_output_file );
709
- filesystem_flush ();
694
+ if (write_boot_output ) {
695
+ // Wait 1 second before opening CIRCUITPY_BOOT_OUTPUT_FILE for write,
696
+ // in case power is momentary or will fail shortly due to, say a low, battery.
697
+ mp_hal_delay_ms (1000 );
698
+
699
+ // USB isn't up, so we can write the file.
700
+ // operating at the oofatfs (f_open) layer means the usb concurrent write permission
701
+ // is not even checked!
702
+ f_open (fs , & boot_output_file , CIRCUITPY_BOOT_OUTPUT_FILE , FA_WRITE | FA_CREATE_ALWAYS );
703
+ UINT chars_written ;
704
+ f_write (& boot_output_file , boot_text .buf , boot_text .len , & chars_written );
705
+ f_close (& boot_output_file );
706
+ filesystem_flush ();
707
+ }
708
+ #endif
710
709
}
711
- #endif
712
710
713
711
#if CIRCUITPY_USB
714
712
// Some data needs to be carried over from the USB settings in boot.py
0 commit comments