From 70cbb4eddb5fb748e4610eb45b8bdb86748aebb5 Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Fri, 23 Jul 2021 15:17:09 -0700 Subject: [PATCH 01/11] Support multiple status neopixels Use the 10 neopixels on the playgrounds for status. Fixes #5039 --- .../circuitplayground_express/mpconfigboard.h | 3 +++ .../mpconfigboard.h | 3 +++ .../mpconfigboard.h | 3 +++ .../circuitplayground_bluefruit/board.c | 26 +++++++++++++------ .../mpconfigboard.h | 3 +++ supervisor/shared/status_leds.c | 12 +++++---- 6 files changed, 37 insertions(+), 13 deletions(-) diff --git a/ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h b/ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h index 105205f191..9020c243b1 100644 --- a/ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h +++ b/ports/atmel-samd/boards/circuitplayground_express/mpconfigboard.h @@ -3,6 +3,9 @@ #define MICROPY_HW_LED_STATUS (&pin_PA17) +#define MICROPY_HW_NEOPIXEL (&pin_PB23) +#define MICROPY_HW_NEOPIXEL_COUNT (10) + // Don't allow touch on A0 (PA02), because it's connected to the speaker. #define PA02_NO_TOUCH (true) diff --git a/ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h b/ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h index 852e9651b1..5073c5e403 100644 --- a/ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h +++ b/ports/atmel-samd/boards/circuitplayground_express_crickit/mpconfigboard.h @@ -3,6 +3,9 @@ #define MICROPY_HW_LED_STATUS (&pin_PA17) +#define MICROPY_HW_NEOPIXEL (&pin_PB23) +#define MICROPY_HW_NEOPIXEL_COUNT (10) + // Don't allow touch on A0 (PA02), because it's connected to the speaker. #define PA02_NO_TOUCH (true) diff --git a/ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h b/ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h index a0bb560752..20cfc617a2 100644 --- a/ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h +++ b/ports/atmel-samd/boards/circuitplayground_express_displayio/mpconfigboard.h @@ -3,6 +3,9 @@ #define MICROPY_HW_LED_STATUS (&pin_PA17) +#define MICROPY_HW_NEOPIXEL (&pin_PB23) +#define MICROPY_HW_NEOPIXEL_COUNT (10) + // Don't allow touch on A0 (PA02), because it's connected to the speaker. #define PA02_NO_TOUCH (true) diff --git a/ports/nrf/boards/circuitplayground_bluefruit/board.c b/ports/nrf/boards/circuitplayground_bluefruit/board.c index a0013e7215..938d92aff1 100644 --- a/ports/nrf/boards/circuitplayground_bluefruit/board.c +++ b/ports/nrf/boards/circuitplayground_bluefruit/board.c @@ -33,14 +33,7 @@ #include "nrf_gpio.h" void board_init(void) { -} - -bool board_requests_safe_mode(void) { - return false; -} - -void reset_board(void) { - // Turn off board.POWER_SWITCH (power-saving switch) on each soft reload, to prevent confusion. + // Turn on power to sensors and neopixels. nrf_gpio_cfg(POWER_SWITCH_PIN->number, NRF_GPIO_PIN_DIR_OUTPUT, NRF_GPIO_PIN_INPUT_DISCONNECT, @@ -48,6 +41,23 @@ void reset_board(void) { NRF_GPIO_PIN_S0S1, NRF_GPIO_PIN_NOSENSE); nrf_gpio_pin_write(POWER_SWITCH_PIN->number, false); +} +void board_deinit(void) { + // Turn off power to sensors and neopixels. + nrf_gpio_cfg(POWER_SWITCH_PIN->number, + NRF_GPIO_PIN_DIR_OUTPUT, + NRF_GPIO_PIN_INPUT_DISCONNECT, + NRF_GPIO_PIN_NOPULL, + NRF_GPIO_PIN_S0S1, + NRF_GPIO_PIN_NOSENSE); + nrf_gpio_pin_write(POWER_SWITCH_PIN->number, true); +} + +bool board_requests_safe_mode(void) { + return false; +} + +void reset_board(void) { board_reset_user_neopixels(&pin_P0_13, 10); } diff --git a/ports/nrf/boards/circuitplayground_bluefruit/mpconfigboard.h b/ports/nrf/boards/circuitplayground_bluefruit/mpconfigboard.h index da32230a6f..69bff08761 100644 --- a/ports/nrf/boards/circuitplayground_bluefruit/mpconfigboard.h +++ b/ports/nrf/boards/circuitplayground_bluefruit/mpconfigboard.h @@ -32,6 +32,9 @@ #define MICROPY_HW_LED_STATUS (&pin_P1_14) +#define MICROPY_HW_NEOPIXEL (&pin_P0_13) +#define MICROPY_HW_NEOPIXEL_COUNT (10) + // Board does not have a 32kHz crystal. It does have a 32MHz crystal. #define BOARD_HAS_32KHZ_XTAL (0) diff --git a/supervisor/shared/status_leds.c b/supervisor/shared/status_leds.c index d57aba1973..d7ba5f1fea 100644 --- a/supervisor/shared/status_leds.c +++ b/supervisor/shared/status_leds.c @@ -41,7 +41,7 @@ static digitalio_digitalinout_obj_t _status_power; uint8_t rgb_status_brightness = 63; #include "shared-bindings/digitalio/DigitalInOut.h" #include "shared-bindings/neopixel_write/__init__.h" -static uint8_t status_neopixel_color[3]; +static uint8_t status_neopixel_color[3 * MICROPY_HW_NEOPIXEL_COUNT]; static digitalio_digitalinout_obj_t status_neopixel; #elif defined(MICROPY_HW_APA102_MOSI) && defined(MICROPY_HW_APA102_SCK) @@ -240,10 +240,12 @@ void new_status_color(uint32_t rgb) { #endif #ifdef MICROPY_HW_NEOPIXEL - status_neopixel_color[0] = (rgb_adjusted >> 8) & 0xff; - status_neopixel_color[1] = (rgb_adjusted >> 16) & 0xff; - status_neopixel_color[2] = rgb_adjusted & 0xff; - common_hal_neopixel_write(&status_neopixel, status_neopixel_color, 3); + for (size_t i = 0; i < MICROPY_HW_NEOPIXEL_COUNT; i++) { + status_neopixel_color[3 * i + 0] = (rgb_adjusted >> 8) & 0xff; + status_neopixel_color[3 * i + 1] = (rgb_adjusted >> 16) & 0xff; + status_neopixel_color[3 * i + 2] = rgb_adjusted & 0xff; + } + common_hal_neopixel_write(&status_neopixel, status_neopixel_color, 3 * MICROPY_HW_NEOPIXEL_COUNT); #elif defined(MICROPY_HW_APA102_MOSI) && defined(MICROPY_HW_APA102_SCK) status_apa102_color[5] = rgb_adjusted & 0xff; From e7fe0d9a71c45faecca171a3c7648a2672fd2f55 Mon Sep 17 00:00:00 2001 From: Scott Shawcroft Date: Fri, 23 Jul 2021 15:42:06 -0700 Subject: [PATCH 02/11] Fix single neopixel status boards --- supervisor/shared/status_leds.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/supervisor/shared/status_leds.c b/supervisor/shared/status_leds.c index d7ba5f1fea..6c89026223 100644 --- a/supervisor/shared/status_leds.c +++ b/supervisor/shared/status_leds.c @@ -39,8 +39,13 @@ static digitalio_digitalinout_obj_t _status_power; #ifdef MICROPY_HW_NEOPIXEL uint8_t rgb_status_brightness = 63; - #include "shared-bindings/digitalio/DigitalInOut.h" - #include "shared-bindings/neopixel_write/__init__.h" +#include "shared-bindings/digitalio/DigitalInOut.h" +#include "shared-bindings/neopixel_write/__init__.h" + +#ifndef MICROPY_HW_NEOPIXEL_COUNT +#define MICROPY_HW_NEOPIXEL_COUNT (1) +#endif + static uint8_t status_neopixel_color[3 * MICROPY_HW_NEOPIXEL_COUNT]; static digitalio_digitalinout_obj_t status_neopixel; From 0808ce3224ce36b4485f7c1f5ab5ea05ed3249d4 Mon Sep 17 00:00:00 2001 From: Wellington Terumi Uemura Date: Fri, 23 Jul 2021 13:31:58 +0000 Subject: [PATCH 03/11] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (1012 of 1012 strings) Translation: CircuitPython/main Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/pt_BR/ --- locale/pt_BR.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/locale/pt_BR.po b/locale/pt_BR.po index 3d6fc34ed4..dd2ccb5833 100644 --- a/locale/pt_BR.po +++ b/locale/pt_BR.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-04 12:55-0600\n" -"PO-Revision-Date: 2021-07-23 12:45+0000\n" +"PO-Revision-Date: 2021-07-24 15:35+0000\n" "Last-Translator: Wellington Terumi Uemura \n" "Language-Team: \n" "Language: pt_BR\n" @@ -1222,7 +1222,7 @@ msgstr "Erro de entrada/saída" #: ports/raspberrypi/common-hal/rp2pio/StateMachine.c #, c-format msgid "Missing jmp_pin. Instruction %d jumps on pin" -msgstr "" +msgstr "Falta o jmp_pin. A instrução %d salta no pino" #: ports/raspberrypi/common-hal/rp2pio/StateMachine.c #, c-format From df9be614eaed96c39b7d7f0c1f23db71b37810c7 Mon Sep 17 00:00:00 2001 From: Jonny Bergdahl Date: Fri, 23 Jul 2021 15:24:05 +0000 Subject: [PATCH 04/11] Translated using Weblate (Swedish) Currently translated at 100.0% (1012 of 1012 strings) Translation: CircuitPython/main Translate-URL: https://hosted.weblate.org/projects/circuitpython/main/sv/ --- locale/sv.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/locale/sv.po b/locale/sv.po index e60a3152c5..a8603151d6 100644 --- a/locale/sv.po +++ b/locale/sv.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-04 12:55-0600\n" -"PO-Revision-Date: 2021-07-22 18:33+0000\n" +"PO-Revision-Date: 2021-07-24 15:35+0000\n" "Last-Translator: Jonny Bergdahl \n" "Language-Team: LANGUAGE \n" "Language: sv\n" @@ -1207,7 +1207,7 @@ msgstr "Indata-/utdatafel" #: ports/raspberrypi/common-hal/rp2pio/StateMachine.c #, c-format msgid "Missing jmp_pin. Instruction %d jumps on pin" -msgstr "" +msgstr "Saknar jmp_pin. Instruktion %d hoppar på pin" #: ports/raspberrypi/common-hal/rp2pio/StateMachine.c #, c-format @@ -2846,7 +2846,7 @@ msgstr "" #: extmod/ulab/code/ndarray.c msgid "cannot assign new shape" -msgstr "" +msgstr "kan inte tilldela en ny form" #: extmod/ulab/code/ndarray_operators.c msgid "cannot cast output with casting rule" @@ -3600,7 +3600,7 @@ msgstr "memoryview: längden är inte en multipel av itemsize" #: extmod/ulab/code/numpy/linalg/linalg.c msgid "mode must be complete, or reduced" -msgstr "" +msgstr "mode måste vara complete, eller reduced" #: py/builtinimport.c msgid "module not found" @@ -3846,11 +3846,11 @@ msgstr "operander kan inte sändas tillsammans" #: extmod/ulab/code/numpy/linalg/linalg.c msgid "operation is defined for 2D arrays only" -msgstr "" +msgstr "operation definierad endast för 2D-matriser" #: extmod/ulab/code/numpy/linalg/linalg.c msgid "operation is defined for ndarrays only" -msgstr "" +msgstr "operation definierad endast för ndarrays" #: extmod/ulab/code/ndarray.c msgid "operation is implemented for 1D Boolean arrays only" From dcd5b5ab50b46360efd6489b6e8906b36b68d645 Mon Sep 17 00:00:00 2001 From: Tod Kurt Date: Sat, 24 Jul 2021 13:12:44 -0700 Subject: [PATCH 05/11] added Arduino Nano RP2040 Connect alternate flash chip --- .../boards/arduino_nano_rp2040_connect/mpconfigboard.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/raspberrypi/boards/arduino_nano_rp2040_connect/mpconfigboard.mk b/ports/raspberrypi/boards/arduino_nano_rp2040_connect/mpconfigboard.mk index 4eb0ac75b3..4fd752cf36 100644 --- a/ports/raspberrypi/boards/arduino_nano_rp2040_connect/mpconfigboard.mk +++ b/ports/raspberrypi/boards/arduino_nano_rp2040_connect/mpconfigboard.mk @@ -7,6 +7,6 @@ USB_MANUFACTURER = "Arduino" CHIP_VARIANT = RP2040 CHIP_FAMILY = rp2 -EXTERNAL_FLASH_DEVICES = "AT25SF128A" +EXTERNAL_FLASH_DEVICES = "AT25SF128A, IS25LP128F" CIRCUITPY__EVE = 1 From 0d401e7bc8271887d360174f91d86e9e4a253c83 Mon Sep 17 00:00:00 2001 From: Tod Kurt Date: Sat, 24 Jul 2021 13:22:02 -0700 Subject: [PATCH 06/11] fix whitespace on new flash chip for Arduino Nano RP2040 --- .../boards/arduino_nano_rp2040_connect/mpconfigboard.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/raspberrypi/boards/arduino_nano_rp2040_connect/mpconfigboard.mk b/ports/raspberrypi/boards/arduino_nano_rp2040_connect/mpconfigboard.mk index 4fd752cf36..4cef8395c5 100644 --- a/ports/raspberrypi/boards/arduino_nano_rp2040_connect/mpconfigboard.mk +++ b/ports/raspberrypi/boards/arduino_nano_rp2040_connect/mpconfigboard.mk @@ -7,6 +7,6 @@ USB_MANUFACTURER = "Arduino" CHIP_VARIANT = RP2040 CHIP_FAMILY = rp2 -EXTERNAL_FLASH_DEVICES = "AT25SF128A, IS25LP128F" +EXTERNAL_FLASH_DEVICES = "AT25SF128A, IS25LP128F" CIRCUITPY__EVE = 1 From 49dc5805eee1b107eb7aabed1cdfe9ca36fe595e Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Sat, 24 Jul 2021 17:39:38 -0700 Subject: [PATCH 07/11] Fix CAN pin assignment on Feather STM32F405 Express board. --- ports/stm/boards/feather_stm32f405_express/pins.c | 4 ++-- ports/stm/peripherals/stm32f4/stm32f405xx/periph.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ports/stm/boards/feather_stm32f405_express/pins.c b/ports/stm/boards/feather_stm32f405_express/pins.c index 1d91bc2f03..74ed49dd3d 100644 --- a/ports/stm/boards/feather_stm32f405_express/pins.c +++ b/ports/stm/boards/feather_stm32f405_express/pins.c @@ -50,7 +50,7 @@ STATIC const mp_rom_map_elem_t board_module_globals_table[] = { { MP_ROM_QSTR(MP_QSTR_SDIO_COMMAND), MP_ROM_PTR(&pin_PD02) }, { MP_ROM_QSTR(MP_QSTR_SDIO_DATA), MP_ROM_PTR(&sdio_data_tuple) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_CAN_RX), MP_ROM_PTR(&pin_PB09) }, - { MP_OBJ_NEW_QSTR(MP_QSTR_CAN_TX), MP_ROM_PTR(&pin_PB08) }, + { MP_ROM_QSTR(MP_QSTR_CAN_RX), MP_ROM_PTR(&pin_PB08) }, + { MP_ROM_QSTR(MP_QSTR_CAN_TX), MP_ROM_PTR(&pin_PB09) }, }; MP_DEFINE_CONST_DICT(board_module_globals, board_module_globals_table); diff --git a/ports/stm/peripherals/stm32f4/stm32f405xx/periph.c b/ports/stm/peripherals/stm32f4/stm32f405xx/periph.c index 451e4220c4..cc1aaa6875 100644 --- a/ports/stm/peripherals/stm32f4/stm32f405xx/periph.c +++ b/ports/stm/peripherals/stm32f4/stm32f405xx/periph.c @@ -220,7 +220,7 @@ const mcu_periph_obj_t mcu_sdio_data3_list[1] = { // CAN CAN_TypeDef *mcu_can_banks[2] = {CAN1, CAN2}; -const mcu_periph_obj_t mcu_can_tx_list[6] = { +const mcu_periph_obj_t mcu_can_rx_list[6] = { PERIPH(1, 9, &pin_PA11), PERIPH(1, 9, &pin_PB08), PERIPH(1, 9, &pin_PD00), @@ -230,7 +230,7 @@ const mcu_periph_obj_t mcu_can_tx_list[6] = { PERIPH(2, 9, &pin_PB05), }; -const mcu_periph_obj_t mcu_can_rx_list[6] = { +const mcu_periph_obj_t mcu_can_tx_list[6] = { PERIPH(1, 9, &pin_PA12), PERIPH(1, 9, &pin_PB09), PERIPH(1, 9, &pin_PD01), From f3a286a7eae3f780dad107351e7fe3ce1174f8b7 Mon Sep 17 00:00:00 2001 From: lady ada Date: Sun, 25 Jul 2021 14:45:35 -0400 Subject: [PATCH 08/11] can we add busdevice and have room? --- .../boards/adafruit_proxlight_trinkey_m0/mpconfigboard.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/ports/atmel-samd/boards/adafruit_proxlight_trinkey_m0/mpconfigboard.mk b/ports/atmel-samd/boards/adafruit_proxlight_trinkey_m0/mpconfigboard.mk index cee8049231..a617947f9c 100644 --- a/ports/atmel-samd/boards/adafruit_proxlight_trinkey_m0/mpconfigboard.mk +++ b/ports/atmel-samd/boards/adafruit_proxlight_trinkey_m0/mpconfigboard.mk @@ -21,6 +21,7 @@ CIRCUITPY_RTC = 0 CIRCUITPY_USB_MIDI = 0 CIRCUITPY_PIXELBUF = 1 +CIRCUITPY_BUSDEVICE = 1 # Include these Python libraries in firmware. FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_HID From 57c6279b4039b8d770c3f54e7bfeff320f461350 Mon Sep 17 00:00:00 2001 From: evildave666 Date: Mon, 26 Jul 2021 13:59:25 +0900 Subject: [PATCH 09/11] Added new linker file --- ports/stm/boards/STM32F411_nofs.ld | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 ports/stm/boards/STM32F411_nofs.ld diff --git a/ports/stm/boards/STM32F411_nofs.ld b/ports/stm/boards/STM32F411_nofs.ld new file mode 100644 index 0000000000..3091a59275 --- /dev/null +++ b/ports/stm/boards/STM32F411_nofs.ld @@ -0,0 +1,26 @@ +/* + GNU linker script for STM32F411 without nvm and an external flash chip. + No space is reserved for a filesystem. +*/ + +/* Specify the memory areas */ +MEMORY +{ + FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 512K /* entire flash */ + FLASH_ISR (rx) : ORIGIN = 0x08000000, LENGTH = 16K /* sector 0 */ + FLASH_FIRMWARE (rx) : ORIGIN = 0x08004000, LENGTH = 496K /* sectors 1,2,3 are 16k, sector 4 is 64K, sectors 5,6,7 are 128K */ + RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K +} + +/* produce a link error if there is not this amount of RAM for these sections */ +_minimum_stack_size = 24K; +_minimum_heap_size = 16K; + +/* Define the top end of the stack. The stack is full descending so begins just + above last byte of RAM. Note that EABI requires the stack to be 8-byte + aligned for a call. */ +_estack = ORIGIN(RAM) + LENGTH(RAM); + +/* RAM extents for the garbage collector */ +_ram_start = ORIGIN(RAM); +_ram_end = ORIGIN(RAM) + LENGTH(RAM); From f059bab2532a1d0a1addbac5d6878ee71f61e511 Mon Sep 17 00:00:00 2001 From: evildave666 Date: Mon, 26 Jul 2021 14:13:41 +0900 Subject: [PATCH 10/11] Modify mpconfigboard.mk to point to the new linker file and re-include modules --- .../stm32f411ce_blackpill_with_flash/mpconfigboard.mk | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/ports/stm/boards/stm32f411ce_blackpill_with_flash/mpconfigboard.mk b/ports/stm/boards/stm32f411ce_blackpill_with_flash/mpconfigboard.mk index 37dccadb99..7ea5fc4a82 100644 --- a/ports/stm/boards/stm32f411ce_blackpill_with_flash/mpconfigboard.mk +++ b/ports/stm/boards/stm32f411ce_blackpill_with_flash/mpconfigboard.mk @@ -15,11 +15,4 @@ MCU_VARIANT = STM32F411xE MCU_PACKAGE = UFQFPN48 LD_COMMON = boards/common_default.ld -LD_FILE = boards/STM32F411_nvm_nofs.ld - -# Too big for the flash -CIRCUITPY_AUDIOCORE = 0 -CIRCUITPY_AUDIOPWMIO = 0 -CIRCUITPY_SYNTHIO = 0 -CIRCUITPY_BITMAPTOOLS = 0 -CIRCUITPY_VECTORIO = 0 +LD_FILE = boards/STM32F411_nofs.ld From 4e786494ddf938b84ce39b71fdeeef10281b3768 Mon Sep 17 00:00:00 2001 From: Jeff Epler Date: Mon, 26 Jul 2021 13:04:27 -0500 Subject: [PATCH 11/11] Remove settings.py/txt as alternatives for boot.py Closes: #5064 --- README.rst | 3 +-- main.c | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/README.rst b/README.rst index 86c5660417..9a16c001df 100644 --- a/README.rst +++ b/README.rst @@ -140,8 +140,7 @@ Behavior - Autoreload is disabled while the REPL is active. - Main is one of these: ``code.txt``, ``code.py``, ``main.py``, ``main.txt`` -- Boot is one of these: ``settings.txt``, ``settings.py``, ``boot.py``, - ``boot.txt`` +- Boot is one of these: ``boot.py``, ``boot.txt`` API ~~~ diff --git a/main.c b/main.c index c6801dca7d..13caf4beb7 100755 --- a/main.c +++ b/main.c @@ -631,7 +631,7 @@ STATIC void __attribute__ ((noinline)) run_boot_py(safe_mode_t safe_mode) { && safe_mode == NO_SAFE_MODE && MP_STATE_VM(vfs_mount_table) != NULL; - static const char * const boot_py_filenames[] = STRING_LIST("settings.txt", "settings.py", "boot.py", "boot.txt"); + static const char * const boot_py_filenames[] = STRING_LIST("boot.py", "boot.txt"); bool skip_boot_output = false; if (ok_to_run) {