From 36bdc2e5e919f6c22933ed972be034bac63221ed Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Sat, 9 Apr 2022 11:02:57 -0700 Subject: [PATCH 01/22] WIP - Add FreeRTOS support thanks to @hfellner Using all the work from @hfellner and others. Things work but are not stable (i.e. flash operations will make things go badly, fast; delay() does not actually release the core for other work, etc.). --- .gitmodules | 3 + boards.txt | 289 ++++++++++++++++++++++++++++ cores/rp2040/Bootsel.cpp | 14 +- cores/rp2040/RP2040Support.h | 20 +- cores/rp2040/main.cpp | 83 +++++--- libraries/EEPROM/EEPROM.cpp | 12 +- libraries/FreeRTOS | 1 + libraries/LittleFS/src/LittleFS.cpp | 24 ++- platform.txt | 4 +- tools/makeboards.py | 9 + 10 files changed, 404 insertions(+), 55 deletions(-) create mode 160000 libraries/FreeRTOS diff --git a/.gitmodules b/.gitmodules index 52c7821b..0c67644b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -25,3 +25,6 @@ [submodule "libraries/Adafruit_TinyUSB_Arduino"] path = libraries/Adafruit_TinyUSB_Arduino url = https://github.com/adafruit/Adafruit_TinyUSB_Arduino.git +[submodule "libraries/FreeRTOS"] + path = libraries/FreeRTOS + url = https://github.com/earlephilhower/RP2040_FreeRTOS.git diff --git a/boards.txt b/boards.txt index f6c0dd14..95b102fa 100644 --- a/boards.txt +++ b/boards.txt @@ -11,6 +11,7 @@ menu.dbgport=Debug Port menu.dbglvl=Debug Level menu.boot2=Boot Stage 2 menu.usbstack=USB Stack +menu.freertos=Use FreeRTOS # ----------------------------------- # Raspberry Pi Pico @@ -138,6 +139,10 @@ rpipico.menu.usbstack.picosdk=Pico SDK rpipico.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" rpipico.menu.usbstack.tinyusb=Adafruit TinyUSB rpipico.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +rpipico.menu.freertos.Disabled=Disabled +rpipico.menu.freertos.Disabled.build.flags.freertos= +rpipico.menu.freertos.Enabled=Enabled +rpipico.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Raspberry Pi Pico (Picoprobe) @@ -265,6 +270,10 @@ rpipicopicoprobe.menu.usbstack.picosdk=Pico SDK rpipicopicoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" rpipicopicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB rpipicopicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +rpipicopicoprobe.menu.freertos.Disabled=Disabled +rpipicopicoprobe.menu.freertos.Disabled.build.flags.freertos= +rpipicopicoprobe.menu.freertos.Enabled=Enabled +rpipicopicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Raspberry Pi Pico (pico-debug) @@ -390,6 +399,10 @@ rpipicopicodebug.menu.dbglvl.NDEBUG=NDEBUG rpipicopicodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG rpipicopicodebug.menu.usbstack.nousb=No USB rpipicopicodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" +rpipicopicodebug.menu.freertos.Disabled=Disabled +rpipicopicodebug.menu.freertos.Disabled.build.flags.freertos= +rpipicopicodebug.menu.freertos.Enabled=Enabled +rpipicopicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit Feather RP2040 @@ -553,6 +566,10 @@ adafruit_feather.menu.usbstack.picosdk=Pico SDK adafruit_feather.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" adafruit_feather.menu.usbstack.tinyusb=Adafruit TinyUSB adafruit_feather.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +adafruit_feather.menu.freertos.Disabled=Disabled +adafruit_feather.menu.freertos.Disabled.build.flags.freertos= +adafruit_feather.menu.freertos.Enabled=Enabled +adafruit_feather.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit Feather RP2040 (Picoprobe) @@ -716,6 +733,10 @@ adafruit_featherpicoprobe.menu.usbstack.picosdk=Pico SDK adafruit_featherpicoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" adafruit_featherpicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB adafruit_featherpicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +adafruit_featherpicoprobe.menu.freertos.Disabled=Disabled +adafruit_featherpicoprobe.menu.freertos.Disabled.build.flags.freertos= +adafruit_featherpicoprobe.menu.freertos.Enabled=Enabled +adafruit_featherpicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit Feather RP2040 (pico-debug) @@ -877,6 +898,10 @@ adafruit_featherpicodebug.menu.dbglvl.NDEBUG=NDEBUG adafruit_featherpicodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG adafruit_featherpicodebug.menu.usbstack.nousb=No USB adafruit_featherpicodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" +adafruit_featherpicodebug.menu.freertos.Disabled=Disabled +adafruit_featherpicodebug.menu.freertos.Disabled.build.flags.freertos= +adafruit_featherpicodebug.menu.freertos.Enabled=Enabled +adafruit_featherpicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit ItsyBitsy RP2040 @@ -1040,6 +1065,10 @@ adafruit_itsybitsy.menu.usbstack.picosdk=Pico SDK adafruit_itsybitsy.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" adafruit_itsybitsy.menu.usbstack.tinyusb=Adafruit TinyUSB adafruit_itsybitsy.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +adafruit_itsybitsy.menu.freertos.Disabled=Disabled +adafruit_itsybitsy.menu.freertos.Disabled.build.flags.freertos= +adafruit_itsybitsy.menu.freertos.Enabled=Enabled +adafruit_itsybitsy.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit ItsyBitsy RP2040 (Picoprobe) @@ -1203,6 +1232,10 @@ adafruit_itsybitsypicoprobe.menu.usbstack.picosdk=Pico SDK adafruit_itsybitsypicoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" adafruit_itsybitsypicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB adafruit_itsybitsypicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +adafruit_itsybitsypicoprobe.menu.freertos.Disabled=Disabled +adafruit_itsybitsypicoprobe.menu.freertos.Disabled.build.flags.freertos= +adafruit_itsybitsypicoprobe.menu.freertos.Enabled=Enabled +adafruit_itsybitsypicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit ItsyBitsy RP2040 (pico-debug) @@ -1364,6 +1397,10 @@ adafruit_itsybitsypicodebug.menu.dbglvl.NDEBUG=NDEBUG adafruit_itsybitsypicodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG adafruit_itsybitsypicodebug.menu.usbstack.nousb=No USB adafruit_itsybitsypicodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" +adafruit_itsybitsypicodebug.menu.freertos.Disabled=Disabled +adafruit_itsybitsypicodebug.menu.freertos.Disabled.build.flags.freertos= +adafruit_itsybitsypicodebug.menu.freertos.Enabled=Enabled +adafruit_itsybitsypicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit QT Py RP2040 @@ -1527,6 +1564,10 @@ adafruit_qtpy.menu.usbstack.picosdk=Pico SDK adafruit_qtpy.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" adafruit_qtpy.menu.usbstack.tinyusb=Adafruit TinyUSB adafruit_qtpy.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +adafruit_qtpy.menu.freertos.Disabled=Disabled +adafruit_qtpy.menu.freertos.Disabled.build.flags.freertos= +adafruit_qtpy.menu.freertos.Enabled=Enabled +adafruit_qtpy.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit QT Py RP2040 (Picoprobe) @@ -1690,6 +1731,10 @@ adafruit_qtpypicoprobe.menu.usbstack.picosdk=Pico SDK adafruit_qtpypicoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" adafruit_qtpypicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB adafruit_qtpypicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +adafruit_qtpypicoprobe.menu.freertos.Disabled=Disabled +adafruit_qtpypicoprobe.menu.freertos.Disabled.build.flags.freertos= +adafruit_qtpypicoprobe.menu.freertos.Enabled=Enabled +adafruit_qtpypicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit QT Py RP2040 (pico-debug) @@ -1851,6 +1896,10 @@ adafruit_qtpypicodebug.menu.dbglvl.NDEBUG=NDEBUG adafruit_qtpypicodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG adafruit_qtpypicodebug.menu.usbstack.nousb=No USB adafruit_qtpypicodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" +adafruit_qtpypicodebug.menu.freertos.Disabled=Disabled +adafruit_qtpypicodebug.menu.freertos.Disabled.build.flags.freertos= +adafruit_qtpypicodebug.menu.freertos.Enabled=Enabled +adafruit_qtpypicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit STEMMA Friend RP2040 @@ -2014,6 +2063,10 @@ adafruit_stemmafriend.menu.usbstack.picosdk=Pico SDK adafruit_stemmafriend.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" adafruit_stemmafriend.menu.usbstack.tinyusb=Adafruit TinyUSB adafruit_stemmafriend.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +adafruit_stemmafriend.menu.freertos.Disabled=Disabled +adafruit_stemmafriend.menu.freertos.Disabled.build.flags.freertos= +adafruit_stemmafriend.menu.freertos.Enabled=Enabled +adafruit_stemmafriend.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit STEMMA Friend RP2040 (Picoprobe) @@ -2177,6 +2230,10 @@ adafruit_stemmafriendpicoprobe.menu.usbstack.picosdk=Pico SDK adafruit_stemmafriendpicoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" adafruit_stemmafriendpicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB adafruit_stemmafriendpicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +adafruit_stemmafriendpicoprobe.menu.freertos.Disabled=Disabled +adafruit_stemmafriendpicoprobe.menu.freertos.Disabled.build.flags.freertos= +adafruit_stemmafriendpicoprobe.menu.freertos.Enabled=Enabled +adafruit_stemmafriendpicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit STEMMA Friend RP2040 (pico-debug) @@ -2338,6 +2395,10 @@ adafruit_stemmafriendpicodebug.menu.dbglvl.NDEBUG=NDEBUG adafruit_stemmafriendpicodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG adafruit_stemmafriendpicodebug.menu.usbstack.nousb=No USB adafruit_stemmafriendpicodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" +adafruit_stemmafriendpicodebug.menu.freertos.Disabled=Disabled +adafruit_stemmafriendpicodebug.menu.freertos.Disabled.build.flags.freertos= +adafruit_stemmafriendpicodebug.menu.freertos.Enabled=Enabled +adafruit_stemmafriendpicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit Trinkey RP2040 QT @@ -2501,6 +2562,10 @@ adafruit_trinkeyrp2040qt.menu.usbstack.picosdk=Pico SDK adafruit_trinkeyrp2040qt.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" adafruit_trinkeyrp2040qt.menu.usbstack.tinyusb=Adafruit TinyUSB adafruit_trinkeyrp2040qt.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +adafruit_trinkeyrp2040qt.menu.freertos.Disabled=Disabled +adafruit_trinkeyrp2040qt.menu.freertos.Disabled.build.flags.freertos= +adafruit_trinkeyrp2040qt.menu.freertos.Enabled=Enabled +adafruit_trinkeyrp2040qt.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit Trinkey RP2040 QT (Picoprobe) @@ -2664,6 +2729,10 @@ adafruit_trinkeyrp2040qtpicoprobe.menu.usbstack.picosdk=Pico SDK adafruit_trinkeyrp2040qtpicoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" adafruit_trinkeyrp2040qtpicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB adafruit_trinkeyrp2040qtpicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +adafruit_trinkeyrp2040qtpicoprobe.menu.freertos.Disabled=Disabled +adafruit_trinkeyrp2040qtpicoprobe.menu.freertos.Disabled.build.flags.freertos= +adafruit_trinkeyrp2040qtpicoprobe.menu.freertos.Enabled=Enabled +adafruit_trinkeyrp2040qtpicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit Trinkey RP2040 QT (pico-debug) @@ -2825,6 +2894,10 @@ adafruit_trinkeyrp2040qtpicodebug.menu.dbglvl.NDEBUG=NDEBUG adafruit_trinkeyrp2040qtpicodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG adafruit_trinkeyrp2040qtpicodebug.menu.usbstack.nousb=No USB adafruit_trinkeyrp2040qtpicodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" +adafruit_trinkeyrp2040qtpicodebug.menu.freertos.Disabled=Disabled +adafruit_trinkeyrp2040qtpicodebug.menu.freertos.Disabled.build.flags.freertos= +adafruit_trinkeyrp2040qtpicodebug.menu.freertos.Enabled=Enabled +adafruit_trinkeyrp2040qtpicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit MacroPad RP2040 @@ -2988,6 +3061,10 @@ adafruit_macropad2040.menu.usbstack.picosdk=Pico SDK adafruit_macropad2040.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" adafruit_macropad2040.menu.usbstack.tinyusb=Adafruit TinyUSB adafruit_macropad2040.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +adafruit_macropad2040.menu.freertos.Disabled=Disabled +adafruit_macropad2040.menu.freertos.Disabled.build.flags.freertos= +adafruit_macropad2040.menu.freertos.Enabled=Enabled +adafruit_macropad2040.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit MacroPad RP2040 (Picoprobe) @@ -3151,6 +3228,10 @@ adafruit_macropad2040picoprobe.menu.usbstack.picosdk=Pico SDK adafruit_macropad2040picoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" adafruit_macropad2040picoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB adafruit_macropad2040picoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +adafruit_macropad2040picoprobe.menu.freertos.Disabled=Disabled +adafruit_macropad2040picoprobe.menu.freertos.Disabled.build.flags.freertos= +adafruit_macropad2040picoprobe.menu.freertos.Enabled=Enabled +adafruit_macropad2040picoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit MacroPad RP2040 (pico-debug) @@ -3312,6 +3393,10 @@ adafruit_macropad2040picodebug.menu.dbglvl.NDEBUG=NDEBUG adafruit_macropad2040picodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG adafruit_macropad2040picodebug.menu.usbstack.nousb=No USB adafruit_macropad2040picodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" +adafruit_macropad2040picodebug.menu.freertos.Disabled=Disabled +adafruit_macropad2040picodebug.menu.freertos.Disabled.build.flags.freertos= +adafruit_macropad2040picodebug.menu.freertos.Enabled=Enabled +adafruit_macropad2040picodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit KB2040 @@ -3475,6 +3560,10 @@ adafruit_kb2040.menu.usbstack.picosdk=Pico SDK adafruit_kb2040.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" adafruit_kb2040.menu.usbstack.tinyusb=Adafruit TinyUSB adafruit_kb2040.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +adafruit_kb2040.menu.freertos.Disabled=Disabled +adafruit_kb2040.menu.freertos.Disabled.build.flags.freertos= +adafruit_kb2040.menu.freertos.Enabled=Enabled +adafruit_kb2040.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit KB2040 (Picoprobe) @@ -3638,6 +3727,10 @@ adafruit_kb2040picoprobe.menu.usbstack.picosdk=Pico SDK adafruit_kb2040picoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" adafruit_kb2040picoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB adafruit_kb2040picoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +adafruit_kb2040picoprobe.menu.freertos.Disabled=Disabled +adafruit_kb2040picoprobe.menu.freertos.Disabled.build.flags.freertos= +adafruit_kb2040picoprobe.menu.freertos.Enabled=Enabled +adafruit_kb2040picoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit KB2040 (pico-debug) @@ -3799,6 +3892,10 @@ adafruit_kb2040picodebug.menu.dbglvl.NDEBUG=NDEBUG adafruit_kb2040picodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG adafruit_kb2040picodebug.menu.usbstack.nousb=No USB adafruit_kb2040picodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" +adafruit_kb2040picodebug.menu.freertos.Disabled=Disabled +adafruit_kb2040picodebug.menu.freertos.Disabled.build.flags.freertos= +adafruit_kb2040picodebug.menu.freertos.Enabled=Enabled +adafruit_kb2040picodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Arduino Nano RP2040 Connect @@ -4010,6 +4107,10 @@ arduino_nano_connect.menu.usbstack.picosdk=Pico SDK arduino_nano_connect.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" arduino_nano_connect.menu.usbstack.tinyusb=Adafruit TinyUSB arduino_nano_connect.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +arduino_nano_connect.menu.freertos.Disabled=Disabled +arduino_nano_connect.menu.freertos.Disabled.build.flags.freertos= +arduino_nano_connect.menu.freertos.Enabled=Enabled +arduino_nano_connect.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Arduino Nano RP2040 Connect (Picoprobe) @@ -4221,6 +4322,10 @@ arduino_nano_connectpicoprobe.menu.usbstack.picosdk=Pico SDK arduino_nano_connectpicoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" arduino_nano_connectpicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB arduino_nano_connectpicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +arduino_nano_connectpicoprobe.menu.freertos.Disabled=Disabled +arduino_nano_connectpicoprobe.menu.freertos.Disabled.build.flags.freertos= +arduino_nano_connectpicoprobe.menu.freertos.Enabled=Enabled +arduino_nano_connectpicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Arduino Nano RP2040 Connect (pico-debug) @@ -4430,6 +4535,10 @@ arduino_nano_connectpicodebug.menu.dbglvl.NDEBUG=NDEBUG arduino_nano_connectpicodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG arduino_nano_connectpicodebug.menu.usbstack.nousb=No USB arduino_nano_connectpicodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" +arduino_nano_connectpicodebug.menu.freertos.Disabled=Disabled +arduino_nano_connectpicodebug.menu.freertos.Disabled.build.flags.freertos= +arduino_nano_connectpicodebug.menu.freertos.Enabled=Enabled +arduino_nano_connectpicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Cytron Maker Nano RP2040 @@ -4557,6 +4666,10 @@ cytron_maker_nano_rp2040.menu.usbstack.picosdk=Pico SDK cytron_maker_nano_rp2040.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" cytron_maker_nano_rp2040.menu.usbstack.tinyusb=Adafruit TinyUSB cytron_maker_nano_rp2040.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +cytron_maker_nano_rp2040.menu.freertos.Disabled=Disabled +cytron_maker_nano_rp2040.menu.freertos.Disabled.build.flags.freertos= +cytron_maker_nano_rp2040.menu.freertos.Enabled=Enabled +cytron_maker_nano_rp2040.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Cytron Maker Nano RP2040 (Picoprobe) @@ -4684,6 +4797,10 @@ cytron_maker_nano_rp2040picoprobe.menu.usbstack.picosdk=Pico SDK cytron_maker_nano_rp2040picoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" cytron_maker_nano_rp2040picoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB cytron_maker_nano_rp2040picoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +cytron_maker_nano_rp2040picoprobe.menu.freertos.Disabled=Disabled +cytron_maker_nano_rp2040picoprobe.menu.freertos.Disabled.build.flags.freertos= +cytron_maker_nano_rp2040picoprobe.menu.freertos.Enabled=Enabled +cytron_maker_nano_rp2040picoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Cytron Maker Nano RP2040 (pico-debug) @@ -4809,6 +4926,10 @@ cytron_maker_nano_rp2040picodebug.menu.dbglvl.NDEBUG=NDEBUG cytron_maker_nano_rp2040picodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG cytron_maker_nano_rp2040picodebug.menu.usbstack.nousb=No USB cytron_maker_nano_rp2040picodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" +cytron_maker_nano_rp2040picodebug.menu.freertos.Disabled=Disabled +cytron_maker_nano_rp2040picodebug.menu.freertos.Disabled.build.flags.freertos= +cytron_maker_nano_rp2040picodebug.menu.freertos.Enabled=Enabled +cytron_maker_nano_rp2040picodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Cytron Maker Pi RP2040 @@ -4936,6 +5057,10 @@ cytron_maker_pi_rp2040.menu.usbstack.picosdk=Pico SDK cytron_maker_pi_rp2040.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" cytron_maker_pi_rp2040.menu.usbstack.tinyusb=Adafruit TinyUSB cytron_maker_pi_rp2040.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +cytron_maker_pi_rp2040.menu.freertos.Disabled=Disabled +cytron_maker_pi_rp2040.menu.freertos.Disabled.build.flags.freertos= +cytron_maker_pi_rp2040.menu.freertos.Enabled=Enabled +cytron_maker_pi_rp2040.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Cytron Maker Pi RP2040 (Picoprobe) @@ -5063,6 +5188,10 @@ cytron_maker_pi_rp2040picoprobe.menu.usbstack.picosdk=Pico SDK cytron_maker_pi_rp2040picoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" cytron_maker_pi_rp2040picoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB cytron_maker_pi_rp2040picoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +cytron_maker_pi_rp2040picoprobe.menu.freertos.Disabled=Disabled +cytron_maker_pi_rp2040picoprobe.menu.freertos.Disabled.build.flags.freertos= +cytron_maker_pi_rp2040picoprobe.menu.freertos.Enabled=Enabled +cytron_maker_pi_rp2040picoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Cytron Maker Pi RP2040 (pico-debug) @@ -5188,6 +5317,10 @@ cytron_maker_pi_rp2040picodebug.menu.dbglvl.NDEBUG=NDEBUG cytron_maker_pi_rp2040picodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG cytron_maker_pi_rp2040picodebug.menu.usbstack.nousb=No USB cytron_maker_pi_rp2040picodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" +cytron_maker_pi_rp2040picodebug.menu.freertos.Disabled=Disabled +cytron_maker_pi_rp2040picodebug.menu.freertos.Disabled.build.flags.freertos= +cytron_maker_pi_rp2040picodebug.menu.freertos.Enabled=Enabled +cytron_maker_pi_rp2040picodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # DeRuiLab FlyBoard2040Core @@ -5327,6 +5460,10 @@ flyboard2040_core.menu.usbstack.picosdk=Pico SDK flyboard2040_core.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" flyboard2040_core.menu.usbstack.tinyusb=Adafruit TinyUSB flyboard2040_core.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +flyboard2040_core.menu.freertos.Disabled=Disabled +flyboard2040_core.menu.freertos.Disabled.build.flags.freertos= +flyboard2040_core.menu.freertos.Enabled=Enabled +flyboard2040_core.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # DeRuiLab FlyBoard2040Core (Picoprobe) @@ -5466,6 +5603,10 @@ flyboard2040_corepicoprobe.menu.usbstack.picosdk=Pico SDK flyboard2040_corepicoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" flyboard2040_corepicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB flyboard2040_corepicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +flyboard2040_corepicoprobe.menu.freertos.Disabled=Disabled +flyboard2040_corepicoprobe.menu.freertos.Disabled.build.flags.freertos= +flyboard2040_corepicoprobe.menu.freertos.Enabled=Enabled +flyboard2040_corepicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # DeRuiLab FlyBoard2040Core (pico-debug) @@ -5603,6 +5744,10 @@ flyboard2040_corepicodebug.menu.dbglvl.NDEBUG=NDEBUG flyboard2040_corepicodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG flyboard2040_corepicodebug.menu.usbstack.nousb=No USB flyboard2040_corepicodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" +flyboard2040_corepicodebug.menu.freertos.Disabled=Disabled +flyboard2040_corepicodebug.menu.freertos.Disabled.build.flags.freertos= +flyboard2040_corepicodebug.menu.freertos.Enabled=Enabled +flyboard2040_corepicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # DFRobot Beetle RP2040 @@ -5730,6 +5875,10 @@ dfrobot_beetle_rp2040.menu.usbstack.picosdk=Pico SDK dfrobot_beetle_rp2040.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" dfrobot_beetle_rp2040.menu.usbstack.tinyusb=Adafruit TinyUSB dfrobot_beetle_rp2040.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +dfrobot_beetle_rp2040.menu.freertos.Disabled=Disabled +dfrobot_beetle_rp2040.menu.freertos.Disabled.build.flags.freertos= +dfrobot_beetle_rp2040.menu.freertos.Enabled=Enabled +dfrobot_beetle_rp2040.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # DFRobot Beetle RP2040 (Picoprobe) @@ -5857,6 +6006,10 @@ dfrobot_beetle_rp2040picoprobe.menu.usbstack.picosdk=Pico SDK dfrobot_beetle_rp2040picoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" dfrobot_beetle_rp2040picoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB dfrobot_beetle_rp2040picoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +dfrobot_beetle_rp2040picoprobe.menu.freertos.Disabled=Disabled +dfrobot_beetle_rp2040picoprobe.menu.freertos.Disabled.build.flags.freertos= +dfrobot_beetle_rp2040picoprobe.menu.freertos.Enabled=Enabled +dfrobot_beetle_rp2040picoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # DFRobot Beetle RP2040 (pico-debug) @@ -5982,6 +6135,10 @@ dfrobot_beetle_rp2040picodebug.menu.dbglvl.NDEBUG=NDEBUG dfrobot_beetle_rp2040picodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG dfrobot_beetle_rp2040picodebug.menu.usbstack.nousb=No USB dfrobot_beetle_rp2040picodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" +dfrobot_beetle_rp2040picodebug.menu.freertos.Disabled=Disabled +dfrobot_beetle_rp2040picodebug.menu.freertos.Disabled.build.flags.freertos= +dfrobot_beetle_rp2040picodebug.menu.freertos.Enabled=Enabled +dfrobot_beetle_rp2040picodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # iLabs Challenger 2040 LoRa @@ -6145,6 +6302,10 @@ challenger_2040_lora.menu.usbstack.picosdk=Pico SDK challenger_2040_lora.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" challenger_2040_lora.menu.usbstack.tinyusb=Adafruit TinyUSB challenger_2040_lora.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +challenger_2040_lora.menu.freertos.Disabled=Disabled +challenger_2040_lora.menu.freertos.Disabled.build.flags.freertos= +challenger_2040_lora.menu.freertos.Enabled=Enabled +challenger_2040_lora.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # iLabs Challenger 2040 LoRa (Picoprobe) @@ -6308,6 +6469,10 @@ challenger_2040_lorapicoprobe.menu.usbstack.picosdk=Pico SDK challenger_2040_lorapicoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" challenger_2040_lorapicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB challenger_2040_lorapicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +challenger_2040_lorapicoprobe.menu.freertos.Disabled=Disabled +challenger_2040_lorapicoprobe.menu.freertos.Disabled.build.flags.freertos= +challenger_2040_lorapicoprobe.menu.freertos.Enabled=Enabled +challenger_2040_lorapicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # iLabs Challenger 2040 LoRa (pico-debug) @@ -6469,6 +6634,10 @@ challenger_2040_lorapicodebug.menu.dbglvl.NDEBUG=NDEBUG challenger_2040_lorapicodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG challenger_2040_lorapicodebug.menu.usbstack.nousb=No USB challenger_2040_lorapicodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" +challenger_2040_lorapicodebug.menu.freertos.Disabled=Disabled +challenger_2040_lorapicodebug.menu.freertos.Disabled.build.flags.freertos= +challenger_2040_lorapicodebug.menu.freertos.Enabled=Enabled +challenger_2040_lorapicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # iLabs Challenger 2040 WiFi @@ -6632,6 +6801,10 @@ challenger_2040_wifi.menu.usbstack.picosdk=Pico SDK challenger_2040_wifi.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" challenger_2040_wifi.menu.usbstack.tinyusb=Adafruit TinyUSB challenger_2040_wifi.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +challenger_2040_wifi.menu.freertos.Disabled=Disabled +challenger_2040_wifi.menu.freertos.Disabled.build.flags.freertos= +challenger_2040_wifi.menu.freertos.Enabled=Enabled +challenger_2040_wifi.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # iLabs Challenger 2040 WiFi (Picoprobe) @@ -6795,6 +6968,10 @@ challenger_2040_wifipicoprobe.menu.usbstack.picosdk=Pico SDK challenger_2040_wifipicoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" challenger_2040_wifipicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB challenger_2040_wifipicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +challenger_2040_wifipicoprobe.menu.freertos.Disabled=Disabled +challenger_2040_wifipicoprobe.menu.freertos.Disabled.build.flags.freertos= +challenger_2040_wifipicoprobe.menu.freertos.Enabled=Enabled +challenger_2040_wifipicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # iLabs Challenger 2040 WiFi (pico-debug) @@ -6956,6 +7133,10 @@ challenger_2040_wifipicodebug.menu.dbglvl.NDEBUG=NDEBUG challenger_2040_wifipicodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG challenger_2040_wifipicodebug.menu.usbstack.nousb=No USB challenger_2040_wifipicodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" +challenger_2040_wifipicodebug.menu.freertos.Disabled=Disabled +challenger_2040_wifipicodebug.menu.freertos.Disabled.build.flags.freertos= +challenger_2040_wifipicodebug.menu.freertos.Enabled=Enabled +challenger_2040_wifipicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # iLabs Challenger 2040 LTE @@ -7119,6 +7300,10 @@ challenger_2040_lte.menu.usbstack.picosdk=Pico SDK challenger_2040_lte.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" challenger_2040_lte.menu.usbstack.tinyusb=Adafruit TinyUSB challenger_2040_lte.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +challenger_2040_lte.menu.freertos.Disabled=Disabled +challenger_2040_lte.menu.freertos.Disabled.build.flags.freertos= +challenger_2040_lte.menu.freertos.Enabled=Enabled +challenger_2040_lte.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # iLabs Challenger 2040 LTE (Picoprobe) @@ -7282,6 +7467,10 @@ challenger_2040_ltepicoprobe.menu.usbstack.picosdk=Pico SDK challenger_2040_ltepicoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" challenger_2040_ltepicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB challenger_2040_ltepicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +challenger_2040_ltepicoprobe.menu.freertos.Disabled=Disabled +challenger_2040_ltepicoprobe.menu.freertos.Disabled.build.flags.freertos= +challenger_2040_ltepicoprobe.menu.freertos.Enabled=Enabled +challenger_2040_ltepicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # iLabs Challenger 2040 LTE (pico-debug) @@ -7443,6 +7632,10 @@ challenger_2040_ltepicodebug.menu.dbglvl.NDEBUG=NDEBUG challenger_2040_ltepicodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG challenger_2040_ltepicodebug.menu.usbstack.nousb=No USB challenger_2040_ltepicodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" +challenger_2040_ltepicodebug.menu.freertos.Disabled=Disabled +challenger_2040_ltepicodebug.menu.freertos.Disabled.build.flags.freertos= +challenger_2040_ltepicodebug.menu.freertos.Enabled=Enabled +challenger_2040_ltepicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # iLabs Challenger NB 2040 WiFi @@ -7606,6 +7799,10 @@ challenger_nb_2040_wifi.menu.usbstack.picosdk=Pico SDK challenger_nb_2040_wifi.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" challenger_nb_2040_wifi.menu.usbstack.tinyusb=Adafruit TinyUSB challenger_nb_2040_wifi.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +challenger_nb_2040_wifi.menu.freertos.Disabled=Disabled +challenger_nb_2040_wifi.menu.freertos.Disabled.build.flags.freertos= +challenger_nb_2040_wifi.menu.freertos.Enabled=Enabled +challenger_nb_2040_wifi.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # iLabs Challenger NB 2040 WiFi (Picoprobe) @@ -7769,6 +7966,10 @@ challenger_nb_2040_wifipicoprobe.menu.usbstack.picosdk=Pico SDK challenger_nb_2040_wifipicoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" challenger_nb_2040_wifipicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB challenger_nb_2040_wifipicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +challenger_nb_2040_wifipicoprobe.menu.freertos.Disabled=Disabled +challenger_nb_2040_wifipicoprobe.menu.freertos.Disabled.build.flags.freertos= +challenger_nb_2040_wifipicoprobe.menu.freertos.Enabled=Enabled +challenger_nb_2040_wifipicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # iLabs Challenger NB 2040 WiFi (pico-debug) @@ -7930,6 +8131,10 @@ challenger_nb_2040_wifipicodebug.menu.dbglvl.NDEBUG=NDEBUG challenger_nb_2040_wifipicodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG challenger_nb_2040_wifipicodebug.menu.usbstack.nousb=No USB challenger_nb_2040_wifipicodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" +challenger_nb_2040_wifipicodebug.menu.freertos.Disabled=Disabled +challenger_nb_2040_wifipicodebug.menu.freertos.Disabled.build.flags.freertos= +challenger_nb_2040_wifipicodebug.menu.freertos.Enabled=Enabled +challenger_nb_2040_wifipicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # iLabs RPICO32 @@ -8093,6 +8298,10 @@ ilabs_rpico32.menu.usbstack.picosdk=Pico SDK ilabs_rpico32.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" ilabs_rpico32.menu.usbstack.tinyusb=Adafruit TinyUSB ilabs_rpico32.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +ilabs_rpico32.menu.freertos.Disabled=Disabled +ilabs_rpico32.menu.freertos.Disabled.build.flags.freertos= +ilabs_rpico32.menu.freertos.Enabled=Enabled +ilabs_rpico32.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # iLabs RPICO32 (Picoprobe) @@ -8256,6 +8465,10 @@ ilabs_rpico32picoprobe.menu.usbstack.picosdk=Pico SDK ilabs_rpico32picoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" ilabs_rpico32picoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB ilabs_rpico32picoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +ilabs_rpico32picoprobe.menu.freertos.Disabled=Disabled +ilabs_rpico32picoprobe.menu.freertos.Disabled.build.flags.freertos= +ilabs_rpico32picoprobe.menu.freertos.Enabled=Enabled +ilabs_rpico32picoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # iLabs RPICO32 (pico-debug) @@ -8417,6 +8630,10 @@ ilabs_rpico32picodebug.menu.dbglvl.NDEBUG=NDEBUG ilabs_rpico32picodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG ilabs_rpico32picodebug.menu.usbstack.nousb=No USB ilabs_rpico32picodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" +ilabs_rpico32picodebug.menu.freertos.Disabled=Disabled +ilabs_rpico32picodebug.menu.freertos.Disabled.build.flags.freertos= +ilabs_rpico32picodebug.menu.freertos.Enabled=Enabled +ilabs_rpico32picodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Melopero Shake RP2040 @@ -8628,6 +8845,10 @@ melopero_shake_rp2040.menu.usbstack.picosdk=Pico SDK melopero_shake_rp2040.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" melopero_shake_rp2040.menu.usbstack.tinyusb=Adafruit TinyUSB melopero_shake_rp2040.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +melopero_shake_rp2040.menu.freertos.Disabled=Disabled +melopero_shake_rp2040.menu.freertos.Disabled.build.flags.freertos= +melopero_shake_rp2040.menu.freertos.Enabled=Enabled +melopero_shake_rp2040.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Melopero Shake RP2040 (Picoprobe) @@ -8839,6 +9060,10 @@ melopero_shake_rp2040picoprobe.menu.usbstack.picosdk=Pico SDK melopero_shake_rp2040picoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" melopero_shake_rp2040picoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB melopero_shake_rp2040picoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +melopero_shake_rp2040picoprobe.menu.freertos.Disabled=Disabled +melopero_shake_rp2040picoprobe.menu.freertos.Disabled.build.flags.freertos= +melopero_shake_rp2040picoprobe.menu.freertos.Enabled=Enabled +melopero_shake_rp2040picoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Melopero Shake RP2040 (pico-debug) @@ -9048,6 +9273,10 @@ melopero_shake_rp2040picodebug.menu.dbglvl.NDEBUG=NDEBUG melopero_shake_rp2040picodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG melopero_shake_rp2040picodebug.menu.usbstack.nousb=No USB melopero_shake_rp2040picodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" +melopero_shake_rp2040picodebug.menu.freertos.Disabled=Disabled +melopero_shake_rp2040picodebug.menu.freertos.Disabled.build.flags.freertos= +melopero_shake_rp2040picodebug.menu.freertos.Enabled=Enabled +melopero_shake_rp2040picodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Solder Party RP2040 Stamp @@ -9211,6 +9440,10 @@ solderparty_rp2040_stamp.menu.usbstack.picosdk=Pico SDK solderparty_rp2040_stamp.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" solderparty_rp2040_stamp.menu.usbstack.tinyusb=Adafruit TinyUSB solderparty_rp2040_stamp.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +solderparty_rp2040_stamp.menu.freertos.Disabled=Disabled +solderparty_rp2040_stamp.menu.freertos.Disabled.build.flags.freertos= +solderparty_rp2040_stamp.menu.freertos.Enabled=Enabled +solderparty_rp2040_stamp.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Solder Party RP2040 Stamp (Picoprobe) @@ -9374,6 +9607,10 @@ solderparty_rp2040_stamppicoprobe.menu.usbstack.picosdk=Pico SDK solderparty_rp2040_stamppicoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" solderparty_rp2040_stamppicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB solderparty_rp2040_stamppicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +solderparty_rp2040_stamppicoprobe.menu.freertos.Disabled=Disabled +solderparty_rp2040_stamppicoprobe.menu.freertos.Disabled.build.flags.freertos= +solderparty_rp2040_stamppicoprobe.menu.freertos.Enabled=Enabled +solderparty_rp2040_stamppicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Solder Party RP2040 Stamp (pico-debug) @@ -9535,6 +9772,10 @@ solderparty_rp2040_stamppicodebug.menu.dbglvl.NDEBUG=NDEBUG solderparty_rp2040_stamppicodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG solderparty_rp2040_stamppicodebug.menu.usbstack.nousb=No USB solderparty_rp2040_stamppicodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" +solderparty_rp2040_stamppicodebug.menu.freertos.Disabled=Disabled +solderparty_rp2040_stamppicodebug.menu.freertos.Disabled.build.flags.freertos= +solderparty_rp2040_stamppicodebug.menu.freertos.Enabled=Enabled +solderparty_rp2040_stamppicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # SparkFun ProMicro RP2040 @@ -9746,6 +9987,10 @@ sparkfun_promicrorp2040.menu.usbstack.picosdk=Pico SDK sparkfun_promicrorp2040.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" sparkfun_promicrorp2040.menu.usbstack.tinyusb=Adafruit TinyUSB sparkfun_promicrorp2040.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +sparkfun_promicrorp2040.menu.freertos.Disabled=Disabled +sparkfun_promicrorp2040.menu.freertos.Disabled.build.flags.freertos= +sparkfun_promicrorp2040.menu.freertos.Enabled=Enabled +sparkfun_promicrorp2040.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # SparkFun ProMicro RP2040 (Picoprobe) @@ -9957,6 +10202,10 @@ sparkfun_promicrorp2040picoprobe.menu.usbstack.picosdk=Pico SDK sparkfun_promicrorp2040picoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" sparkfun_promicrorp2040picoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB sparkfun_promicrorp2040picoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +sparkfun_promicrorp2040picoprobe.menu.freertos.Disabled=Disabled +sparkfun_promicrorp2040picoprobe.menu.freertos.Disabled.build.flags.freertos= +sparkfun_promicrorp2040picoprobe.menu.freertos.Enabled=Enabled +sparkfun_promicrorp2040picoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # SparkFun ProMicro RP2040 (pico-debug) @@ -10166,6 +10415,10 @@ sparkfun_promicrorp2040picodebug.menu.dbglvl.NDEBUG=NDEBUG sparkfun_promicrorp2040picodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG sparkfun_promicrorp2040picodebug.menu.usbstack.nousb=No USB sparkfun_promicrorp2040picodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" +sparkfun_promicrorp2040picodebug.menu.freertos.Disabled=Disabled +sparkfun_promicrorp2040picodebug.menu.freertos.Disabled.build.flags.freertos= +sparkfun_promicrorp2040picodebug.menu.freertos.Enabled=Enabled +sparkfun_promicrorp2040picodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # uPesy RP2040 DevKit @@ -10293,6 +10546,10 @@ upesy_rp2040_devkit.menu.usbstack.picosdk=Pico SDK upesy_rp2040_devkit.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" upesy_rp2040_devkit.menu.usbstack.tinyusb=Adafruit TinyUSB upesy_rp2040_devkit.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +upesy_rp2040_devkit.menu.freertos.Disabled=Disabled +upesy_rp2040_devkit.menu.freertos.Disabled.build.flags.freertos= +upesy_rp2040_devkit.menu.freertos.Enabled=Enabled +upesy_rp2040_devkit.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # uPesy RP2040 DevKit (Picoprobe) @@ -10420,6 +10677,10 @@ upesy_rp2040_devkitpicoprobe.menu.usbstack.picosdk=Pico SDK upesy_rp2040_devkitpicoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" upesy_rp2040_devkitpicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB upesy_rp2040_devkitpicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +upesy_rp2040_devkitpicoprobe.menu.freertos.Disabled=Disabled +upesy_rp2040_devkitpicoprobe.menu.freertos.Disabled.build.flags.freertos= +upesy_rp2040_devkitpicoprobe.menu.freertos.Enabled=Enabled +upesy_rp2040_devkitpicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # uPesy RP2040 DevKit (pico-debug) @@ -10545,6 +10806,10 @@ upesy_rp2040_devkitpicodebug.menu.dbglvl.NDEBUG=NDEBUG upesy_rp2040_devkitpicodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG upesy_rp2040_devkitpicodebug.menu.usbstack.nousb=No USB upesy_rp2040_devkitpicodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" +upesy_rp2040_devkitpicodebug.menu.freertos.Disabled=Disabled +upesy_rp2040_devkitpicodebug.menu.freertos.Disabled.build.flags.freertos= +upesy_rp2040_devkitpicodebug.menu.freertos.Enabled=Enabled +upesy_rp2040_devkitpicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # WIZnet W5100S-EVB-Pico @@ -10672,6 +10937,10 @@ wiznet_5100s_evb_pico.menu.usbstack.picosdk=Pico SDK wiznet_5100s_evb_pico.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" wiznet_5100s_evb_pico.menu.usbstack.tinyusb=Adafruit TinyUSB wiznet_5100s_evb_pico.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +wiznet_5100s_evb_pico.menu.freertos.Disabled=Disabled +wiznet_5100s_evb_pico.menu.freertos.Disabled.build.flags.freertos= +wiznet_5100s_evb_pico.menu.freertos.Enabled=Enabled +wiznet_5100s_evb_pico.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # WIZnet W5100S-EVB-Pico (Picoprobe) @@ -10799,6 +11068,10 @@ wiznet_5100s_evb_picopicoprobe.menu.usbstack.picosdk=Pico SDK wiznet_5100s_evb_picopicoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" wiznet_5100s_evb_picopicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB wiznet_5100s_evb_picopicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" +wiznet_5100s_evb_picopicoprobe.menu.freertos.Disabled=Disabled +wiznet_5100s_evb_picopicoprobe.menu.freertos.Disabled.build.flags.freertos= +wiznet_5100s_evb_picopicoprobe.menu.freertos.Enabled=Enabled +wiznet_5100s_evb_picopicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # WIZnet W5100S-EVB-Pico (pico-debug) @@ -10924,6 +11197,10 @@ wiznet_5100s_evb_picopicodebug.menu.dbglvl.NDEBUG=NDEBUG wiznet_5100s_evb_picopicodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG wiznet_5100s_evb_picopicodebug.menu.usbstack.nousb=No USB wiznet_5100s_evb_picopicodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" +wiznet_5100s_evb_picopicodebug.menu.freertos.Disabled=Disabled +wiznet_5100s_evb_picopicodebug.menu.freertos.Disabled.build.flags.freertos= +wiznet_5100s_evb_picopicodebug.menu.freertos.Enabled=Enabled +wiznet_5100s_evb_picopicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Generic RP2040 @@ -11079,6 +11356,10 @@ generic.menu.boot2.boot2_w25x10cl_2_padded_checksum=W25X10CL QSPI /2 generic.menu.boot2.boot2_w25x10cl_2_padded_checksum.build.boot2=boot2_w25x10cl_2_padded_checksum generic.menu.boot2.boot2_w25x10cl_4_padded_checksum=W25X10CL QSPI /4 generic.menu.boot2.boot2_w25x10cl_4_padded_checksum.build.boot2=boot2_w25x10cl_4_padded_checksum +generic.menu.freertos.Disabled=Disabled +generic.menu.freertos.Disabled.build.flags.freertos= +generic.menu.freertos.Enabled=Enabled +generic.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Generic RP2040 (Picoprobe) @@ -11234,6 +11515,10 @@ genericpicoprobe.menu.boot2.boot2_w25x10cl_2_padded_checksum=W25X10CL QSPI /2 genericpicoprobe.menu.boot2.boot2_w25x10cl_2_padded_checksum.build.boot2=boot2_w25x10cl_2_padded_checksum genericpicoprobe.menu.boot2.boot2_w25x10cl_4_padded_checksum=W25X10CL QSPI /4 genericpicoprobe.menu.boot2.boot2_w25x10cl_4_padded_checksum.build.boot2=boot2_w25x10cl_4_padded_checksum +genericpicoprobe.menu.freertos.Disabled=Disabled +genericpicoprobe.menu.freertos.Disabled.build.flags.freertos= +genericpicoprobe.menu.freertos.Enabled=Enabled +genericpicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Generic RP2040 (pico-debug) @@ -11387,3 +11672,7 @@ genericpicodebug.menu.boot2.boot2_w25x10cl_2_padded_checksum=W25X10CL QSPI /2 genericpicodebug.menu.boot2.boot2_w25x10cl_2_padded_checksum.build.boot2=boot2_w25x10cl_2_padded_checksum genericpicodebug.menu.boot2.boot2_w25x10cl_4_padded_checksum=W25X10CL QSPI /4 genericpicodebug.menu.boot2.boot2_w25x10cl_4_padded_checksum.build.boot2=boot2_w25x10cl_4_padded_checksum +genericpicodebug.menu.freertos.Disabled=Disabled +genericpicodebug.menu.freertos.Disabled.build.flags.freertos= +genericpicodebug.menu.freertos.Enabled=Enabled +genericpicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS diff --git a/cores/rp2040/Bootsel.cpp b/cores/rp2040/Bootsel.cpp index fea2c6ae..23ced431 100644 --- a/cores/rp2040/Bootsel.cpp +++ b/cores/rp2040/Bootsel.cpp @@ -26,8 +26,12 @@ static bool __no_inline_not_in_flash_func(get_bootsel_button)() { // Must disable interrupts, as interrupt handlers may be in flash, and we // are about to temporarily disable flash access! - noInterrupts(); - rp2040.idleOtherCore(); +#ifndef USE_FREERTOS + noInterrupts(); + rp2040.idleOtherCore(); +#else + return false; // There is no simple way of supporting this function with FreeRTOS running +#endif // Set chip select to Hi-Z hw_write_masked(&ioqspi_hw->io[CS_PIN_INDEX].ctrl, @@ -47,8 +51,10 @@ static bool __no_inline_not_in_flash_func(get_bootsel_button)() { GPIO_OVERRIDE_NORMAL << IO_QSPI_GPIO_QSPI_SS_CTRL_OEOVER_LSB, IO_QSPI_GPIO_QSPI_SS_CTRL_OEOVER_BITS); - interrupts(); - rp2040.resumeOtherCore(); +#ifndef USE_FREERTOS + interrupts(); + rp2040.resumeOtherCore(); +#endif return button_state; } diff --git a/cores/rp2040/RP2040Support.h b/cores/rp2040/RP2040Support.h index 874ae7d7..295a2c42 100644 --- a/cores/rp2040/RP2040Support.h +++ b/cores/rp2040/RP2040Support.h @@ -25,7 +25,9 @@ #include #include #include -#include +#include "CoreMutex.h" + +#ifndef USE_FREERTOS class _MFIFO { public: @@ -132,18 +134,21 @@ class RP2040; extern RP2040 rp2040; extern "C" void main1(); +#endif + class RP2040 { public: +#ifndef USE_FREERTOS RP2040() { _epoch = 0; - // Enable SYSTICK exception - exception_set_exclusive_handler(SYSTICK_EXCEPTION, _SystickHandler); - systick_hw->csr = 0x7; - systick_hw->rvr = 0x00FFFFFF; + // Enable SYSTICK exception + exception_set_exclusive_handler(SYSTICK_EXCEPTION, _SystickHandler); + systick_hw->csr = 0x7; + systick_hw->rvr = 0x00FFFFFF; } ~RP2040() { /* noop */ } - +#endif // Convert from microseconds to PIO clock cycles static int usToPIOCycles(int us) { @@ -156,6 +161,7 @@ public: return clock_get_hz(clk_sys); } +#ifndef USE_FREERTOS // Get CPU cycle count. Needs to do magic to extens 24b HW to something longer volatile uint64_t _epoch = 0; inline uint32_t getCycleCount() { @@ -199,6 +205,7 @@ private: static void _SystickHandler() { rp2040._epoch += 1LL << 24; } +#endif }; // Wrapper class for PIO programs, abstracting common operations out @@ -254,4 +261,3 @@ private: int _offset[2] = { -1, -1 }; const pio_program_t *_pgm; }; - diff --git a/cores/rp2040/main.cpp b/cores/rp2040/main.cpp index 960a297c..cb4d2a58 100644 --- a/cores/rp2040/main.cpp +++ b/cores/rp2040/main.cpp @@ -23,26 +23,33 @@ #include #include +#ifndef USE_FREERTOS RP2040 rp2040; volatile bool _MFIFO::_otherIdled = false; +#endif + mutex_t _pioMutex; extern void setup(); extern void loop(); +#ifdef USE_FREERTOS +void initFreeRTOS(); +void startFreeRTOS(); +#endif // Weak empty variant initialization. May be redefined by variant files. void initVariant() __attribute__((weak)); void initVariant() { } - +#ifndef USE_FREERTOS // Optional 2nd core setup and loop extern void setup1() __attribute__((weak)); extern void loop1() __attribute__((weak)); extern "C" void main1() { - rp2040.fifo.registerCore(); + rp2040.fifo.registerCore(); if (setup1) { setup1(); } @@ -52,6 +59,24 @@ extern "C" void main1() { } } } +#endif + +extern void __loop() +{ +#ifdef USE_TINYUSB + yield(); +#endif + + if (arduino::serialEventRun) { + arduino::serialEventRun(); + } + if (arduino::serialEvent1Run) { + arduino::serialEvent1Run(); + } + if (arduino::serialEvent2Run) { + arduino::serialEvent2Run(); + } +} extern "C" int main() { #if F_CPU != 125000000 @@ -61,16 +86,20 @@ extern "C" int main() { mutex_init(&_pioMutex); initVariant(); +#ifdef USE_FREERTOS + initFreeRTOS(); +#endif + #ifndef NO_USB #ifdef USE_TINYUSB - TinyUSB_Device_Init(0); + TinyUSB_Device_Init(0); #else - __USBStart(); + __USBStart(); #ifndef DISABLE_USB_SERIAL - // Enable serial port for reset/upload always - Serial.begin(115200); + // Enable serial port for reset/upload always + Serial.begin(115200); #endif #endif #endif @@ -79,33 +108,27 @@ extern "C" int main() { DEBUG_RP2040_PORT.begin(115200); #endif +#ifndef USE_FREERTOS #ifndef NO_USB - if (setup1 || loop1) { - rp2040.fifo.begin(2); - multicore_launch_core1(main1); - } else { - rp2040.fifo.begin(1); - } - rp2040.fifo.registerCore(); + if (setup1 || loop1) { + rp2040.fifo.begin(2); + multicore_launch_core1(main1); + } else { + rp2040.fifo.begin(1); + } + rp2040.fifo.registerCore(); +#endif #endif setup(); - while (true) { - loop(); - -#ifdef USE_TINYUSB - yield(); + +#ifndef USE_FREERTOS + while (true) { + loop(); + __loop(); + } +#else + startFreeRTOS(); #endif - - if (arduino::serialEventRun) { - arduino::serialEventRun(); - } - if (arduino::serialEvent1Run) { - arduino::serialEvent1Run(); - } - if (arduino::serialEvent2Run) { - arduino::serialEvent2Run(); - } - } - return 0; + return 0; } diff --git a/libraries/EEPROM/EEPROM.cpp b/libraries/EEPROM/EEPROM.cpp index 95e7d0c1..006009ff 100644 --- a/libraries/EEPROM/EEPROM.cpp +++ b/libraries/EEPROM/EEPROM.cpp @@ -116,12 +116,16 @@ bool EEPROMClass::commit() { return false; } - noInterrupts(); - rp2040.idleOtherCore(); +#ifndef USE_FREERTOS + noInterrupts(); + rp2040.idleOtherCore(); +#endif flash_range_erase((intptr_t)_sector - (intptr_t)XIP_BASE, 4096); flash_range_program((intptr_t)_sector - (intptr_t)XIP_BASE, _data, _size); - rp2040.resumeOtherCore(); - interrupts(); +#ifndef USE_FREERTOS + rp2040.resumeOtherCore(); + interrupts(); +#endif return true; } diff --git a/libraries/FreeRTOS b/libraries/FreeRTOS new file mode 160000 index 00000000..c969c593 --- /dev/null +++ b/libraries/FreeRTOS @@ -0,0 +1 @@ +Subproject commit c969c593e6b437b75a9ba6e9a438af1960bcb979 diff --git a/libraries/LittleFS/src/LittleFS.cpp b/libraries/LittleFS/src/LittleFS.cpp index a6299da3..74c91ea6 100644 --- a/libraries/LittleFS/src/LittleFS.cpp +++ b/libraries/LittleFS/src/LittleFS.cpp @@ -182,12 +182,16 @@ int LittleFSImpl::lfs_flash_prog(const struct lfs_config *c, lfs_block_t block, lfs_off_t off, const void *buffer, lfs_size_t size) { LittleFSImpl *me = reinterpret_cast(c->context); uint8_t *addr = me->_start + (block * me->_blockSize) + off; - noInterrupts(); - rp2040.idleOtherCore(); +#ifndef USE_FREERTOS + noInterrupts(); + rp2040.idleOtherCore(); +#endif // Serial.printf("WRITE: %p, $d\n", (intptr_t)addr - (intptr_t)XIP_BASE, size); flash_range_program((intptr_t)addr - (intptr_t)XIP_BASE, (const uint8_t *)buffer, size); - rp2040.resumeOtherCore(); - interrupts(); +#ifndef USE_FREERTOS + rp2040.resumeOtherCore(); + interrupts(); +#endif return 0; } @@ -195,11 +199,15 @@ int LittleFSImpl::lfs_flash_erase(const struct lfs_config *c, lfs_block_t block) LittleFSImpl *me = reinterpret_cast(c->context); uint8_t *addr = me->_start + (block * me->_blockSize); // Serial.printf("ERASE: %p, %d\n", (intptr_t)addr - (intptr_t)XIP_BASE, me->_blockSize); - noInterrupts(); - rp2040.idleOtherCore(); +#ifndef USE_FREERTOS + noInterrupts(); + rp2040.idleOtherCore(); +#endif flash_range_erase((intptr_t)addr - (intptr_t)XIP_BASE, me->_blockSize); - rp2040.resumeOtherCore(); - interrupts(); +#ifndef USE_FREERTOS + rp2040.resumeOtherCore(); + interrupts(); +#endif return 0; } diff --git a/platform.txt b/platform.txt index aec9c3b2..29c8df08 100644 --- a/platform.txt +++ b/platform.txt @@ -49,13 +49,13 @@ compiler.libpico="{runtime.platform.path}/lib/libpico.a" compiler.libstdcpp="-lstdc++" compiler.c.cmd=arm-none-eabi-gcc -compiler.c.flags=-c {compiler.warning_flags} {compiler.defines} {compiler.flags} {compiler.includes} -std=gnu17 -g +compiler.c.flags=-c {compiler.warning_flags} {compiler.defines} {compiler.flags} {compiler.includes} {build.flags.freertos} -std=gnu17 -g compiler.c.elf.cmd=arm-none-eabi-g++ compiler.c.elf.flags={compiler.warning_flags} {compiler.defines} {compiler.flags} {build.flags.optimize} -u _printf_float -u _scanf_float compiler.S.cmd=arm-none-eabi-gcc compiler.S.flags=-c {compiler.warning_flags} -g -x assembler-with-cpp -MMD {compiler.includes} -g compiler.cpp.cmd=arm-none-eabi-g++ -compiler.cpp.flags=-c {compiler.warning_flags} {compiler.defines} {compiler.flags} {compiler.includes} {build.flags.rtti} -std=gnu++17 -g +compiler.cpp.flags=-c {compiler.warning_flags} {compiler.defines} {compiler.flags} {compiler.includes} {build.flags.rtti} {build.flags.freertos} -std=gnu++17 -g compiler.ar.cmd=arm-none-eabi-ar compiler.ar.flags=rcs diff --git a/tools/makeboards.py b/tools/makeboards.py index a887e325..3c556d83 100755 --- a/tools/makeboards.py +++ b/tools/makeboards.py @@ -64,6 +64,13 @@ def BuildUSBStack(name): print("%s.menu.usbstack.tinyusb=Adafruit TinyUSB" % (name)) print('%s.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino"' % (name)) +def BuildFreeRTOS(name): + print("%s.menu.freertos.Disabled=Disabled" % (name)) + print("%s.menu.freertos.Disabled.build.flags.freertos=" % (name)) + print("%s.menu.freertos.Enabled=Enabled" % (name)) + print("%s.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS" % (name)) + + def BuildWithoutUSBStack(name): print("%s.menu.usbstack.nousb=No USB" % (name)) print('%s.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico"' % (name)) @@ -116,6 +123,7 @@ def BuildGlobalMenuList(): print("menu.dbglvl=Debug Level") print("menu.boot2=Boot Stage 2") print("menu.usbstack=USB Stack") + print("menu.freertos=Use FreeRTOS") def MakeBoard(name, vendor_name, product_name, vid, pid, pwr, boarddefine, flashsizemb, boot2): @@ -154,6 +162,7 @@ def MakeBoard(name, vendor_name, product_name, vid, pid, pwr, boarddefine, flash BuildUSBStack(n) if name == "generic": BuildBoot(n) + BuildFreeRTOS(n) MakeBoardJSON(name, vendor_name, product_name, vid, pid, pwr, boarddefine, flashsizemb, boot2) def MakeBoardJSON(name, vendor_name, product_name, vid, pid, pwr, boarddefine, flashsizemb, boot2): -- 2.54.0 From a7d68e422278ce0a7161b45d52bcf6543aa22209 Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Sat, 9 Apr 2022 11:41:58 -0700 Subject: [PATCH 02/22] Clean up formatting to pass CI --- cores/rp2040/Bootsel.cpp | 10 ++--- cores/rp2040/RP2040Support.h | 8 ++-- cores/rp2040/main.cpp | 63 ++++++++++++++--------------- libraries/EEPROM/EEPROM.cpp | 8 ++-- libraries/LittleFS/src/LittleFS.cpp | 16 ++++---- 5 files changed, 52 insertions(+), 53 deletions(-) diff --git a/cores/rp2040/Bootsel.cpp b/cores/rp2040/Bootsel.cpp index 23ced431..57ee073d 100644 --- a/cores/rp2040/Bootsel.cpp +++ b/cores/rp2040/Bootsel.cpp @@ -27,10 +27,10 @@ static bool __no_inline_not_in_flash_func(get_bootsel_button)() { // Must disable interrupts, as interrupt handlers may be in flash, and we // are about to temporarily disable flash access! #ifndef USE_FREERTOS - noInterrupts(); - rp2040.idleOtherCore(); + noInterrupts(); + rp2040.idleOtherCore(); #else - return false; // There is no simple way of supporting this function with FreeRTOS running + return false; // There is no simple way of supporting this function with FreeRTOS running #endif // Set chip select to Hi-Z @@ -52,8 +52,8 @@ static bool __no_inline_not_in_flash_func(get_bootsel_button)() { IO_QSPI_GPIO_QSPI_SS_CTRL_OEOVER_BITS); #ifndef USE_FREERTOS - interrupts(); - rp2040.resumeOtherCore(); + interrupts(); + rp2040.resumeOtherCore(); #endif return button_state; diff --git a/cores/rp2040/RP2040Support.h b/cores/rp2040/RP2040Support.h index 295a2c42..e62312d6 100644 --- a/cores/rp2040/RP2040Support.h +++ b/cores/rp2040/RP2040Support.h @@ -141,10 +141,10 @@ public: #ifndef USE_FREERTOS RP2040() { _epoch = 0; - // Enable SYSTICK exception - exception_set_exclusive_handler(SYSTICK_EXCEPTION, _SystickHandler); - systick_hw->csr = 0x7; - systick_hw->rvr = 0x00FFFFFF; + // Enable SYSTICK exception + exception_set_exclusive_handler(SYSTICK_EXCEPTION, _SystickHandler); + systick_hw->csr = 0x7; + systick_hw->rvr = 0x00FFFFFF; } ~RP2040() { /* noop */ } diff --git a/cores/rp2040/main.cpp b/cores/rp2040/main.cpp index cb4d2a58..1d997fd4 100644 --- a/cores/rp2040/main.cpp +++ b/cores/rp2040/main.cpp @@ -49,7 +49,7 @@ void initVariant() { } extern void setup1() __attribute__((weak)); extern void loop1() __attribute__((weak)); extern "C" void main1() { - rp2040.fifo.registerCore(); + rp2040.fifo.registerCore(); if (setup1) { setup1(); } @@ -61,21 +61,20 @@ extern "C" void main1() { } #endif -extern void __loop() -{ +extern void __loop() { #ifdef USE_TINYUSB - yield(); + yield(); #endif - if (arduino::serialEventRun) { - arduino::serialEventRun(); - } - if (arduino::serialEvent1Run) { - arduino::serialEvent1Run(); - } - if (arduino::serialEvent2Run) { - arduino::serialEvent2Run(); - } + if (arduino::serialEventRun) { + arduino::serialEventRun(); + } + if (arduino::serialEvent1Run) { + arduino::serialEvent1Run(); + } + if (arduino::serialEvent2Run) { + arduino::serialEvent2Run(); + } } extern "C" int main() { @@ -87,19 +86,19 @@ extern "C" int main() { initVariant(); #ifdef USE_FREERTOS - initFreeRTOS(); + initFreeRTOS(); #endif #ifndef NO_USB #ifdef USE_TINYUSB - TinyUSB_Device_Init(0); + TinyUSB_Device_Init(0); #else - __USBStart(); + __USBStart(); #ifndef DISABLE_USB_SERIAL - // Enable serial port for reset/upload always - Serial.begin(115200); + // Enable serial port for reset/upload always + Serial.begin(115200); #endif #endif #endif @@ -110,25 +109,25 @@ extern "C" int main() { #ifndef USE_FREERTOS #ifndef NO_USB - if (setup1 || loop1) { - rp2040.fifo.begin(2); - multicore_launch_core1(main1); - } else { - rp2040.fifo.begin(1); - } - rp2040.fifo.registerCore(); + if (setup1 || loop1) { + rp2040.fifo.begin(2); + multicore_launch_core1(main1); + } else { + rp2040.fifo.begin(1); + } + rp2040.fifo.registerCore(); #endif #endif setup(); - + #ifndef USE_FREERTOS - while (true) { - loop(); - __loop(); - } + while (true) { + loop(); + __loop(); + } #else - startFreeRTOS(); + startFreeRTOS(); #endif - return 0; + return 0; } diff --git a/libraries/EEPROM/EEPROM.cpp b/libraries/EEPROM/EEPROM.cpp index 006009ff..c5bc8b1d 100644 --- a/libraries/EEPROM/EEPROM.cpp +++ b/libraries/EEPROM/EEPROM.cpp @@ -117,14 +117,14 @@ bool EEPROMClass::commit() { } #ifndef USE_FREERTOS - noInterrupts(); - rp2040.idleOtherCore(); + noInterrupts(); + rp2040.idleOtherCore(); #endif flash_range_erase((intptr_t)_sector - (intptr_t)XIP_BASE, 4096); flash_range_program((intptr_t)_sector - (intptr_t)XIP_BASE, _data, _size); #ifndef USE_FREERTOS - rp2040.resumeOtherCore(); - interrupts(); + rp2040.resumeOtherCore(); + interrupts(); #endif return true; diff --git a/libraries/LittleFS/src/LittleFS.cpp b/libraries/LittleFS/src/LittleFS.cpp index 74c91ea6..6a9fad04 100644 --- a/libraries/LittleFS/src/LittleFS.cpp +++ b/libraries/LittleFS/src/LittleFS.cpp @@ -183,14 +183,14 @@ int LittleFSImpl::lfs_flash_prog(const struct lfs_config *c, LittleFSImpl *me = reinterpret_cast(c->context); uint8_t *addr = me->_start + (block * me->_blockSize) + off; #ifndef USE_FREERTOS - noInterrupts(); - rp2040.idleOtherCore(); + noInterrupts(); + rp2040.idleOtherCore(); #endif // Serial.printf("WRITE: %p, $d\n", (intptr_t)addr - (intptr_t)XIP_BASE, size); flash_range_program((intptr_t)addr - (intptr_t)XIP_BASE, (const uint8_t *)buffer, size); #ifndef USE_FREERTOS - rp2040.resumeOtherCore(); - interrupts(); + rp2040.resumeOtherCore(); + interrupts(); #endif return 0; } @@ -200,13 +200,13 @@ int LittleFSImpl::lfs_flash_erase(const struct lfs_config *c, lfs_block_t block) uint8_t *addr = me->_start + (block * me->_blockSize); // Serial.printf("ERASE: %p, %d\n", (intptr_t)addr - (intptr_t)XIP_BASE, me->_blockSize); #ifndef USE_FREERTOS - noInterrupts(); - rp2040.idleOtherCore(); + noInterrupts(); + rp2040.idleOtherCore(); #endif flash_range_erase((intptr_t)addr - (intptr_t)XIP_BASE, me->_blockSize); #ifndef USE_FREERTOS - rp2040.resumeOtherCore(); - interrupts(); + rp2040.resumeOtherCore(); + interrupts(); #endif return 0; } -- 2.54.0 From 2a58e2e08a7ac85f52118944d38c6d6aab7ee657 Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Tue, 12 Apr 2022 12:08:12 -0700 Subject: [PATCH 03/22] Make delay a weak function so FreeRTOS can override --- cores/rp2040/delay.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cores/rp2040/delay.cpp b/cores/rp2040/delay.cpp index 3e9dc1bf..769aa231 100644 --- a/cores/rp2040/delay.cpp +++ b/cores/rp2040/delay.cpp @@ -25,6 +25,8 @@ #include "Adafruit_TinyUSB_API.h" #endif +extern "C" void delay(unsigned long ms) __attribute__((weak)); + extern "C" { -- 2.54.0 From 10d984e0321e84193bab50e1b09a024097454a10 Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Thu, 14 Apr 2022 08:45:15 -0700 Subject: [PATCH 04/22] Hack back idleOtherCore support --- cores/rp2040/Bootsel.cpp | 6 ------ cores/rp2040/RP2040Support.h | 6 +++++- cores/rp2040/wiring_private.cpp | 6 ++++++ libraries/EEPROM/EEPROM.cpp | 4 ---- libraries/LittleFS/src/LittleFS.cpp | 8 -------- 5 files changed, 11 insertions(+), 19 deletions(-) diff --git a/cores/rp2040/Bootsel.cpp b/cores/rp2040/Bootsel.cpp index 57ee073d..fea2c6ae 100644 --- a/cores/rp2040/Bootsel.cpp +++ b/cores/rp2040/Bootsel.cpp @@ -26,12 +26,8 @@ static bool __no_inline_not_in_flash_func(get_bootsel_button)() { // Must disable interrupts, as interrupt handlers may be in flash, and we // are about to temporarily disable flash access! -#ifndef USE_FREERTOS noInterrupts(); rp2040.idleOtherCore(); -#else - return false; // There is no simple way of supporting this function with FreeRTOS running -#endif // Set chip select to Hi-Z hw_write_masked(&ioqspi_hw->io[CS_PIN_INDEX].ctrl, @@ -51,10 +47,8 @@ static bool __no_inline_not_in_flash_func(get_bootsel_button)() { GPIO_OVERRIDE_NORMAL << IO_QSPI_GPIO_QSPI_SS_CTRL_OEOVER_LSB, IO_QSPI_GPIO_QSPI_SS_CTRL_OEOVER_BITS); -#ifndef USE_FREERTOS interrupts(); rp2040.resumeOtherCore(); -#endif return button_state; } diff --git a/cores/rp2040/RP2040Support.h b/cores/rp2040/RP2040Support.h index e62312d6..9b870331 100644 --- a/cores/rp2040/RP2040Support.h +++ b/cores/rp2040/RP2040Support.h @@ -47,9 +47,13 @@ public: } void registerCore() { +#ifndef USE_FREERTOS multicore_fifo_clear_irq(); irq_set_exclusive_handler(SIO_IRQ_PROC0 + get_core_num(), _irq); irq_set_enabled(SIO_IRQ_PROC0 + get_core_num(), true); +#else + // FreeRTOS port.c will axtuall handle the IRQ hooking +#endif } void push(uint32_t val) { @@ -127,7 +131,7 @@ private: static volatile bool _otherIdled; queue_t _queue[2]; - static constexpr int _GOTOSLEEP = 0x66666666; + static constexpr int _GOTOSLEEP = 0xC0DED02E; }; class RP2040; diff --git a/cores/rp2040/wiring_private.cpp b/cores/rp2040/wiring_private.cpp index 8d18d2b3..61554751 100644 --- a/cores/rp2040/wiring_private.cpp +++ b/cores/rp2040/wiring_private.cpp @@ -36,10 +36,16 @@ extern "C" void interrupts() { auto oldIrqs = _irqStack[get_core_num()].top(); _irqStack[get_core_num()].pop(); restore_interrupts(oldIrqs); +#ifdef USE_FREERTOS + portENABLE_INTERRUPTS(); +#endif } extern "C" void noInterrupts() { _irqStack[get_core_num()].push(save_and_disable_interrupts()); +#ifdef USE_FREERTOS + portDISABLE_INTERRUPTS(); +#endif } // Only 1 GPIO IRQ callback for all pins, so we need to look at the pin it's for and diff --git a/libraries/EEPROM/EEPROM.cpp b/libraries/EEPROM/EEPROM.cpp index c5bc8b1d..95e7d0c1 100644 --- a/libraries/EEPROM/EEPROM.cpp +++ b/libraries/EEPROM/EEPROM.cpp @@ -116,16 +116,12 @@ bool EEPROMClass::commit() { return false; } -#ifndef USE_FREERTOS noInterrupts(); rp2040.idleOtherCore(); -#endif flash_range_erase((intptr_t)_sector - (intptr_t)XIP_BASE, 4096); flash_range_program((intptr_t)_sector - (intptr_t)XIP_BASE, _data, _size); -#ifndef USE_FREERTOS rp2040.resumeOtherCore(); interrupts(); -#endif return true; } diff --git a/libraries/LittleFS/src/LittleFS.cpp b/libraries/LittleFS/src/LittleFS.cpp index 6a9fad04..a6299da3 100644 --- a/libraries/LittleFS/src/LittleFS.cpp +++ b/libraries/LittleFS/src/LittleFS.cpp @@ -182,16 +182,12 @@ int LittleFSImpl::lfs_flash_prog(const struct lfs_config *c, lfs_block_t block, lfs_off_t off, const void *buffer, lfs_size_t size) { LittleFSImpl *me = reinterpret_cast(c->context); uint8_t *addr = me->_start + (block * me->_blockSize) + off; -#ifndef USE_FREERTOS noInterrupts(); rp2040.idleOtherCore(); -#endif // Serial.printf("WRITE: %p, $d\n", (intptr_t)addr - (intptr_t)XIP_BASE, size); flash_range_program((intptr_t)addr - (intptr_t)XIP_BASE, (const uint8_t *)buffer, size); -#ifndef USE_FREERTOS rp2040.resumeOtherCore(); interrupts(); -#endif return 0; } @@ -199,15 +195,11 @@ int LittleFSImpl::lfs_flash_erase(const struct lfs_config *c, lfs_block_t block) LittleFSImpl *me = reinterpret_cast(c->context); uint8_t *addr = me->_start + (block * me->_blockSize); // Serial.printf("ERASE: %p, %d\n", (intptr_t)addr - (intptr_t)XIP_BASE, me->_blockSize); -#ifndef USE_FREERTOS noInterrupts(); rp2040.idleOtherCore(); -#endif flash_range_erase((intptr_t)addr - (intptr_t)XIP_BASE, me->_blockSize); -#ifndef USE_FREERTOS rp2040.resumeOtherCore(); interrupts(); -#endif return 0; } -- 2.54.0 From 06136a2567e656a4779818afd00ea33db1f61547 Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Sat, 16 Apr 2022 10:35:23 -0700 Subject: [PATCH 05/22] No need for ifdefs --- boards.txt | 289 -------------------------------- cores/rp2040/RP2040Support.h | 56 ++++--- cores/rp2040/delay.cpp | 1 + cores/rp2040/main.cpp | 58 +++---- cores/rp2040/wiring_private.cpp | 18 +- libraries/FreeRTOS | 2 +- platform.txt | 4 +- tools/makeboards.py | 9 - 8 files changed, 75 insertions(+), 362 deletions(-) diff --git a/boards.txt b/boards.txt index 95b102fa..f6c0dd14 100644 --- a/boards.txt +++ b/boards.txt @@ -11,7 +11,6 @@ menu.dbgport=Debug Port menu.dbglvl=Debug Level menu.boot2=Boot Stage 2 menu.usbstack=USB Stack -menu.freertos=Use FreeRTOS # ----------------------------------- # Raspberry Pi Pico @@ -139,10 +138,6 @@ rpipico.menu.usbstack.picosdk=Pico SDK rpipico.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" rpipico.menu.usbstack.tinyusb=Adafruit TinyUSB rpipico.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -rpipico.menu.freertos.Disabled=Disabled -rpipico.menu.freertos.Disabled.build.flags.freertos= -rpipico.menu.freertos.Enabled=Enabled -rpipico.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Raspberry Pi Pico (Picoprobe) @@ -270,10 +265,6 @@ rpipicopicoprobe.menu.usbstack.picosdk=Pico SDK rpipicopicoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" rpipicopicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB rpipicopicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -rpipicopicoprobe.menu.freertos.Disabled=Disabled -rpipicopicoprobe.menu.freertos.Disabled.build.flags.freertos= -rpipicopicoprobe.menu.freertos.Enabled=Enabled -rpipicopicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Raspberry Pi Pico (pico-debug) @@ -399,10 +390,6 @@ rpipicopicodebug.menu.dbglvl.NDEBUG=NDEBUG rpipicopicodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG rpipicopicodebug.menu.usbstack.nousb=No USB rpipicopicodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" -rpipicopicodebug.menu.freertos.Disabled=Disabled -rpipicopicodebug.menu.freertos.Disabled.build.flags.freertos= -rpipicopicodebug.menu.freertos.Enabled=Enabled -rpipicopicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit Feather RP2040 @@ -566,10 +553,6 @@ adafruit_feather.menu.usbstack.picosdk=Pico SDK adafruit_feather.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" adafruit_feather.menu.usbstack.tinyusb=Adafruit TinyUSB adafruit_feather.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -adafruit_feather.menu.freertos.Disabled=Disabled -adafruit_feather.menu.freertos.Disabled.build.flags.freertos= -adafruit_feather.menu.freertos.Enabled=Enabled -adafruit_feather.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit Feather RP2040 (Picoprobe) @@ -733,10 +716,6 @@ adafruit_featherpicoprobe.menu.usbstack.picosdk=Pico SDK adafruit_featherpicoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" adafruit_featherpicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB adafruit_featherpicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -adafruit_featherpicoprobe.menu.freertos.Disabled=Disabled -adafruit_featherpicoprobe.menu.freertos.Disabled.build.flags.freertos= -adafruit_featherpicoprobe.menu.freertos.Enabled=Enabled -adafruit_featherpicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit Feather RP2040 (pico-debug) @@ -898,10 +877,6 @@ adafruit_featherpicodebug.menu.dbglvl.NDEBUG=NDEBUG adafruit_featherpicodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG adafruit_featherpicodebug.menu.usbstack.nousb=No USB adafruit_featherpicodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" -adafruit_featherpicodebug.menu.freertos.Disabled=Disabled -adafruit_featherpicodebug.menu.freertos.Disabled.build.flags.freertos= -adafruit_featherpicodebug.menu.freertos.Enabled=Enabled -adafruit_featherpicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit ItsyBitsy RP2040 @@ -1065,10 +1040,6 @@ adafruit_itsybitsy.menu.usbstack.picosdk=Pico SDK adafruit_itsybitsy.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" adafruit_itsybitsy.menu.usbstack.tinyusb=Adafruit TinyUSB adafruit_itsybitsy.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -adafruit_itsybitsy.menu.freertos.Disabled=Disabled -adafruit_itsybitsy.menu.freertos.Disabled.build.flags.freertos= -adafruit_itsybitsy.menu.freertos.Enabled=Enabled -adafruit_itsybitsy.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit ItsyBitsy RP2040 (Picoprobe) @@ -1232,10 +1203,6 @@ adafruit_itsybitsypicoprobe.menu.usbstack.picosdk=Pico SDK adafruit_itsybitsypicoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" adafruit_itsybitsypicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB adafruit_itsybitsypicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -adafruit_itsybitsypicoprobe.menu.freertos.Disabled=Disabled -adafruit_itsybitsypicoprobe.menu.freertos.Disabled.build.flags.freertos= -adafruit_itsybitsypicoprobe.menu.freertos.Enabled=Enabled -adafruit_itsybitsypicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit ItsyBitsy RP2040 (pico-debug) @@ -1397,10 +1364,6 @@ adafruit_itsybitsypicodebug.menu.dbglvl.NDEBUG=NDEBUG adafruit_itsybitsypicodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG adafruit_itsybitsypicodebug.menu.usbstack.nousb=No USB adafruit_itsybitsypicodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" -adafruit_itsybitsypicodebug.menu.freertos.Disabled=Disabled -adafruit_itsybitsypicodebug.menu.freertos.Disabled.build.flags.freertos= -adafruit_itsybitsypicodebug.menu.freertos.Enabled=Enabled -adafruit_itsybitsypicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit QT Py RP2040 @@ -1564,10 +1527,6 @@ adafruit_qtpy.menu.usbstack.picosdk=Pico SDK adafruit_qtpy.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" adafruit_qtpy.menu.usbstack.tinyusb=Adafruit TinyUSB adafruit_qtpy.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -adafruit_qtpy.menu.freertos.Disabled=Disabled -adafruit_qtpy.menu.freertos.Disabled.build.flags.freertos= -adafruit_qtpy.menu.freertos.Enabled=Enabled -adafruit_qtpy.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit QT Py RP2040 (Picoprobe) @@ -1731,10 +1690,6 @@ adafruit_qtpypicoprobe.menu.usbstack.picosdk=Pico SDK adafruit_qtpypicoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" adafruit_qtpypicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB adafruit_qtpypicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -adafruit_qtpypicoprobe.menu.freertos.Disabled=Disabled -adafruit_qtpypicoprobe.menu.freertos.Disabled.build.flags.freertos= -adafruit_qtpypicoprobe.menu.freertos.Enabled=Enabled -adafruit_qtpypicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit QT Py RP2040 (pico-debug) @@ -1896,10 +1851,6 @@ adafruit_qtpypicodebug.menu.dbglvl.NDEBUG=NDEBUG adafruit_qtpypicodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG adafruit_qtpypicodebug.menu.usbstack.nousb=No USB adafruit_qtpypicodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" -adafruit_qtpypicodebug.menu.freertos.Disabled=Disabled -adafruit_qtpypicodebug.menu.freertos.Disabled.build.flags.freertos= -adafruit_qtpypicodebug.menu.freertos.Enabled=Enabled -adafruit_qtpypicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit STEMMA Friend RP2040 @@ -2063,10 +2014,6 @@ adafruit_stemmafriend.menu.usbstack.picosdk=Pico SDK adafruit_stemmafriend.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" adafruit_stemmafriend.menu.usbstack.tinyusb=Adafruit TinyUSB adafruit_stemmafriend.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -adafruit_stemmafriend.menu.freertos.Disabled=Disabled -adafruit_stemmafriend.menu.freertos.Disabled.build.flags.freertos= -adafruit_stemmafriend.menu.freertos.Enabled=Enabled -adafruit_stemmafriend.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit STEMMA Friend RP2040 (Picoprobe) @@ -2230,10 +2177,6 @@ adafruit_stemmafriendpicoprobe.menu.usbstack.picosdk=Pico SDK adafruit_stemmafriendpicoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" adafruit_stemmafriendpicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB adafruit_stemmafriendpicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -adafruit_stemmafriendpicoprobe.menu.freertos.Disabled=Disabled -adafruit_stemmafriendpicoprobe.menu.freertos.Disabled.build.flags.freertos= -adafruit_stemmafriendpicoprobe.menu.freertos.Enabled=Enabled -adafruit_stemmafriendpicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit STEMMA Friend RP2040 (pico-debug) @@ -2395,10 +2338,6 @@ adafruit_stemmafriendpicodebug.menu.dbglvl.NDEBUG=NDEBUG adafruit_stemmafriendpicodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG adafruit_stemmafriendpicodebug.menu.usbstack.nousb=No USB adafruit_stemmafriendpicodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" -adafruit_stemmafriendpicodebug.menu.freertos.Disabled=Disabled -adafruit_stemmafriendpicodebug.menu.freertos.Disabled.build.flags.freertos= -adafruit_stemmafriendpicodebug.menu.freertos.Enabled=Enabled -adafruit_stemmafriendpicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit Trinkey RP2040 QT @@ -2562,10 +2501,6 @@ adafruit_trinkeyrp2040qt.menu.usbstack.picosdk=Pico SDK adafruit_trinkeyrp2040qt.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" adafruit_trinkeyrp2040qt.menu.usbstack.tinyusb=Adafruit TinyUSB adafruit_trinkeyrp2040qt.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -adafruit_trinkeyrp2040qt.menu.freertos.Disabled=Disabled -adafruit_trinkeyrp2040qt.menu.freertos.Disabled.build.flags.freertos= -adafruit_trinkeyrp2040qt.menu.freertos.Enabled=Enabled -adafruit_trinkeyrp2040qt.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit Trinkey RP2040 QT (Picoprobe) @@ -2729,10 +2664,6 @@ adafruit_trinkeyrp2040qtpicoprobe.menu.usbstack.picosdk=Pico SDK adafruit_trinkeyrp2040qtpicoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" adafruit_trinkeyrp2040qtpicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB adafruit_trinkeyrp2040qtpicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -adafruit_trinkeyrp2040qtpicoprobe.menu.freertos.Disabled=Disabled -adafruit_trinkeyrp2040qtpicoprobe.menu.freertos.Disabled.build.flags.freertos= -adafruit_trinkeyrp2040qtpicoprobe.menu.freertos.Enabled=Enabled -adafruit_trinkeyrp2040qtpicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit Trinkey RP2040 QT (pico-debug) @@ -2894,10 +2825,6 @@ adafruit_trinkeyrp2040qtpicodebug.menu.dbglvl.NDEBUG=NDEBUG adafruit_trinkeyrp2040qtpicodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG adafruit_trinkeyrp2040qtpicodebug.menu.usbstack.nousb=No USB adafruit_trinkeyrp2040qtpicodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" -adafruit_trinkeyrp2040qtpicodebug.menu.freertos.Disabled=Disabled -adafruit_trinkeyrp2040qtpicodebug.menu.freertos.Disabled.build.flags.freertos= -adafruit_trinkeyrp2040qtpicodebug.menu.freertos.Enabled=Enabled -adafruit_trinkeyrp2040qtpicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit MacroPad RP2040 @@ -3061,10 +2988,6 @@ adafruit_macropad2040.menu.usbstack.picosdk=Pico SDK adafruit_macropad2040.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" adafruit_macropad2040.menu.usbstack.tinyusb=Adafruit TinyUSB adafruit_macropad2040.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -adafruit_macropad2040.menu.freertos.Disabled=Disabled -adafruit_macropad2040.menu.freertos.Disabled.build.flags.freertos= -adafruit_macropad2040.menu.freertos.Enabled=Enabled -adafruit_macropad2040.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit MacroPad RP2040 (Picoprobe) @@ -3228,10 +3151,6 @@ adafruit_macropad2040picoprobe.menu.usbstack.picosdk=Pico SDK adafruit_macropad2040picoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" adafruit_macropad2040picoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB adafruit_macropad2040picoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -adafruit_macropad2040picoprobe.menu.freertos.Disabled=Disabled -adafruit_macropad2040picoprobe.menu.freertos.Disabled.build.flags.freertos= -adafruit_macropad2040picoprobe.menu.freertos.Enabled=Enabled -adafruit_macropad2040picoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit MacroPad RP2040 (pico-debug) @@ -3393,10 +3312,6 @@ adafruit_macropad2040picodebug.menu.dbglvl.NDEBUG=NDEBUG adafruit_macropad2040picodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG adafruit_macropad2040picodebug.menu.usbstack.nousb=No USB adafruit_macropad2040picodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" -adafruit_macropad2040picodebug.menu.freertos.Disabled=Disabled -adafruit_macropad2040picodebug.menu.freertos.Disabled.build.flags.freertos= -adafruit_macropad2040picodebug.menu.freertos.Enabled=Enabled -adafruit_macropad2040picodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit KB2040 @@ -3560,10 +3475,6 @@ adafruit_kb2040.menu.usbstack.picosdk=Pico SDK adafruit_kb2040.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" adafruit_kb2040.menu.usbstack.tinyusb=Adafruit TinyUSB adafruit_kb2040.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -adafruit_kb2040.menu.freertos.Disabled=Disabled -adafruit_kb2040.menu.freertos.Disabled.build.flags.freertos= -adafruit_kb2040.menu.freertos.Enabled=Enabled -adafruit_kb2040.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit KB2040 (Picoprobe) @@ -3727,10 +3638,6 @@ adafruit_kb2040picoprobe.menu.usbstack.picosdk=Pico SDK adafruit_kb2040picoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" adafruit_kb2040picoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB adafruit_kb2040picoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -adafruit_kb2040picoprobe.menu.freertos.Disabled=Disabled -adafruit_kb2040picoprobe.menu.freertos.Disabled.build.flags.freertos= -adafruit_kb2040picoprobe.menu.freertos.Enabled=Enabled -adafruit_kb2040picoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Adafruit KB2040 (pico-debug) @@ -3892,10 +3799,6 @@ adafruit_kb2040picodebug.menu.dbglvl.NDEBUG=NDEBUG adafruit_kb2040picodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG adafruit_kb2040picodebug.menu.usbstack.nousb=No USB adafruit_kb2040picodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" -adafruit_kb2040picodebug.menu.freertos.Disabled=Disabled -adafruit_kb2040picodebug.menu.freertos.Disabled.build.flags.freertos= -adafruit_kb2040picodebug.menu.freertos.Enabled=Enabled -adafruit_kb2040picodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Arduino Nano RP2040 Connect @@ -4107,10 +4010,6 @@ arduino_nano_connect.menu.usbstack.picosdk=Pico SDK arduino_nano_connect.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" arduino_nano_connect.menu.usbstack.tinyusb=Adafruit TinyUSB arduino_nano_connect.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -arduino_nano_connect.menu.freertos.Disabled=Disabled -arduino_nano_connect.menu.freertos.Disabled.build.flags.freertos= -arduino_nano_connect.menu.freertos.Enabled=Enabled -arduino_nano_connect.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Arduino Nano RP2040 Connect (Picoprobe) @@ -4322,10 +4221,6 @@ arduino_nano_connectpicoprobe.menu.usbstack.picosdk=Pico SDK arduino_nano_connectpicoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" arduino_nano_connectpicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB arduino_nano_connectpicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -arduino_nano_connectpicoprobe.menu.freertos.Disabled=Disabled -arduino_nano_connectpicoprobe.menu.freertos.Disabled.build.flags.freertos= -arduino_nano_connectpicoprobe.menu.freertos.Enabled=Enabled -arduino_nano_connectpicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Arduino Nano RP2040 Connect (pico-debug) @@ -4535,10 +4430,6 @@ arduino_nano_connectpicodebug.menu.dbglvl.NDEBUG=NDEBUG arduino_nano_connectpicodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG arduino_nano_connectpicodebug.menu.usbstack.nousb=No USB arduino_nano_connectpicodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" -arduino_nano_connectpicodebug.menu.freertos.Disabled=Disabled -arduino_nano_connectpicodebug.menu.freertos.Disabled.build.flags.freertos= -arduino_nano_connectpicodebug.menu.freertos.Enabled=Enabled -arduino_nano_connectpicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Cytron Maker Nano RP2040 @@ -4666,10 +4557,6 @@ cytron_maker_nano_rp2040.menu.usbstack.picosdk=Pico SDK cytron_maker_nano_rp2040.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" cytron_maker_nano_rp2040.menu.usbstack.tinyusb=Adafruit TinyUSB cytron_maker_nano_rp2040.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -cytron_maker_nano_rp2040.menu.freertos.Disabled=Disabled -cytron_maker_nano_rp2040.menu.freertos.Disabled.build.flags.freertos= -cytron_maker_nano_rp2040.menu.freertos.Enabled=Enabled -cytron_maker_nano_rp2040.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Cytron Maker Nano RP2040 (Picoprobe) @@ -4797,10 +4684,6 @@ cytron_maker_nano_rp2040picoprobe.menu.usbstack.picosdk=Pico SDK cytron_maker_nano_rp2040picoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" cytron_maker_nano_rp2040picoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB cytron_maker_nano_rp2040picoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -cytron_maker_nano_rp2040picoprobe.menu.freertos.Disabled=Disabled -cytron_maker_nano_rp2040picoprobe.menu.freertos.Disabled.build.flags.freertos= -cytron_maker_nano_rp2040picoprobe.menu.freertos.Enabled=Enabled -cytron_maker_nano_rp2040picoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Cytron Maker Nano RP2040 (pico-debug) @@ -4926,10 +4809,6 @@ cytron_maker_nano_rp2040picodebug.menu.dbglvl.NDEBUG=NDEBUG cytron_maker_nano_rp2040picodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG cytron_maker_nano_rp2040picodebug.menu.usbstack.nousb=No USB cytron_maker_nano_rp2040picodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" -cytron_maker_nano_rp2040picodebug.menu.freertos.Disabled=Disabled -cytron_maker_nano_rp2040picodebug.menu.freertos.Disabled.build.flags.freertos= -cytron_maker_nano_rp2040picodebug.menu.freertos.Enabled=Enabled -cytron_maker_nano_rp2040picodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Cytron Maker Pi RP2040 @@ -5057,10 +4936,6 @@ cytron_maker_pi_rp2040.menu.usbstack.picosdk=Pico SDK cytron_maker_pi_rp2040.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" cytron_maker_pi_rp2040.menu.usbstack.tinyusb=Adafruit TinyUSB cytron_maker_pi_rp2040.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -cytron_maker_pi_rp2040.menu.freertos.Disabled=Disabled -cytron_maker_pi_rp2040.menu.freertos.Disabled.build.flags.freertos= -cytron_maker_pi_rp2040.menu.freertos.Enabled=Enabled -cytron_maker_pi_rp2040.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Cytron Maker Pi RP2040 (Picoprobe) @@ -5188,10 +5063,6 @@ cytron_maker_pi_rp2040picoprobe.menu.usbstack.picosdk=Pico SDK cytron_maker_pi_rp2040picoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" cytron_maker_pi_rp2040picoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB cytron_maker_pi_rp2040picoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -cytron_maker_pi_rp2040picoprobe.menu.freertos.Disabled=Disabled -cytron_maker_pi_rp2040picoprobe.menu.freertos.Disabled.build.flags.freertos= -cytron_maker_pi_rp2040picoprobe.menu.freertos.Enabled=Enabled -cytron_maker_pi_rp2040picoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Cytron Maker Pi RP2040 (pico-debug) @@ -5317,10 +5188,6 @@ cytron_maker_pi_rp2040picodebug.menu.dbglvl.NDEBUG=NDEBUG cytron_maker_pi_rp2040picodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG cytron_maker_pi_rp2040picodebug.menu.usbstack.nousb=No USB cytron_maker_pi_rp2040picodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" -cytron_maker_pi_rp2040picodebug.menu.freertos.Disabled=Disabled -cytron_maker_pi_rp2040picodebug.menu.freertos.Disabled.build.flags.freertos= -cytron_maker_pi_rp2040picodebug.menu.freertos.Enabled=Enabled -cytron_maker_pi_rp2040picodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # DeRuiLab FlyBoard2040Core @@ -5460,10 +5327,6 @@ flyboard2040_core.menu.usbstack.picosdk=Pico SDK flyboard2040_core.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" flyboard2040_core.menu.usbstack.tinyusb=Adafruit TinyUSB flyboard2040_core.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -flyboard2040_core.menu.freertos.Disabled=Disabled -flyboard2040_core.menu.freertos.Disabled.build.flags.freertos= -flyboard2040_core.menu.freertos.Enabled=Enabled -flyboard2040_core.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # DeRuiLab FlyBoard2040Core (Picoprobe) @@ -5603,10 +5466,6 @@ flyboard2040_corepicoprobe.menu.usbstack.picosdk=Pico SDK flyboard2040_corepicoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" flyboard2040_corepicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB flyboard2040_corepicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -flyboard2040_corepicoprobe.menu.freertos.Disabled=Disabled -flyboard2040_corepicoprobe.menu.freertos.Disabled.build.flags.freertos= -flyboard2040_corepicoprobe.menu.freertos.Enabled=Enabled -flyboard2040_corepicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # DeRuiLab FlyBoard2040Core (pico-debug) @@ -5744,10 +5603,6 @@ flyboard2040_corepicodebug.menu.dbglvl.NDEBUG=NDEBUG flyboard2040_corepicodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG flyboard2040_corepicodebug.menu.usbstack.nousb=No USB flyboard2040_corepicodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" -flyboard2040_corepicodebug.menu.freertos.Disabled=Disabled -flyboard2040_corepicodebug.menu.freertos.Disabled.build.flags.freertos= -flyboard2040_corepicodebug.menu.freertos.Enabled=Enabled -flyboard2040_corepicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # DFRobot Beetle RP2040 @@ -5875,10 +5730,6 @@ dfrobot_beetle_rp2040.menu.usbstack.picosdk=Pico SDK dfrobot_beetle_rp2040.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" dfrobot_beetle_rp2040.menu.usbstack.tinyusb=Adafruit TinyUSB dfrobot_beetle_rp2040.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -dfrobot_beetle_rp2040.menu.freertos.Disabled=Disabled -dfrobot_beetle_rp2040.menu.freertos.Disabled.build.flags.freertos= -dfrobot_beetle_rp2040.menu.freertos.Enabled=Enabled -dfrobot_beetle_rp2040.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # DFRobot Beetle RP2040 (Picoprobe) @@ -6006,10 +5857,6 @@ dfrobot_beetle_rp2040picoprobe.menu.usbstack.picosdk=Pico SDK dfrobot_beetle_rp2040picoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" dfrobot_beetle_rp2040picoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB dfrobot_beetle_rp2040picoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -dfrobot_beetle_rp2040picoprobe.menu.freertos.Disabled=Disabled -dfrobot_beetle_rp2040picoprobe.menu.freertos.Disabled.build.flags.freertos= -dfrobot_beetle_rp2040picoprobe.menu.freertos.Enabled=Enabled -dfrobot_beetle_rp2040picoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # DFRobot Beetle RP2040 (pico-debug) @@ -6135,10 +5982,6 @@ dfrobot_beetle_rp2040picodebug.menu.dbglvl.NDEBUG=NDEBUG dfrobot_beetle_rp2040picodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG dfrobot_beetle_rp2040picodebug.menu.usbstack.nousb=No USB dfrobot_beetle_rp2040picodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" -dfrobot_beetle_rp2040picodebug.menu.freertos.Disabled=Disabled -dfrobot_beetle_rp2040picodebug.menu.freertos.Disabled.build.flags.freertos= -dfrobot_beetle_rp2040picodebug.menu.freertos.Enabled=Enabled -dfrobot_beetle_rp2040picodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # iLabs Challenger 2040 LoRa @@ -6302,10 +6145,6 @@ challenger_2040_lora.menu.usbstack.picosdk=Pico SDK challenger_2040_lora.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" challenger_2040_lora.menu.usbstack.tinyusb=Adafruit TinyUSB challenger_2040_lora.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -challenger_2040_lora.menu.freertos.Disabled=Disabled -challenger_2040_lora.menu.freertos.Disabled.build.flags.freertos= -challenger_2040_lora.menu.freertos.Enabled=Enabled -challenger_2040_lora.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # iLabs Challenger 2040 LoRa (Picoprobe) @@ -6469,10 +6308,6 @@ challenger_2040_lorapicoprobe.menu.usbstack.picosdk=Pico SDK challenger_2040_lorapicoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" challenger_2040_lorapicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB challenger_2040_lorapicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -challenger_2040_lorapicoprobe.menu.freertos.Disabled=Disabled -challenger_2040_lorapicoprobe.menu.freertos.Disabled.build.flags.freertos= -challenger_2040_lorapicoprobe.menu.freertos.Enabled=Enabled -challenger_2040_lorapicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # iLabs Challenger 2040 LoRa (pico-debug) @@ -6634,10 +6469,6 @@ challenger_2040_lorapicodebug.menu.dbglvl.NDEBUG=NDEBUG challenger_2040_lorapicodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG challenger_2040_lorapicodebug.menu.usbstack.nousb=No USB challenger_2040_lorapicodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" -challenger_2040_lorapicodebug.menu.freertos.Disabled=Disabled -challenger_2040_lorapicodebug.menu.freertos.Disabled.build.flags.freertos= -challenger_2040_lorapicodebug.menu.freertos.Enabled=Enabled -challenger_2040_lorapicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # iLabs Challenger 2040 WiFi @@ -6801,10 +6632,6 @@ challenger_2040_wifi.menu.usbstack.picosdk=Pico SDK challenger_2040_wifi.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" challenger_2040_wifi.menu.usbstack.tinyusb=Adafruit TinyUSB challenger_2040_wifi.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -challenger_2040_wifi.menu.freertos.Disabled=Disabled -challenger_2040_wifi.menu.freertos.Disabled.build.flags.freertos= -challenger_2040_wifi.menu.freertos.Enabled=Enabled -challenger_2040_wifi.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # iLabs Challenger 2040 WiFi (Picoprobe) @@ -6968,10 +6795,6 @@ challenger_2040_wifipicoprobe.menu.usbstack.picosdk=Pico SDK challenger_2040_wifipicoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" challenger_2040_wifipicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB challenger_2040_wifipicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -challenger_2040_wifipicoprobe.menu.freertos.Disabled=Disabled -challenger_2040_wifipicoprobe.menu.freertos.Disabled.build.flags.freertos= -challenger_2040_wifipicoprobe.menu.freertos.Enabled=Enabled -challenger_2040_wifipicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # iLabs Challenger 2040 WiFi (pico-debug) @@ -7133,10 +6956,6 @@ challenger_2040_wifipicodebug.menu.dbglvl.NDEBUG=NDEBUG challenger_2040_wifipicodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG challenger_2040_wifipicodebug.menu.usbstack.nousb=No USB challenger_2040_wifipicodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" -challenger_2040_wifipicodebug.menu.freertos.Disabled=Disabled -challenger_2040_wifipicodebug.menu.freertos.Disabled.build.flags.freertos= -challenger_2040_wifipicodebug.menu.freertos.Enabled=Enabled -challenger_2040_wifipicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # iLabs Challenger 2040 LTE @@ -7300,10 +7119,6 @@ challenger_2040_lte.menu.usbstack.picosdk=Pico SDK challenger_2040_lte.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" challenger_2040_lte.menu.usbstack.tinyusb=Adafruit TinyUSB challenger_2040_lte.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -challenger_2040_lte.menu.freertos.Disabled=Disabled -challenger_2040_lte.menu.freertos.Disabled.build.flags.freertos= -challenger_2040_lte.menu.freertos.Enabled=Enabled -challenger_2040_lte.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # iLabs Challenger 2040 LTE (Picoprobe) @@ -7467,10 +7282,6 @@ challenger_2040_ltepicoprobe.menu.usbstack.picosdk=Pico SDK challenger_2040_ltepicoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" challenger_2040_ltepicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB challenger_2040_ltepicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -challenger_2040_ltepicoprobe.menu.freertos.Disabled=Disabled -challenger_2040_ltepicoprobe.menu.freertos.Disabled.build.flags.freertos= -challenger_2040_ltepicoprobe.menu.freertos.Enabled=Enabled -challenger_2040_ltepicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # iLabs Challenger 2040 LTE (pico-debug) @@ -7632,10 +7443,6 @@ challenger_2040_ltepicodebug.menu.dbglvl.NDEBUG=NDEBUG challenger_2040_ltepicodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG challenger_2040_ltepicodebug.menu.usbstack.nousb=No USB challenger_2040_ltepicodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" -challenger_2040_ltepicodebug.menu.freertos.Disabled=Disabled -challenger_2040_ltepicodebug.menu.freertos.Disabled.build.flags.freertos= -challenger_2040_ltepicodebug.menu.freertos.Enabled=Enabled -challenger_2040_ltepicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # iLabs Challenger NB 2040 WiFi @@ -7799,10 +7606,6 @@ challenger_nb_2040_wifi.menu.usbstack.picosdk=Pico SDK challenger_nb_2040_wifi.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" challenger_nb_2040_wifi.menu.usbstack.tinyusb=Adafruit TinyUSB challenger_nb_2040_wifi.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -challenger_nb_2040_wifi.menu.freertos.Disabled=Disabled -challenger_nb_2040_wifi.menu.freertos.Disabled.build.flags.freertos= -challenger_nb_2040_wifi.menu.freertos.Enabled=Enabled -challenger_nb_2040_wifi.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # iLabs Challenger NB 2040 WiFi (Picoprobe) @@ -7966,10 +7769,6 @@ challenger_nb_2040_wifipicoprobe.menu.usbstack.picosdk=Pico SDK challenger_nb_2040_wifipicoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" challenger_nb_2040_wifipicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB challenger_nb_2040_wifipicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -challenger_nb_2040_wifipicoprobe.menu.freertos.Disabled=Disabled -challenger_nb_2040_wifipicoprobe.menu.freertos.Disabled.build.flags.freertos= -challenger_nb_2040_wifipicoprobe.menu.freertos.Enabled=Enabled -challenger_nb_2040_wifipicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # iLabs Challenger NB 2040 WiFi (pico-debug) @@ -8131,10 +7930,6 @@ challenger_nb_2040_wifipicodebug.menu.dbglvl.NDEBUG=NDEBUG challenger_nb_2040_wifipicodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG challenger_nb_2040_wifipicodebug.menu.usbstack.nousb=No USB challenger_nb_2040_wifipicodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" -challenger_nb_2040_wifipicodebug.menu.freertos.Disabled=Disabled -challenger_nb_2040_wifipicodebug.menu.freertos.Disabled.build.flags.freertos= -challenger_nb_2040_wifipicodebug.menu.freertos.Enabled=Enabled -challenger_nb_2040_wifipicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # iLabs RPICO32 @@ -8298,10 +8093,6 @@ ilabs_rpico32.menu.usbstack.picosdk=Pico SDK ilabs_rpico32.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" ilabs_rpico32.menu.usbstack.tinyusb=Adafruit TinyUSB ilabs_rpico32.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -ilabs_rpico32.menu.freertos.Disabled=Disabled -ilabs_rpico32.menu.freertos.Disabled.build.flags.freertos= -ilabs_rpico32.menu.freertos.Enabled=Enabled -ilabs_rpico32.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # iLabs RPICO32 (Picoprobe) @@ -8465,10 +8256,6 @@ ilabs_rpico32picoprobe.menu.usbstack.picosdk=Pico SDK ilabs_rpico32picoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" ilabs_rpico32picoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB ilabs_rpico32picoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -ilabs_rpico32picoprobe.menu.freertos.Disabled=Disabled -ilabs_rpico32picoprobe.menu.freertos.Disabled.build.flags.freertos= -ilabs_rpico32picoprobe.menu.freertos.Enabled=Enabled -ilabs_rpico32picoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # iLabs RPICO32 (pico-debug) @@ -8630,10 +8417,6 @@ ilabs_rpico32picodebug.menu.dbglvl.NDEBUG=NDEBUG ilabs_rpico32picodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG ilabs_rpico32picodebug.menu.usbstack.nousb=No USB ilabs_rpico32picodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" -ilabs_rpico32picodebug.menu.freertos.Disabled=Disabled -ilabs_rpico32picodebug.menu.freertos.Disabled.build.flags.freertos= -ilabs_rpico32picodebug.menu.freertos.Enabled=Enabled -ilabs_rpico32picodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Melopero Shake RP2040 @@ -8845,10 +8628,6 @@ melopero_shake_rp2040.menu.usbstack.picosdk=Pico SDK melopero_shake_rp2040.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" melopero_shake_rp2040.menu.usbstack.tinyusb=Adafruit TinyUSB melopero_shake_rp2040.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -melopero_shake_rp2040.menu.freertos.Disabled=Disabled -melopero_shake_rp2040.menu.freertos.Disabled.build.flags.freertos= -melopero_shake_rp2040.menu.freertos.Enabled=Enabled -melopero_shake_rp2040.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Melopero Shake RP2040 (Picoprobe) @@ -9060,10 +8839,6 @@ melopero_shake_rp2040picoprobe.menu.usbstack.picosdk=Pico SDK melopero_shake_rp2040picoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" melopero_shake_rp2040picoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB melopero_shake_rp2040picoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -melopero_shake_rp2040picoprobe.menu.freertos.Disabled=Disabled -melopero_shake_rp2040picoprobe.menu.freertos.Disabled.build.flags.freertos= -melopero_shake_rp2040picoprobe.menu.freertos.Enabled=Enabled -melopero_shake_rp2040picoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Melopero Shake RP2040 (pico-debug) @@ -9273,10 +9048,6 @@ melopero_shake_rp2040picodebug.menu.dbglvl.NDEBUG=NDEBUG melopero_shake_rp2040picodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG melopero_shake_rp2040picodebug.menu.usbstack.nousb=No USB melopero_shake_rp2040picodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" -melopero_shake_rp2040picodebug.menu.freertos.Disabled=Disabled -melopero_shake_rp2040picodebug.menu.freertos.Disabled.build.flags.freertos= -melopero_shake_rp2040picodebug.menu.freertos.Enabled=Enabled -melopero_shake_rp2040picodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Solder Party RP2040 Stamp @@ -9440,10 +9211,6 @@ solderparty_rp2040_stamp.menu.usbstack.picosdk=Pico SDK solderparty_rp2040_stamp.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" solderparty_rp2040_stamp.menu.usbstack.tinyusb=Adafruit TinyUSB solderparty_rp2040_stamp.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -solderparty_rp2040_stamp.menu.freertos.Disabled=Disabled -solderparty_rp2040_stamp.menu.freertos.Disabled.build.flags.freertos= -solderparty_rp2040_stamp.menu.freertos.Enabled=Enabled -solderparty_rp2040_stamp.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Solder Party RP2040 Stamp (Picoprobe) @@ -9607,10 +9374,6 @@ solderparty_rp2040_stamppicoprobe.menu.usbstack.picosdk=Pico SDK solderparty_rp2040_stamppicoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" solderparty_rp2040_stamppicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB solderparty_rp2040_stamppicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -solderparty_rp2040_stamppicoprobe.menu.freertos.Disabled=Disabled -solderparty_rp2040_stamppicoprobe.menu.freertos.Disabled.build.flags.freertos= -solderparty_rp2040_stamppicoprobe.menu.freertos.Enabled=Enabled -solderparty_rp2040_stamppicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Solder Party RP2040 Stamp (pico-debug) @@ -9772,10 +9535,6 @@ solderparty_rp2040_stamppicodebug.menu.dbglvl.NDEBUG=NDEBUG solderparty_rp2040_stamppicodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG solderparty_rp2040_stamppicodebug.menu.usbstack.nousb=No USB solderparty_rp2040_stamppicodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" -solderparty_rp2040_stamppicodebug.menu.freertos.Disabled=Disabled -solderparty_rp2040_stamppicodebug.menu.freertos.Disabled.build.flags.freertos= -solderparty_rp2040_stamppicodebug.menu.freertos.Enabled=Enabled -solderparty_rp2040_stamppicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # SparkFun ProMicro RP2040 @@ -9987,10 +9746,6 @@ sparkfun_promicrorp2040.menu.usbstack.picosdk=Pico SDK sparkfun_promicrorp2040.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" sparkfun_promicrorp2040.menu.usbstack.tinyusb=Adafruit TinyUSB sparkfun_promicrorp2040.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -sparkfun_promicrorp2040.menu.freertos.Disabled=Disabled -sparkfun_promicrorp2040.menu.freertos.Disabled.build.flags.freertos= -sparkfun_promicrorp2040.menu.freertos.Enabled=Enabled -sparkfun_promicrorp2040.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # SparkFun ProMicro RP2040 (Picoprobe) @@ -10202,10 +9957,6 @@ sparkfun_promicrorp2040picoprobe.menu.usbstack.picosdk=Pico SDK sparkfun_promicrorp2040picoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" sparkfun_promicrorp2040picoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB sparkfun_promicrorp2040picoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -sparkfun_promicrorp2040picoprobe.menu.freertos.Disabled=Disabled -sparkfun_promicrorp2040picoprobe.menu.freertos.Disabled.build.flags.freertos= -sparkfun_promicrorp2040picoprobe.menu.freertos.Enabled=Enabled -sparkfun_promicrorp2040picoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # SparkFun ProMicro RP2040 (pico-debug) @@ -10415,10 +10166,6 @@ sparkfun_promicrorp2040picodebug.menu.dbglvl.NDEBUG=NDEBUG sparkfun_promicrorp2040picodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG sparkfun_promicrorp2040picodebug.menu.usbstack.nousb=No USB sparkfun_promicrorp2040picodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" -sparkfun_promicrorp2040picodebug.menu.freertos.Disabled=Disabled -sparkfun_promicrorp2040picodebug.menu.freertos.Disabled.build.flags.freertos= -sparkfun_promicrorp2040picodebug.menu.freertos.Enabled=Enabled -sparkfun_promicrorp2040picodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # uPesy RP2040 DevKit @@ -10546,10 +10293,6 @@ upesy_rp2040_devkit.menu.usbstack.picosdk=Pico SDK upesy_rp2040_devkit.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" upesy_rp2040_devkit.menu.usbstack.tinyusb=Adafruit TinyUSB upesy_rp2040_devkit.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -upesy_rp2040_devkit.menu.freertos.Disabled=Disabled -upesy_rp2040_devkit.menu.freertos.Disabled.build.flags.freertos= -upesy_rp2040_devkit.menu.freertos.Enabled=Enabled -upesy_rp2040_devkit.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # uPesy RP2040 DevKit (Picoprobe) @@ -10677,10 +10420,6 @@ upesy_rp2040_devkitpicoprobe.menu.usbstack.picosdk=Pico SDK upesy_rp2040_devkitpicoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" upesy_rp2040_devkitpicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB upesy_rp2040_devkitpicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -upesy_rp2040_devkitpicoprobe.menu.freertos.Disabled=Disabled -upesy_rp2040_devkitpicoprobe.menu.freertos.Disabled.build.flags.freertos= -upesy_rp2040_devkitpicoprobe.menu.freertos.Enabled=Enabled -upesy_rp2040_devkitpicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # uPesy RP2040 DevKit (pico-debug) @@ -10806,10 +10545,6 @@ upesy_rp2040_devkitpicodebug.menu.dbglvl.NDEBUG=NDEBUG upesy_rp2040_devkitpicodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG upesy_rp2040_devkitpicodebug.menu.usbstack.nousb=No USB upesy_rp2040_devkitpicodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" -upesy_rp2040_devkitpicodebug.menu.freertos.Disabled=Disabled -upesy_rp2040_devkitpicodebug.menu.freertos.Disabled.build.flags.freertos= -upesy_rp2040_devkitpicodebug.menu.freertos.Enabled=Enabled -upesy_rp2040_devkitpicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # WIZnet W5100S-EVB-Pico @@ -10937,10 +10672,6 @@ wiznet_5100s_evb_pico.menu.usbstack.picosdk=Pico SDK wiznet_5100s_evb_pico.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" wiznet_5100s_evb_pico.menu.usbstack.tinyusb=Adafruit TinyUSB wiznet_5100s_evb_pico.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -wiznet_5100s_evb_pico.menu.freertos.Disabled=Disabled -wiznet_5100s_evb_pico.menu.freertos.Disabled.build.flags.freertos= -wiznet_5100s_evb_pico.menu.freertos.Enabled=Enabled -wiznet_5100s_evb_pico.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # WIZnet W5100S-EVB-Pico (Picoprobe) @@ -11068,10 +10799,6 @@ wiznet_5100s_evb_picopicoprobe.menu.usbstack.picosdk=Pico SDK wiznet_5100s_evb_picopicoprobe.menu.usbstack.picosdk.build.usbstack_flags="-I{runtime.platform.path}/tools/libpico" wiznet_5100s_evb_picopicoprobe.menu.usbstack.tinyusb=Adafruit TinyUSB wiznet_5100s_evb_picopicoprobe.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino" -wiznet_5100s_evb_picopicoprobe.menu.freertos.Disabled=Disabled -wiznet_5100s_evb_picopicoprobe.menu.freertos.Disabled.build.flags.freertos= -wiznet_5100s_evb_picopicoprobe.menu.freertos.Enabled=Enabled -wiznet_5100s_evb_picopicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # WIZnet W5100S-EVB-Pico (pico-debug) @@ -11197,10 +10924,6 @@ wiznet_5100s_evb_picopicodebug.menu.dbglvl.NDEBUG=NDEBUG wiznet_5100s_evb_picopicodebug.menu.dbglvl.NDEBUG.build.debug_level=-DNDEBUG wiznet_5100s_evb_picopicodebug.menu.usbstack.nousb=No USB wiznet_5100s_evb_picopicodebug.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico" -wiznet_5100s_evb_picopicodebug.menu.freertos.Disabled=Disabled -wiznet_5100s_evb_picopicodebug.menu.freertos.Disabled.build.flags.freertos= -wiznet_5100s_evb_picopicodebug.menu.freertos.Enabled=Enabled -wiznet_5100s_evb_picopicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Generic RP2040 @@ -11356,10 +11079,6 @@ generic.menu.boot2.boot2_w25x10cl_2_padded_checksum=W25X10CL QSPI /2 generic.menu.boot2.boot2_w25x10cl_2_padded_checksum.build.boot2=boot2_w25x10cl_2_padded_checksum generic.menu.boot2.boot2_w25x10cl_4_padded_checksum=W25X10CL QSPI /4 generic.menu.boot2.boot2_w25x10cl_4_padded_checksum.build.boot2=boot2_w25x10cl_4_padded_checksum -generic.menu.freertos.Disabled=Disabled -generic.menu.freertos.Disabled.build.flags.freertos= -generic.menu.freertos.Enabled=Enabled -generic.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Generic RP2040 (Picoprobe) @@ -11515,10 +11234,6 @@ genericpicoprobe.menu.boot2.boot2_w25x10cl_2_padded_checksum=W25X10CL QSPI /2 genericpicoprobe.menu.boot2.boot2_w25x10cl_2_padded_checksum.build.boot2=boot2_w25x10cl_2_padded_checksum genericpicoprobe.menu.boot2.boot2_w25x10cl_4_padded_checksum=W25X10CL QSPI /4 genericpicoprobe.menu.boot2.boot2_w25x10cl_4_padded_checksum.build.boot2=boot2_w25x10cl_4_padded_checksum -genericpicoprobe.menu.freertos.Disabled=Disabled -genericpicoprobe.menu.freertos.Disabled.build.flags.freertos= -genericpicoprobe.menu.freertos.Enabled=Enabled -genericpicoprobe.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS # ----------------------------------- # Generic RP2040 (pico-debug) @@ -11672,7 +11387,3 @@ genericpicodebug.menu.boot2.boot2_w25x10cl_2_padded_checksum=W25X10CL QSPI /2 genericpicodebug.menu.boot2.boot2_w25x10cl_2_padded_checksum.build.boot2=boot2_w25x10cl_2_padded_checksum genericpicodebug.menu.boot2.boot2_w25x10cl_4_padded_checksum=W25X10CL QSPI /4 genericpicodebug.menu.boot2.boot2_w25x10cl_4_padded_checksum.build.boot2=boot2_w25x10cl_4_padded_checksum -genericpicodebug.menu.freertos.Disabled=Disabled -genericpicodebug.menu.freertos.Disabled.build.flags.freertos= -genericpicodebug.menu.freertos.Enabled=Enabled -genericpicodebug.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS diff --git a/cores/rp2040/RP2040Support.h b/cores/rp2040/RP2040Support.h index 9b870331..17543e71 100644 --- a/cores/rp2040/RP2040Support.h +++ b/cores/rp2040/RP2040Support.h @@ -27,7 +27,12 @@ #include #include "CoreMutex.h" -#ifndef USE_FREERTOS +extern "C" volatile bool __otherCoreIdled; +extern bool __isFreeRTOS; + +// FreeRTOS imports (possibly) +extern void prvDisableInterrupts(void) __attribute__((weak)); +extern void prvEnableInterrupts(void) __attribute__((weak)); class _MFIFO { public: @@ -47,13 +52,12 @@ public: } void registerCore() { -#ifndef USE_FREERTOS - multicore_fifo_clear_irq(); - irq_set_exclusive_handler(SIO_IRQ_PROC0 + get_core_num(), _irq); - irq_set_enabled(SIO_IRQ_PROC0 + get_core_num(), true); -#else - // FreeRTOS port.c will axtuall handle the IRQ hooking -#endif + if (!__isFreeRTOS) { + multicore_fifo_clear_irq(); + irq_set_exclusive_handler(SIO_IRQ_PROC0 + get_core_num(), _irq); + irq_set_enabled(SIO_IRQ_PROC0 + get_core_num(), true); + } + // FreeRTOS port.c will handle the IRQ hooking } void push(uint32_t val) { @@ -85,9 +89,9 @@ public: return; } mutex_enter_blocking(&_idleMutex); - _otherIdled = false; + __otherCoreIdled = false; multicore_fifo_push_blocking(_GOTOSLEEP); - while (!_otherIdled) { /* noop */ } + while (!__otherCoreIdled) { /* noop */ } } void resumeOtherCore() { @@ -95,9 +99,9 @@ public: return; } mutex_exit(&_idleMutex); - _otherIdled = false; + __otherCoreIdled = false; // Other core will exit busy-loop and return to operation - // once otherIdled == false. + // once __otherCoreIdled == false. } void clear() { @@ -118,8 +122,8 @@ private: noInterrupts(); // We need total control, can't run anything while (multicore_fifo_rvalid()) { if (_GOTOSLEEP == multicore_fifo_pop_blocking()) { - _otherIdled = true; - while (_otherIdled) { /* noop */ } + __otherCoreIdled = true; + while (__otherCoreIdled) { /* noop */ } break; } } @@ -128,31 +132,33 @@ private: bool _multicore = false; mutex_t _idleMutex; - static volatile bool _otherIdled; queue_t _queue[2]; static constexpr int _GOTOSLEEP = 0xC0DED02E; }; + class RP2040; extern RP2040 rp2040; extern "C" void main1(); -#endif class RP2040 { public: -#ifndef USE_FREERTOS - RP2040() { + RP2040() { /* noop */ } + ~RP2040() { /* noop */ } + + void begin() { _epoch = 0; - // Enable SYSTICK exception - exception_set_exclusive_handler(SYSTICK_EXCEPTION, _SystickHandler); - systick_hw->csr = 0x7; - systick_hw->rvr = 0x00FFFFFF; + // TODO - add FreeRTOS tick count support + if (!__isFreeRTOS) { + // Enable SYSTICK exception + exception_set_exclusive_handler(SYSTICK_EXCEPTION, _SystickHandler); + systick_hw->csr = 0x7; + systick_hw->rvr = 0x00FFFFFF; + } } - ~RP2040() { /* noop */ } -#endif // Convert from microseconds to PIO clock cycles static int usToPIOCycles(int us) { @@ -165,7 +171,6 @@ public: return clock_get_hz(clk_sys); } -#ifndef USE_FREERTOS // Get CPU cycle count. Needs to do magic to extens 24b HW to something longer volatile uint64_t _epoch = 0; inline uint32_t getCycleCount() { @@ -209,7 +214,6 @@ private: static void _SystickHandler() { rp2040._epoch += 1LL << 24; } -#endif }; // Wrapper class for PIO programs, abstracting common operations out diff --git a/cores/rp2040/delay.cpp b/cores/rp2040/delay.cpp index 769aa231..be914db8 100644 --- a/cores/rp2040/delay.cpp +++ b/cores/rp2040/delay.cpp @@ -26,6 +26,7 @@ #endif extern "C" void delay(unsigned long ms) __attribute__((weak)); +extern "C" void yield() __attribute__((weak)); extern "C" { diff --git a/cores/rp2040/main.cpp b/cores/rp2040/main.cpp index 1d997fd4..3cea98a5 100644 --- a/cores/rp2040/main.cpp +++ b/cores/rp2040/main.cpp @@ -23,28 +23,23 @@ #include #include -#ifndef USE_FREERTOS RP2040 rp2040; - -volatile bool _MFIFO::_otherIdled = false; -#endif +volatile bool __otherCoreIdled = false; mutex_t _pioMutex; - extern void setup(); extern void loop(); -#ifdef USE_FREERTOS -void initFreeRTOS(); -void startFreeRTOS(); -#endif +// FreeRTOS potential includes +extern void initFreeRTOS() __attribute__((weak)); +extern void startFreeRTOS() __attribute__((weak)); +bool __isFreeRTOS; // Weak empty variant initialization. May be redefined by variant files. void initVariant() __attribute__((weak)); void initVariant() { } -#ifndef USE_FREERTOS // Optional 2nd core setup and loop extern void setup1() __attribute__((weak)); extern void loop1() __attribute__((weak)); @@ -59,7 +54,6 @@ extern "C" void main1() { } } } -#endif extern void __loop() { #ifdef USE_TINYUSB @@ -82,12 +76,18 @@ extern "C" int main() { set_sys_clock_khz(F_CPU / 1000, true); #endif + // Let rest of core know if we're using FreeRTOS + __isFreeRTOS = initFreeRTOS ? true : false; + mutex_init(&_pioMutex); + + rp2040.begin(); + initVariant(); -#ifdef USE_FREERTOS - initFreeRTOS(); -#endif + if (initFreeRTOS) { + initFreeRTOS(); + } #ifndef NO_USB #ifdef USE_TINYUSB @@ -107,27 +107,27 @@ extern "C" int main() { DEBUG_RP2040_PORT.begin(115200); #endif -#ifndef USE_FREERTOS #ifndef NO_USB - if (setup1 || loop1) { - rp2040.fifo.begin(2); - multicore_launch_core1(main1); - } else { - rp2040.fifo.begin(1); + if (!initFreeRTOS) { + if (setup1 || loop1) { + rp2040.fifo.begin(2); + multicore_launch_core1(main1); + } else { + rp2040.fifo.begin(1); + } + rp2040.fifo.registerCore(); } - rp2040.fifo.registerCore(); -#endif #endif setup(); -#ifndef USE_FREERTOS - while (true) { - loop(); - __loop(); + if (!startFreeRTOS) { + while (true) { + loop(); + __loop(); + } + } else { + startFreeRTOS(); } -#else - startFreeRTOS(); -#endif return 0; } diff --git a/cores/rp2040/wiring_private.cpp b/cores/rp2040/wiring_private.cpp index 61554751..ce7c51d9 100644 --- a/cores/rp2040/wiring_private.cpp +++ b/cores/rp2040/wiring_private.cpp @@ -28,6 +28,12 @@ // Support nested IRQ disable/re-enable static std::stack _irqStack[2]; +// FreeRTOS imports (possibly) +extern void prvEnableInterrupts(void) __attribute__((weak)); +extern void prvDisableInterrupts(void) __attribute__((weak)); +extern bool __isFreeRTOS; + + extern "C" void interrupts() { if (_irqStack[get_core_num()].empty()) { // ERROR @@ -36,16 +42,16 @@ extern "C" void interrupts() { auto oldIrqs = _irqStack[get_core_num()].top(); _irqStack[get_core_num()].pop(); restore_interrupts(oldIrqs); -#ifdef USE_FREERTOS - portENABLE_INTERRUPTS(); -#endif + if (__isFreeRTOS) { + prvEnableInterrupts(); + } } extern "C" void noInterrupts() { _irqStack[get_core_num()].push(save_and_disable_interrupts()); -#ifdef USE_FREERTOS - portDISABLE_INTERRUPTS(); -#endif + if (__isFreeRTOS) { + prvDisableInterrupts(); + } } // Only 1 GPIO IRQ callback for all pins, so we need to look at the pin it's for and diff --git a/libraries/FreeRTOS b/libraries/FreeRTOS index c969c593..7936bda4 160000 --- a/libraries/FreeRTOS +++ b/libraries/FreeRTOS @@ -1 +1 @@ -Subproject commit c969c593e6b437b75a9ba6e9a438af1960bcb979 +Subproject commit 7936bda43bce5c345b79f239dc0d7d7bb77cc3ee diff --git a/platform.txt b/platform.txt index 29c8df08..aec9c3b2 100644 --- a/platform.txt +++ b/platform.txt @@ -49,13 +49,13 @@ compiler.libpico="{runtime.platform.path}/lib/libpico.a" compiler.libstdcpp="-lstdc++" compiler.c.cmd=arm-none-eabi-gcc -compiler.c.flags=-c {compiler.warning_flags} {compiler.defines} {compiler.flags} {compiler.includes} {build.flags.freertos} -std=gnu17 -g +compiler.c.flags=-c {compiler.warning_flags} {compiler.defines} {compiler.flags} {compiler.includes} -std=gnu17 -g compiler.c.elf.cmd=arm-none-eabi-g++ compiler.c.elf.flags={compiler.warning_flags} {compiler.defines} {compiler.flags} {build.flags.optimize} -u _printf_float -u _scanf_float compiler.S.cmd=arm-none-eabi-gcc compiler.S.flags=-c {compiler.warning_flags} -g -x assembler-with-cpp -MMD {compiler.includes} -g compiler.cpp.cmd=arm-none-eabi-g++ -compiler.cpp.flags=-c {compiler.warning_flags} {compiler.defines} {compiler.flags} {compiler.includes} {build.flags.rtti} {build.flags.freertos} -std=gnu++17 -g +compiler.cpp.flags=-c {compiler.warning_flags} {compiler.defines} {compiler.flags} {compiler.includes} {build.flags.rtti} -std=gnu++17 -g compiler.ar.cmd=arm-none-eabi-ar compiler.ar.flags=rcs diff --git a/tools/makeboards.py b/tools/makeboards.py index 3c556d83..a887e325 100755 --- a/tools/makeboards.py +++ b/tools/makeboards.py @@ -64,13 +64,6 @@ def BuildUSBStack(name): print("%s.menu.usbstack.tinyusb=Adafruit TinyUSB" % (name)) print('%s.menu.usbstack.tinyusb.build.usbstack_flags=-DUSE_TINYUSB "-I{runtime.platform.path}/libraries/Adafruit_TinyUSB_Arduino/src/arduino"' % (name)) -def BuildFreeRTOS(name): - print("%s.menu.freertos.Disabled=Disabled" % (name)) - print("%s.menu.freertos.Disabled.build.flags.freertos=" % (name)) - print("%s.menu.freertos.Enabled=Enabled" % (name)) - print("%s.menu.freertos.Enabled.build.flags.freertos=-DUSE_FREERTOS" % (name)) - - def BuildWithoutUSBStack(name): print("%s.menu.usbstack.nousb=No USB" % (name)) print('%s.menu.usbstack.nousb.build.usbstack_flags="-DNO_USB -DDISABLE_USB_SERIAL -I{runtime.platform.path}/tools/libpico"' % (name)) @@ -123,7 +116,6 @@ def BuildGlobalMenuList(): print("menu.dbglvl=Debug Level") print("menu.boot2=Boot Stage 2") print("menu.usbstack=USB Stack") - print("menu.freertos=Use FreeRTOS") def MakeBoard(name, vendor_name, product_name, vid, pid, pwr, boarddefine, flashsizemb, boot2): @@ -162,7 +154,6 @@ def MakeBoard(name, vendor_name, product_name, vid, pid, pwr, boarddefine, flash BuildUSBStack(n) if name == "generic": BuildBoot(n) - BuildFreeRTOS(n) MakeBoardJSON(name, vendor_name, product_name, vid, pid, pwr, boarddefine, flashsizemb, boot2) def MakeBoardJSON(name, vendor_name, product_name, vid, pid, pwr, boarddefine, flashsizemb, boot2): -- 2.54.0 From d276843ee43d4dc3d239c1bed7b5419440e1dfd3 Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Mon, 18 Apr 2022 13:53:30 -0700 Subject: [PATCH 06/22] Clean up --- cores/rp2040/main.cpp | 9 ++++----- libraries/FreeRTOS | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/cores/rp2040/main.cpp b/cores/rp2040/main.cpp index 3cea98a5..86b15d96 100644 --- a/cores/rp2040/main.cpp +++ b/cores/rp2040/main.cpp @@ -85,7 +85,7 @@ extern "C" int main() { initVariant(); - if (initFreeRTOS) { + if (__isFreeRTOS) { initFreeRTOS(); } @@ -108,7 +108,7 @@ extern "C" int main() { #endif #ifndef NO_USB - if (!initFreeRTOS) { + if (!__isFreeRTOS) { if (setup1 || loop1) { rp2040.fifo.begin(2); multicore_launch_core1(main1); @@ -119,9 +119,8 @@ extern "C" int main() { } #endif - setup(); - - if (!startFreeRTOS) { + if (!__isFreeRTOS) { + setup(); while (true) { loop(); __loop(); diff --git a/libraries/FreeRTOS b/libraries/FreeRTOS index 7936bda4..ff500d2d 160000 --- a/libraries/FreeRTOS +++ b/libraries/FreeRTOS @@ -1 +1 @@ -Subproject commit 7936bda43bce5c345b79f239dc0d7d7bb77cc3ee +Subproject commit ff500d2d4b323d229bee49b71afa9e10274904c9 -- 2.54.0 From 4b640b133a9f98a445721cae1133eec260ae3de2 Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Mon, 18 Apr 2022 19:04:12 -0700 Subject: [PATCH 07/22] Add cycle count support under FreeRTOS Use a PIO machine to record cycles instead of systick --- cores/rp2040/RP2040Support.h | 49 ++++++++++++++++--------- cores/rp2040/ccount.pio | 62 +++++++++++++++++++++++++++++++ cores/rp2040/ccount.pio.h | 71 ++++++++++++++++++++++++++++++++++++ 3 files changed, 165 insertions(+), 17 deletions(-) create mode 100644 cores/rp2040/ccount.pio create mode 100644 cores/rp2040/ccount.pio.h diff --git a/cores/rp2040/RP2040Support.h b/cores/rp2040/RP2040Support.h index 17543e71..f0ac0489 100644 --- a/cores/rp2040/RP2040Support.h +++ b/cores/rp2040/RP2040Support.h @@ -26,6 +26,8 @@ #include #include #include "CoreMutex.h" +#include "ccount.pio.h" + extern "C" volatile bool __otherCoreIdled; extern bool __isFreeRTOS; @@ -150,16 +152,19 @@ public: void begin() { _epoch = 0; - // TODO - add FreeRTOS tick count support if (!__isFreeRTOS) { // Enable SYSTICK exception exception_set_exclusive_handler(SYSTICK_EXCEPTION, _SystickHandler); systick_hw->csr = 0x7; systick_hw->rvr = 0x00FFFFFF; - } + } else { + int off; + _ccountPgm.prepare(&_pio, &_sm, &off); + ccount_program_init(_pio, _sm, off); + pio_sm_set_enabled(_pio, _sm, true); + } } - // Convert from microseconds to PIO clock cycles static int usToPIOCycles(int us) { // Parenthesis needed to guarantee order of operations to avoid 32bit overflow @@ -174,23 +179,31 @@ public: // Get CPU cycle count. Needs to do magic to extens 24b HW to something longer volatile uint64_t _epoch = 0; inline uint32_t getCycleCount() { - uint32_t epoch; - uint32_t ctr; - do { - epoch = (uint32_t)_epoch; - ctr = systick_hw->cvr; - } while (epoch != (uint32_t)_epoch); - return epoch + (1 << 24) - ctr; /* CTR counts down from 1<<24-1 */ + if (!__isFreeRTOS) { + uint32_t epoch; + uint32_t ctr; + do { + epoch = (uint32_t)_epoch; + ctr = systick_hw->cvr; + } while (epoch != (uint32_t)_epoch); + return epoch + (1 << 24) - ctr; /* CTR counts down from 1<<24-1 */ + } else { + return ccount_read(_pio, _sm); + } } inline uint64_t getCycleCount64() { - uint64_t epoch; - uint64_t ctr; - do { - epoch = _epoch; - ctr = systick_hw->cvr; - } while (epoch != _epoch); - return epoch + (1LL << 24) - ctr; + if (!__isFreeRTOS) { + uint64_t epoch; + uint64_t ctr; + do { + epoch = _epoch; + ctr = systick_hw->cvr; + } while (epoch != _epoch); + return epoch + (1LL << 24) - ctr; + } else { + return ccount_read(_pio, _sm); + } } void idleOtherCore() { @@ -214,6 +227,8 @@ private: static void _SystickHandler() { rp2040._epoch += 1LL << 24; } + PIO _pio; + int _sm; }; // Wrapper class for PIO programs, abstracting common operations out diff --git a/cores/rp2040/ccount.pio b/cores/rp2040/ccount.pio new file mode 100644 index 00000000..8a924803 --- /dev/null +++ b/cores/rp2040/ccount.pio @@ -0,0 +1,62 @@ +; Cycle Count for the Raspberry Pi Pico RP2040 +; +; Copyright (c) 2022 Earle F. Philhower, III +; +; This library is free software; you can redistribute it and/or +; modify it under the terms of the GNU Lesser General Public +; License as published by the Free Software Foundation; either +; version 2.1 of the License, or (at your option) any later version. +; +; This library is distributed in the hope that it will be useful, +; but WITHOUT ANY WARRANTY; without even the implied warranty of +; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +; Lesser General Public License for more details. +; +; You should have received a copy of the GNU Lesser General Public +; License along with this library; if not, write to the Free Software +; Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +; Cycle count is stored in {-y, -x} + +.program ccount +cnt: + jmp x-- cnt +epoch: + jmp y-- cnt + +% c-sdk { +static inline void ccount_program_init(PIO pio, uint sm, uint offset) { + pio_sm_config c = ccount_program_get_default_config(offset); + pio_sm_init(pio, sm, offset, &c); + pio_sm_exec(pio, sm, pio_encode_set(pio_x, 0)); + pio_sm_exec(pio, sm, pio_encode_set(pio_y, 0)); +} + +static inline uint64_t ccount_read(PIO pio, uint sm) { + static uint64_t extra = 0; + // Guard against having the epoch rollover while we're reading the time. + // If epoch2 != epoch1, we looped in middle and get new LSW + pio_sm_exec(pio, sm, pio_encode_mov(pio_isr, pio_y)); + pio_sm_exec(pio, sm, pio_encode_push(false, false)); + pio_sm_exec(pio, sm, pio_encode_mov(pio_isr, pio_x)); + pio_sm_exec(pio, sm, pio_encode_push(false, false)); + pio_sm_exec(pio, sm, pio_encode_mov(pio_isr, pio_y)); + pio_sm_exec(pio, sm, pio_encode_push(false, false)); + pio_sm_exec(pio, sm, pio_encode_mov(pio_isr, pio_x)); + pio_sm_exec(pio, sm, pio_encode_push(false, false)); + extra += 8; + uint32_t y1 = -((int)pio_sm_get_blocking(pio, sm)); + uint32_t x1 = -((int)pio_sm_get_blocking(pio, sm)); + uint32_t y2 = -((int)pio_sm_get_blocking(pio, sm)); + uint32_t x2 = -((int)pio_sm_get_blocking(pio, sm)); + uint64_t val; + if (y2 != y1) { + val = (((uint64_t)y2) << 32LL) | x2; + } else { + val = (((uint64_t)y1) << 32LL) | x1; + } + return val + extra; +} + +%} + diff --git a/cores/rp2040/ccount.pio.h b/cores/rp2040/ccount.pio.h new file mode 100644 index 00000000..16ac4cd0 --- /dev/null +++ b/cores/rp2040/ccount.pio.h @@ -0,0 +1,71 @@ +// -------------------------------------------------- // +// This file is autogenerated by pioasm; do not edit! // +// -------------------------------------------------- // + +#pragma once + +#if !PICO_NO_HARDWARE +#include "hardware/pio.h" +#endif + +// ------ // +// ccount // +// ------ // + +#define ccount_wrap_target 0 +#define ccount_wrap 1 + +static const uint16_t ccount_program_instructions[] = { + // .wrap_target + 0x0040, // 0: jmp x--, 0 + 0x0080, // 1: jmp y--, 0 + // .wrap +}; + +#if !PICO_NO_HARDWARE +static const struct pio_program ccount_program = { + .instructions = ccount_program_instructions, + .length = 2, + .origin = -1, +}; + +static inline pio_sm_config ccount_program_get_default_config(uint offset) { + pio_sm_config c = pio_get_default_sm_config(); + sm_config_set_wrap(&c, offset + ccount_wrap_target, offset + ccount_wrap); + return c; +} + +static inline void ccount_program_init(PIO pio, uint sm, uint offset) { + pio_sm_config c = ccount_program_get_default_config(offset); + pio_sm_init(pio, sm, offset, &c); + pio_sm_exec(pio, sm, pio_encode_set(pio_x, 0)); + pio_sm_exec(pio, sm, pio_encode_set(pio_y, 0)); +} +static inline uint64_t ccount_read(PIO pio, uint sm) { + static uint64_t extra = 0; + // Guard against having the epoch rollover while we're reading the time. + // If epoch2 != epoch1, we looped in middle and get new LSW + pio_sm_exec(pio, sm, pio_encode_mov(pio_isr, pio_y)); + pio_sm_exec(pio, sm, pio_encode_push(false, false)); + pio_sm_exec(pio, sm, pio_encode_mov(pio_isr, pio_x)); + pio_sm_exec(pio, sm, pio_encode_push(false, false)); + pio_sm_exec(pio, sm, pio_encode_mov(pio_isr, pio_y)); + pio_sm_exec(pio, sm, pio_encode_push(false, false)); + pio_sm_exec(pio, sm, pio_encode_mov(pio_isr, pio_x)); + pio_sm_exec(pio, sm, pio_encode_push(false, false)); + extra += 8; + uint32_t y1 = -((int)pio_sm_get_blocking(pio, sm)); + uint32_t x1 = -((int)pio_sm_get_blocking(pio, sm)); + uint32_t y2 = -((int)pio_sm_get_blocking(pio, sm)); + uint32_t x2 = -((int)pio_sm_get_blocking(pio, sm)); + uint64_t val; + if (y2 != y1) { + val = (((uint64_t)y2) << 32LL) | x2; + } else { + val = (((uint64_t)y1) << 32LL) | x1; + } + return val + extra; +} + +#endif + -- 2.54.0 From 8745f1d966368f15e812c0018fb25a091c3719a8 Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Mon, 18 Apr 2022 22:36:49 -0700 Subject: [PATCH 08/22] style fixes --- cores/rp2040/RP2040Support.h | 2 +- cores/rp2040/ccount.pio.h | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/cores/rp2040/RP2040Support.h b/cores/rp2040/RP2040Support.h index f0ac0489..6423e396 100644 --- a/cores/rp2040/RP2040Support.h +++ b/cores/rp2040/RP2040Support.h @@ -162,7 +162,7 @@ public: _ccountPgm.prepare(&_pio, &_sm, &off); ccount_program_init(_pio, _sm, off); pio_sm_set_enabled(_pio, _sm, true); - } + } } // Convert from microseconds to PIO clock cycles diff --git a/cores/rp2040/ccount.pio.h b/cores/rp2040/ccount.pio.h index 16ac4cd0..3c931b18 100644 --- a/cores/rp2040/ccount.pio.h +++ b/cores/rp2040/ccount.pio.h @@ -16,10 +16,10 @@ #define ccount_wrap 1 static const uint16_t ccount_program_instructions[] = { - // .wrap_target - 0x0040, // 0: jmp x--, 0 - 0x0080, // 1: jmp y--, 0 - // .wrap + // .wrap_target + 0x0040, // 0: jmp x--, 0 + 0x0080, // 1: jmp y--, 0 + // .wrap }; #if !PICO_NO_HARDWARE -- 2.54.0 From 343581e71556e36285ca24be1d8f5bd686e15a81 Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Mon, 18 Apr 2022 22:52:16 -0700 Subject: [PATCH 09/22] Hook in FreeRTOS cycle count fcns --- cores/rp2040/RP2040Support.h | 112 ++++++++++++++++++----------------- cores/rp2040/ccount.pio | 4 +- cores/rp2040/ccount.pio.h | 4 +- cores/rp2040/main.cpp | 4 ++ libraries/FreeRTOS | 2 +- 5 files changed, 66 insertions(+), 60 deletions(-) diff --git a/cores/rp2040/RP2040Support.h b/cores/rp2040/RP2040Support.h index 6423e396..5b8a4aed 100644 --- a/cores/rp2040/RP2040Support.h +++ b/cores/rp2040/RP2040Support.h @@ -143,7 +143,61 @@ private: class RP2040; extern RP2040 rp2040; extern "C" void main1(); +class PIOProgram; +// Wrapper class for PIO programs, abstracting common operations out +// TODO - Add unload/destructor +class PIOProgram { +public: + PIOProgram(const pio_program_t *pgm) { + _pgm = pgm; + } + + // Possibly load into a PIO and allocate a SM + bool prepare(PIO *pio, int *sm, int *offset) { + extern mutex_t _pioMutex; + CoreMutex m(&_pioMutex); + // Is there an open slot to run in, first? + if (!_findFreeSM(pio, sm)) { + return false; + } + // Is it loaded on that PIO? + if (_offset[pio_get_index(*pio)] < 0) { + // Nope, need to load it + if (!pio_can_add_program(*pio, _pgm)) { + return false; + } + _offset[pio_get_index(*pio)] = pio_add_program(*pio, _pgm); + } + // Here it's guaranteed loaded, return values + // PIO and SM already set + *offset = _offset[pio_get_index(*pio)]; + return true; + } + +private: + // Find an unused PIO state machine to grab, returns false when none available + static bool _findFreeSM(PIO *pio, int *sm) { + int idx = pio_claim_unused_sm(pio0, false); + if (idx >= 0) { + *pio = pio0; + *sm = idx; + return true; + } + idx = pio_claim_unused_sm(pio1, false); + if (idx >= 0) { + *pio = pio1; + *sm = idx; + return true; + } + return false; + } + + +private: + int _offset[2] = { -1, -1 }; + const pio_program_t *_pgm; +}; class RP2040 { public: @@ -159,7 +213,8 @@ public: systick_hw->rvr = 0x00FFFFFF; } else { int off; - _ccountPgm.prepare(&_pio, &_sm, &off); + _ccountPgm = new PIOProgram(&ccount_program); + _ccountPgm->prepare(&_pio, &_sm, &off); ccount_program_init(_pio, _sm, off); pio_sm_set_enabled(_pio, _sm, true); } @@ -229,58 +284,5 @@ private: } PIO _pio; int _sm; -}; - -// Wrapper class for PIO programs, abstracting common operations out -// TODO - Add unload/destructor -class PIOProgram { -public: - PIOProgram(const pio_program_t *pgm) { - _pgm = pgm; - } - - // Possibly load into a PIO and allocate a SM - bool prepare(PIO *pio, int *sm, int *offset) { - extern mutex_t _pioMutex; - CoreMutex m(&_pioMutex); - // Is there an open slot to run in, first? - if (!_findFreeSM(pio, sm)) { - return false; - } - // Is it loaded on that PIO? - if (_offset[pio_get_index(*pio)] < 0) { - // Nope, need to load it - if (!pio_can_add_program(*pio, _pgm)) { - return false; - } - _offset[pio_get_index(*pio)] = pio_add_program(*pio, _pgm); - } - // Here it's guaranteed loaded, return values - // PIO and SM already set - *offset = _offset[pio_get_index(*pio)]; - return true; - } - -private: - // Find an unused PIO state machine to grab, returns false when none available - static bool _findFreeSM(PIO *pio, int *sm) { - int idx = pio_claim_unused_sm(pio0, false); - if (idx >= 0) { - *pio = pio0; - *sm = idx; - return true; - } - idx = pio_claim_unused_sm(pio1, false); - if (idx >= 0) { - *pio = pio1; - *sm = idx; - return true; - } - return false; - } - - -private: - int _offset[2] = { -1, -1 }; - const pio_program_t *_pgm; + PIOProgram *_ccountPgm; }; diff --git a/cores/rp2040/ccount.pio b/cores/rp2040/ccount.pio index 8a924803..d65f497c 100644 --- a/cores/rp2040/ccount.pio +++ b/cores/rp2040/ccount.pio @@ -51,9 +51,9 @@ static inline uint64_t ccount_read(PIO pio, uint sm) { uint32_t x2 = -((int)pio_sm_get_blocking(pio, sm)); uint64_t val; if (y2 != y1) { - val = (((uint64_t)y2) << 32LL) | x2; + val = ((((uint64_t)y2) << 32LL) | x2) + y2 /* adjust for missed cycle every epoch increment */; } else { - val = (((uint64_t)y1) << 32LL) | x1; + val = ((((uint64_t)y1) << 32LL) | x1) + y1 /* adjust for missed cycle every epoch increment */; } return val + extra; } diff --git a/cores/rp2040/ccount.pio.h b/cores/rp2040/ccount.pio.h index 3c931b18..ef07b453 100644 --- a/cores/rp2040/ccount.pio.h +++ b/cores/rp2040/ccount.pio.h @@ -60,9 +60,9 @@ static inline uint64_t ccount_read(PIO pio, uint sm) { uint32_t x2 = -((int)pio_sm_get_blocking(pio, sm)); uint64_t val; if (y2 != y1) { - val = (((uint64_t)y2) << 32LL) | x2; + val = ((((uint64_t)y2) << 32LL) | x2) + y2 /* adjust for missed cycle every epoch increment */; } else { - val = (((uint64_t)y1) << 32LL) | x1; + val = ((((uint64_t)y1) << 32LL) | x1) + y1 /* adjust for missed cycle every epoch increment */; } return val + extra; } diff --git a/cores/rp2040/main.cpp b/cores/rp2040/main.cpp index 86b15d96..5f6d6492 100644 --- a/cores/rp2040/main.cpp +++ b/cores/rp2040/main.cpp @@ -130,3 +130,7 @@ extern "C" int main() { } return 0; } + +extern "C" unsigned long ulMainGetRunTimeCounterValue() { + return rp2040.getCycleCount64(); +} diff --git a/libraries/FreeRTOS b/libraries/FreeRTOS index ff500d2d..6c0b28d4 160000 --- a/libraries/FreeRTOS +++ b/libraries/FreeRTOS @@ -1 +1 @@ -Subproject commit ff500d2d4b323d229bee49b71afa9e10274904c9 +Subproject commit 6c0b28d47582eb1e0e8d7e5bf1ff9724f2d54d3a -- 2.54.0 From 03506e7090845e18fd0e1882bc2f223f867be67d Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Mon, 18 Apr 2022 22:57:11 -0700 Subject: [PATCH 10/22] Clean up warning --- cores/rp2040/RP2040Support.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cores/rp2040/RP2040Support.h b/cores/rp2040/RP2040Support.h index 5b8a4aed..10391360 100644 --- a/cores/rp2040/RP2040Support.h +++ b/cores/rp2040/RP2040Support.h @@ -136,7 +136,7 @@ private: mutex_t _idleMutex; queue_t _queue[2]; - static constexpr int _GOTOSLEEP = 0xC0DED02E; + static constexpr uint32_t _GOTOSLEEP = 0xC0DED02E; }; @@ -212,7 +212,7 @@ public: systick_hw->csr = 0x7; systick_hw->rvr = 0x00FFFFFF; } else { - int off; + int off = 0; _ccountPgm = new PIOProgram(&ccount_program); _ccountPgm->prepare(&_pio, &_sm, &off); ccount_program_init(_pio, _sm, off); -- 2.54.0 From 64d54740ed8b632d81b75f6850da1b86ae464ed0 Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Tue, 19 Apr 2022 18:06:06 -0700 Subject: [PATCH 11/22] Fix multicore support --- cores/rp2040/RP2040Support.h | 3 +-- cores/rp2040/main.cpp | 1 + libraries/FreeRTOS | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cores/rp2040/RP2040Support.h b/cores/rp2040/RP2040Support.h index 10391360..5d025549 100644 --- a/cores/rp2040/RP2040Support.h +++ b/cores/rp2040/RP2040Support.h @@ -131,11 +131,10 @@ private: } interrupts(); } - bool _multicore = false; + bool _multicore = false; mutex_t _idleMutex; queue_t _queue[2]; - static constexpr uint32_t _GOTOSLEEP = 0xC0DED02E; }; diff --git a/cores/rp2040/main.cpp b/cores/rp2040/main.cpp index 5f6d6492..3d14b656 100644 --- a/cores/rp2040/main.cpp +++ b/cores/rp2040/main.cpp @@ -126,6 +126,7 @@ extern "C" int main() { __loop(); } } else { + rp2040.fifo.begin(2); startFreeRTOS(); } return 0; diff --git a/libraries/FreeRTOS b/libraries/FreeRTOS index 6c0b28d4..2055a0d0 160000 --- a/libraries/FreeRTOS +++ b/libraries/FreeRTOS @@ -1 +1 @@ -Subproject commit 6c0b28d47582eb1e0e8d7e5bf1ff9724f2d54d3a +Subproject commit 2055a0d02da5360ddc2b20c446b20f028892965e -- 2.54.0 From 9a473b07150f4e43cdafb1e6d1cc82e4ddb0cfb9 Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Wed, 20 Apr 2022 12:49:46 -0700 Subject: [PATCH 12/22] Update FreeRTOS lib --- libraries/FreeRTOS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/FreeRTOS b/libraries/FreeRTOS index 2055a0d0..e3b6d99b 160000 --- a/libraries/FreeRTOS +++ b/libraries/FreeRTOS @@ -1 +1 @@ -Subproject commit 2055a0d02da5360ddc2b20c446b20f028892965e +Subproject commit e3b6d99bcc03b5eb219a709500e5e6178084bad9 -- 2.54.0 From 8d1562c10b1e503ea0f97f3291460bb918d33b2e Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Wed, 20 Apr 2022 13:13:18 -0700 Subject: [PATCH 13/22] Remove separate FreeRTOS porting submodule --- .gitmodules | 6 +- libraries/FreeRTOS | 1 - libraries/FreeRTOS/CODE_OF_CONDUCT.md | 76 ++++ libraries/FreeRTOS/LICENSE | 20 + .../Multicore-FreeRTOS/Multicore-FreeRTOS.ino | 80 ++++ libraries/FreeRTOS/keywords.txt | 60 +++ libraries/FreeRTOS/lib/FreeRTOS-Kernel | 1 + libraries/FreeRTOS/library.properties | 11 + libraries/FreeRTOS/readme.md | 48 +++ libraries/FreeRTOS/src/FreeRTOS.h | 1 + libraries/FreeRTOS/src/FreeRTOSConfig.h | 122 ++++++ libraries/FreeRTOS/src/StackMacros.h | 1 + libraries/FreeRTOS/src/atomic.h | 1 + libraries/FreeRTOS/src/croutine.c | 1 + libraries/FreeRTOS/src/croutine.h | 1 + .../FreeRTOS/src/deprecated_definitions.h | 1 + libraries/FreeRTOS/src/event_groups.c | 1 + libraries/FreeRTOS/src/event_groups.h | 1 + libraries/FreeRTOS/src/freertos_sdk_config.h | 1 + libraries/FreeRTOS/src/heap_3.c | 1 + .../FreeRTOS/src/idle_task_static_memory.c | 1 + libraries/FreeRTOS/src/list.c | 1 + libraries/FreeRTOS/src/list.h | 1 + libraries/FreeRTOS/src/message_buffer.h | 1 + libraries/FreeRTOS/src/mpu_prototypes.h | 1 + libraries/FreeRTOS/src/mpu_wrappers.h | 1 + libraries/FreeRTOS/src/port.c | 1 + libraries/FreeRTOS/src/portable.h | 1 + libraries/FreeRTOS/src/portmacro.h | 1 + libraries/FreeRTOS/src/projdefs.h | 1 + libraries/FreeRTOS/src/queue.c | 1 + libraries/FreeRTOS/src/queue.h | 1 + libraries/FreeRTOS/src/rp2040_config.h | 1 + libraries/FreeRTOS/src/semphr.h | 1 + libraries/FreeRTOS/src/stack_macros.h | 1 + libraries/FreeRTOS/src/stream_buffer.c | 1 + libraries/FreeRTOS/src/stream_buffer.h | 1 + libraries/FreeRTOS/src/task.h | 1 + libraries/FreeRTOS/src/tasks.c | 1 + libraries/FreeRTOS/src/timers.c | 1 + libraries/FreeRTOS/src/timers.h | 1 + libraries/FreeRTOS/src/variantHooks.cpp | 363 ++++++++++++++++++ libraries/FreeRTOS/template/FreeRTOSConfig.h | 113 ++++++ libraries/FreeRTOS/template/RP2040_FreeRTOS.h | 32 ++ libraries/FreeRTOS/template/variantHooks.cpp | 298 ++++++++++++++ 45 files changed, 1258 insertions(+), 4 deletions(-) delete mode 160000 libraries/FreeRTOS create mode 100644 libraries/FreeRTOS/CODE_OF_CONDUCT.md create mode 100644 libraries/FreeRTOS/LICENSE create mode 100644 libraries/FreeRTOS/examples/Multicore-FreeRTOS/Multicore-FreeRTOS.ino create mode 100644 libraries/FreeRTOS/keywords.txt create mode 160000 libraries/FreeRTOS/lib/FreeRTOS-Kernel create mode 100644 libraries/FreeRTOS/library.properties create mode 100644 libraries/FreeRTOS/readme.md create mode 100644 libraries/FreeRTOS/src/FreeRTOS.h create mode 100755 libraries/FreeRTOS/src/FreeRTOSConfig.h create mode 100644 libraries/FreeRTOS/src/StackMacros.h create mode 100644 libraries/FreeRTOS/src/atomic.h create mode 100644 libraries/FreeRTOS/src/croutine.c create mode 100644 libraries/FreeRTOS/src/croutine.h create mode 100644 libraries/FreeRTOS/src/deprecated_definitions.h create mode 100644 libraries/FreeRTOS/src/event_groups.c create mode 100644 libraries/FreeRTOS/src/event_groups.h create mode 100644 libraries/FreeRTOS/src/freertos_sdk_config.h create mode 100644 libraries/FreeRTOS/src/heap_3.c create mode 100644 libraries/FreeRTOS/src/idle_task_static_memory.c create mode 100644 libraries/FreeRTOS/src/list.c create mode 100644 libraries/FreeRTOS/src/list.h create mode 100644 libraries/FreeRTOS/src/message_buffer.h create mode 100644 libraries/FreeRTOS/src/mpu_prototypes.h create mode 100644 libraries/FreeRTOS/src/mpu_wrappers.h create mode 100644 libraries/FreeRTOS/src/port.c create mode 100644 libraries/FreeRTOS/src/portable.h create mode 100644 libraries/FreeRTOS/src/portmacro.h create mode 100644 libraries/FreeRTOS/src/projdefs.h create mode 100644 libraries/FreeRTOS/src/queue.c create mode 100644 libraries/FreeRTOS/src/queue.h create mode 100644 libraries/FreeRTOS/src/rp2040_config.h create mode 100644 libraries/FreeRTOS/src/semphr.h create mode 100644 libraries/FreeRTOS/src/stack_macros.h create mode 100644 libraries/FreeRTOS/src/stream_buffer.c create mode 100644 libraries/FreeRTOS/src/stream_buffer.h create mode 100644 libraries/FreeRTOS/src/task.h create mode 100644 libraries/FreeRTOS/src/tasks.c create mode 100644 libraries/FreeRTOS/src/timers.c create mode 100644 libraries/FreeRTOS/src/timers.h create mode 100644 libraries/FreeRTOS/src/variantHooks.cpp create mode 100755 libraries/FreeRTOS/template/FreeRTOSConfig.h create mode 100644 libraries/FreeRTOS/template/RP2040_FreeRTOS.h create mode 100644 libraries/FreeRTOS/template/variantHooks.cpp diff --git a/.gitmodules b/.gitmodules index 0c67644b..3116128d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -25,6 +25,6 @@ [submodule "libraries/Adafruit_TinyUSB_Arduino"] path = libraries/Adafruit_TinyUSB_Arduino url = https://github.com/adafruit/Adafruit_TinyUSB_Arduino.git -[submodule "libraries/FreeRTOS"] - path = libraries/FreeRTOS - url = https://github.com/earlephilhower/RP2040_FreeRTOS.git +[submodule "libraries/FreeRTOS/lib/FreeRTOS-Kernel"] + path = libraries/FreeRTOS/lib/FreeRTOS-Kernel + url = https://github.com/earlephilhower/FreeRTOS-Kernel.git diff --git a/libraries/FreeRTOS b/libraries/FreeRTOS deleted file mode 160000 index e3b6d99b..00000000 --- a/libraries/FreeRTOS +++ /dev/null @@ -1 +0,0 @@ -Subproject commit e3b6d99bcc03b5eb219a709500e5e6178084bad9 diff --git a/libraries/FreeRTOS/CODE_OF_CONDUCT.md b/libraries/FreeRTOS/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..8db34404 --- /dev/null +++ b/libraries/FreeRTOS/CODE_OF_CONDUCT.md @@ -0,0 +1,76 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at phillip.stevens@gmail.com. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see +https://www.contributor-covenant.org/faq diff --git a/libraries/FreeRTOS/LICENSE b/libraries/FreeRTOS/LICENSE new file mode 100644 index 00000000..a4459f8f --- /dev/null +++ b/libraries/FreeRTOS/LICENSE @@ -0,0 +1,20 @@ + +Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/libraries/FreeRTOS/examples/Multicore-FreeRTOS/Multicore-FreeRTOS.ino b/libraries/FreeRTOS/examples/Multicore-FreeRTOS/Multicore-FreeRTOS.ino new file mode 100644 index 00000000..a7e6a404 --- /dev/null +++ b/libraries/FreeRTOS/examples/Multicore-FreeRTOS/Multicore-FreeRTOS.ino @@ -0,0 +1,80 @@ +// Demonstrates a simple use of the setup1()/loop1() functions +// for a multiprocessor run. + +// Will output something like, where C0 is running on core 0 and +// C1 is on core 1, in parallel. + +// 11:23:07.507 -> C0: Blue leader standing by... +// 11:23:07.507 -> C1: Red leader standing by... +// 11:23:07.507 -> C1: Stay on target... +// 11:23:08.008 -> C1: Stay on target... +// 11:23:08.505 -> C0: Blue leader standing by... +// 11:23:08.505 -> C1: Stay on target... +// 11:23:09.007 -> C1: Stay on target... +// 11:23:09.511 -> C0: Blue leader standing by... +// 11:23:09.511 -> C1: Stay on target... +// 11:23:10.015 -> C1: Stay on target... + +// Released to the public domain +#include +#include +#include +#include + +std::map eTaskStateName { {eReady, "Ready"}, { eRunning, "Running" }, {eBlocked, "Blocked"}, {eSuspended, "Suspended"}, {eDeleted, "Deleted"} }; +void ps() { + int tasks = uxTaskGetNumberOfTasks(); + TaskStatus_t *pxTaskStatusArray = new TaskStatus_t[tasks]; + unsigned long runtime; + tasks = uxTaskGetSystemState( pxTaskStatusArray, tasks, &runtime ); + Serial.printf("# Tasks: %d\n", tasks); + Serial.println("ID, NAME, STATE, PRIO, CYCLES"); + for (int i=0; i < tasks; i++) { + Serial.printf("%d: %-16s %-10s %d %lu\n", i, pxTaskStatusArray[i].pcTaskName, eTaskStateName[pxTaskStatusArray[i].eCurrentState], pxTaskStatusArray[i].uxCurrentPriority, pxTaskStatusArray[i].ulRunTimeCounter); + } + delete[] pxTaskStatusArray; +} + + +void blink(void *param) { + pinMode(LED_BUILTIN, OUTPUT); + while (true) { + digitalWrite(LED_BUILTIN, LOW); + delay(750); + digitalWrite(LED_BUILTIN, HIGH); + delay(250); + } +} + + +void setup() { + Serial.begin(115200); + xTaskCreate(blink, "BLINK", 128, nullptr, 1, nullptr); + delay(5000); +} + +volatile int val= 0; +void loop() { + Serial.printf("C0: Blue leader standing by...\n"); + ps(); + Serial.printf("val: %d\n", val); + delay(1000); +} + +// Running on core1 +void setup1() { + delay(5000); + //Serial.printf("C1: Red leader standing by...\n"); +} + +void loop1() { + static int x = 0; + //Serial.printf("C1: Stay on target...\n"); + val++; + if (++x < 10) { + EEPROM.begin(512); + EEPROM.write(0,x); + EEPROM.commit(); + } + delay(1000); +} diff --git a/libraries/FreeRTOS/keywords.txt b/libraries/FreeRTOS/keywords.txt new file mode 100644 index 00000000..410c1285 --- /dev/null +++ b/libraries/FreeRTOS/keywords.txt @@ -0,0 +1,60 @@ +# Syntax Coloring Map For FreeRTOS +# https://arduino.github.io/arduino-cli/library-specification/#keywords +# Formatted by a single true tab (not spaces) + +# Datatypes (KEYWORD1) +StackType_t KEYWORD1 +BaseType_t KEYWORD1 +UBaseType_t KEYWORD1 +TickType_t KEYWORD1 + +TaskHandle_t KEYWORD1 +QueueHandle_t KEYWORD1 +TimerHandle_t KEYWORD1 +SemaphoreHandle_t KEYWORD1 +StreamBufferHandle_t KEYWORD1 +MessageBufferHandle_t KEYWORD1 +EventGroupHandle_t KEYWORD1 + +# Methods and Functions (KEYWORD2) +xSemaphoreCreateMutex KEYWORD2 +xSemaphoreCreateBinary KEYWORD2 +xSemaphoreTake KEYWORD2 +xSemaphoreTakeFromISR KEYWORD2 +xSemaphoreGive KEYWORD2 +xSemaphoreGiveFromISR KEYWORD2 +xTaskCreate KEYWORD2 +vTaskDelete KEYWORD2 +vTaskDelay KEYWORD2 +xTaskDelayUntil KEYWORD2 +xQueueCreate KEYWORD2 +xQueueSend KEYWORD2 +xQueueReceive KEYWORD2 +pcTaskGetName KEYWORD2 +ulTaskNotifyTake KEYWORD2 +vTaskNotifyGiveFromISR KEYWORD2 +taskYIELD KEYWORD2 +vTaskSuspend KEYWORD2 +vTaskResume KEYWORD2 +xTaskResumeFromISR KEYWORD2 +xTaskGetTickCount KEYWORD2 +xTaskGetTickCountFromISR KEYWORD2 +uxTaskGetNumberOfTasks KEYWORD2 +uxTaskGetStackHighWaterMark KEYWORD2 + +# Instances (KEYWORD2) + +# Structures (KEYWORD3) +TaskParameters_t KEYWORD3 +TaskStatus_t KEYWORD3 +ListItem_t KEYWORD3 +MiniListItem_t KEYWORD3 +HeapStats_t KEYWORD3 + +# Constants (LITERAL1) +portUSE_WDTO LITERAL1 +portTICK_PERIOD_MS LITERAL1 +configTICK_RATE_HZ LITERAL1 +configCPU_CLOCK_HZ LITERAL1 +configMAX_PRIORITIES LITERAL1 +configMINIMAL_STACK_SIZE LITERAL1 diff --git a/libraries/FreeRTOS/lib/FreeRTOS-Kernel b/libraries/FreeRTOS/lib/FreeRTOS-Kernel new file mode 160000 index 00000000..26274330 --- /dev/null +++ b/libraries/FreeRTOS/lib/FreeRTOS-Kernel @@ -0,0 +1 @@ +Subproject commit 262743303baebba5f58eeab45134fd0510e2a433 diff --git a/libraries/FreeRTOS/library.properties b/libraries/FreeRTOS/library.properties new file mode 100644 index 00000000..1ad6e9f1 --- /dev/null +++ b/libraries/FreeRTOS/library.properties @@ -0,0 +1,11 @@ +name=RP2040_FreeRTOS +version=1.0.0 +author=Graham Sanderson +maintainer=Graham Sanderson +sentence=

FreeRTOS Real Time Operating System implemented for RP2040.

+paragraph=Taken from the official FreeRTOS SMP branch. +category=Timing +url=https://github.com/FreeRTOS/FreeRTOS-Kernel +architectures=rp2040 +license=MIT +includes=RP2040_FreeRTOS.h diff --git a/libraries/FreeRTOS/readme.md b/libraries/FreeRTOS/readme.md new file mode 100644 index 00000000..e7f22b5b --- /dev/null +++ b/libraries/FreeRTOS/readme.md @@ -0,0 +1,48 @@ +**ATTENTION** +Please be aware that this library was copied from the original Arduino AVR FreeRTOS library and may still contain files from that library that have no meaning in the context of this package, i.e. the licensing and code of conduct file! Each file retains the license and copyright from where it was taken (FreeRTOS repository or AVR FreeRTOS library, respectively.) + +________________________________________________________________________________________________ + +This is a copy of the RP2040 port of the FreeRTOS SMP branch, packaged as an Arduino library. + +It has been created to provide access to FreeRTOS capabilities, with full compatibility to the Arduino environment. +It does this by keeping hands off almost everything, and only touching the minimum of hardware to be successful. + +This library right now will not work with any RP2040 Arduino core out of the box: +* Earle F. Philhower's [arduino-pico core](https://github.com/earlephilhower/arduino-pico) + This initializes the second MCU core during startup, causing FreeRTOS to crash during initialization. These initializations can easily be commented + out, but this means the core has to be modified manually after each update. +* Arduino Mbed RP2040 core + Does not contain the Raspberry Pi Pico SDK, and as such is not able to compile FreeRTOS, as it uses the Pico SDK. +* Seeedstudio RP2040 XIAO + This isn't really an Arduino core by itself, as it is just a clone of Earle F. Philhower's Arduino core release 1.9.3 as the time of this writing. + +## General + +FreeRTOS has a multitude of configuration options, which can be specified from within the FreeRTOSConfig.h file. +To keep commonality with all of the Arduino hardware options, some sensible defaults have been selected. + +System ticks are 1ms, which means that Tasks can only be scheduled to run up to 1000 times per second. + +Stack for the `loop()` function has been set at 256 bytes. This can be configured by adjusting the `configMINIMAL_STACK_SIZE` parameter. If you have stack overflow issues, just increase it. +Users should prefer to allocate larger structures, arrays, or buffers using `pvPortMalloc()`, rather than defining them locally on the stack. + +Memory for the heap is allocated by the normal `malloc()` function, wrapped by `pvPortMalloc()`. +This option has been selected because it is automatically adjusted to use the capabilities of each device. +Other heap allocation schemes are supported by FreeRTOS, and they can used with additional configuration. + +## Errors + +* Stack Overflow: If any stack (for the `loop()` or) for any Task overflows, there will be a slow LED blink, with 4 second cycle. +* Heap Overflow: If any Task tries to allocate memory and that allocation fails, there will be a fast LED blink, with 100 millisecond cycle. + +## Files & Configuration + +* `RP2040_FreeRTOS.h` : Must always be `#include` first. It references other configuration files, and sets defaults where necessary. +* `FreeRTOSConfig.h` : Contains a multitude of API and environment configurations. +* `variantHooks.cpp` : Contains the RP2040 specific configurations for this port of FreeRTOS. +* `heap_3.c` : Contains the heap allocation scheme based on `malloc()`. Other schemes are available, but depend on user configuration for specific MCU choice. + +## Sources / Credits ✨ + +This library is built on the efforts of the authors of the FreeRTOS SMP port for the RP2040, using the original Arduino FreeRTOS library as a template for the library package and the Arduino specific behavior. diff --git a/libraries/FreeRTOS/src/FreeRTOS.h b/libraries/FreeRTOS/src/FreeRTOS.h new file mode 100644 index 00000000..1db1c270 --- /dev/null +++ b/libraries/FreeRTOS/src/FreeRTOS.h @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/include/FreeRTOS.h" diff --git a/libraries/FreeRTOS/src/FreeRTOSConfig.h b/libraries/FreeRTOS/src/FreeRTOSConfig.h new file mode 100755 index 00000000..4e6b9d67 --- /dev/null +++ b/libraries/FreeRTOS/src/FreeRTOSConfig.h @@ -0,0 +1,122 @@ +/* Cores */ +#define configNUM_CORES 2 +#define configUSE_CORE_AFFINITY 1 +#define configRUN_MULTIPLE_PRIORITIES 1 + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 1 +#define configUSE_MINIMAL_IDLE_HOOK 1 +#define configUSE_TICK_HOOK 1 +#define configCPU_CLOCK_HZ ( ( unsigned long ) F_CPU ) +#define configTICK_RATE_HZ ( ( TickType_t ) 1000 ) +#define configMAX_PRIORITIES ( 9 ) +#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 256 ) +#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 164 * 1024 ) ) +#define configMAX_TASK_NAME_LEN ( 10 ) +#define configUSE_TRACE_FACILITY 1 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 1 +#define configUSE_MUTEXES 1 +#define configQUEUE_REGISTRY_SIZE 8 +#define configUSE_RECURSIVE_MUTEXES 1 +#define configUSE_MALLOC_FAILED_HOOK 1 +#define configUSE_APPLICATION_TASK_TAG 0 +#define configUSE_COUNTING_SEMAPHORES 1 +#define configUSE_QUEUE_SETS 1 +#define configSUPPORT_DYNAMIC_ALLOCATION 1 +#define configSUPPORT_STATIC_ALLOCATION 0 + +/* Run time stats related definitions. */ +void vMainConfigureTimerForRunTimeStats( void ); +unsigned long ulMainGetRunTimeCounterValue( void ); +#define configGENERATE_RUN_TIME_STATS 1 +#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() //vMainConfigureTimerForRunTimeStats() +#define portGET_RUN_TIME_COUNTER_VALUE() ulMainGetRunTimeCounterValue() + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 1 +#define configMAX_CO_ROUTINE_PRIORITIES ( 2 ) + +/* Software timer definitions. */ +#define configUSE_TIMERS 1 +#define configTIMER_TASK_PRIORITY ( 2 ) +#define configTIMER_QUEUE_LENGTH 5 +#define configTIMER_TASK_STACK_DEPTH ( 80 ) + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_xTaskGetCurrentTaskHandle 1 +#define INCLUDE_vTaskPrioritySet 1 +#define INCLUDE_uxTaskPriorityGet 1 +#define INCLUDE_vTaskDelete 1 +#define INCLUDE_vTaskCleanUpResources 1 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 1 +#define INCLUDE_vTaskDelay 1 +#define INCLUDE_eTaskGetState 1 + +/* This demo makes use of one or more example stats formatting functions. These +format the raw data provided by the uxTaskGetSystemState() function in to human +readable ASCII form. See the notes in the implementation of vTaskList() within +FreeRTOS/Source/tasks.c for limitations. */ +#define configUSE_STATS_FORMATTING_FUNCTIONS 1 + +#define configUSE_MUTEXES 1 +#define INCLUDE_uxTaskGetStackHighWaterMark 1 +#define INCLUDE_xTaskGetIdleTaskHandle 1 +#define configUSE_MALLOC_FAILED_HOOK 1 +#define configCHECK_FOR_STACK_OVERFLOW 2 +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ + +/* Cortex-M specific definitions. */ +#undef __NVIC_PRIO_BITS +#ifdef __NVIC_PRIO_BITS + /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ + #define configPRIO_BITS __NVIC_PRIO_BITS +#else + #define configPRIO_BITS 3 /* 8 priority levels */ +#endif + +/* The lowest interrupt priority that can be used in a call to a "set priority" +function. */ +#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0x7 + +/* The highest interrupt priority that can be used by any interrupt service +routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL +INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER +PRIORITY THAN THIS! (higher priorities are lower numeric values. */ +#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 5 + +/* Interrupt priorities used by the kernel port layer itself. These are generic +to all Cortex-M ports, and do not rely on any particular library functions. */ +#define configKERNEL_INTERRUPT_PRIORITY ( configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) ) +/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! +See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) ) + +extern void rtosFatalError(void); +#define configASSERT( x ) \ + if( ( x ) == 0 ) { portDISABLE_INTERRUPTS(); rtosFatalError(); } + +/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS +standard names - or at least those used in the unmodified vector table. */ +//#define xPortPendSVHandler PendSV_Handler +//#define xPortSysTickHandler SysTick_Handler +//#define vPortSVCHandler SVC_Handler + +/* The size of the global output buffer that is available for use when there +are multiple command interpreters running at once (for example, one on a UART +and one on TCP/IP). This is done to prevent an output buffer being defined by +each implementation - which would waste RAM. In this case, there is only one +command interpreter running. */ +#define configCOMMAND_INT_MAX_OUTPUT_SIZE 2048 + + +#define configUSE_DYNAMIC_EXCEPTION_HANDLERS 1 +#define configSUPPORT_PICO_SYNC_INTEROP 1 +#define configSUPPORT_PICO_TIME_INTEROP 1 + + +#include "rp2040_config.h" +//#include "task.h" diff --git a/libraries/FreeRTOS/src/StackMacros.h b/libraries/FreeRTOS/src/StackMacros.h new file mode 100644 index 00000000..d0fe8ccb --- /dev/null +++ b/libraries/FreeRTOS/src/StackMacros.h @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/include/StackMacros.h" diff --git a/libraries/FreeRTOS/src/atomic.h b/libraries/FreeRTOS/src/atomic.h new file mode 100644 index 00000000..48e0dbf9 --- /dev/null +++ b/libraries/FreeRTOS/src/atomic.h @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/include/atomic.h" diff --git a/libraries/FreeRTOS/src/croutine.c b/libraries/FreeRTOS/src/croutine.c new file mode 100644 index 00000000..f9f31301 --- /dev/null +++ b/libraries/FreeRTOS/src/croutine.c @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/croutine.c" diff --git a/libraries/FreeRTOS/src/croutine.h b/libraries/FreeRTOS/src/croutine.h new file mode 100644 index 00000000..e9b12838 --- /dev/null +++ b/libraries/FreeRTOS/src/croutine.h @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/include/croutine.h" diff --git a/libraries/FreeRTOS/src/deprecated_definitions.h b/libraries/FreeRTOS/src/deprecated_definitions.h new file mode 100644 index 00000000..cde8163f --- /dev/null +++ b/libraries/FreeRTOS/src/deprecated_definitions.h @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/include/deprecated_definitions.h" diff --git a/libraries/FreeRTOS/src/event_groups.c b/libraries/FreeRTOS/src/event_groups.c new file mode 100644 index 00000000..1d356b23 --- /dev/null +++ b/libraries/FreeRTOS/src/event_groups.c @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/event_groups.c" diff --git a/libraries/FreeRTOS/src/event_groups.h b/libraries/FreeRTOS/src/event_groups.h new file mode 100644 index 00000000..6f50a091 --- /dev/null +++ b/libraries/FreeRTOS/src/event_groups.h @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/include/event_groups.h" diff --git a/libraries/FreeRTOS/src/freertos_sdk_config.h b/libraries/FreeRTOS/src/freertos_sdk_config.h new file mode 100644 index 00000000..0c77d9cc --- /dev/null +++ b/libraries/FreeRTOS/src/freertos_sdk_config.h @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/portable/ThirdParty/GCC/RP2040/include/freertos_sdk_config.h" diff --git a/libraries/FreeRTOS/src/heap_3.c b/libraries/FreeRTOS/src/heap_3.c new file mode 100644 index 00000000..2b2c8a98 --- /dev/null +++ b/libraries/FreeRTOS/src/heap_3.c @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/portable/MemMang/heap_3.c" diff --git a/libraries/FreeRTOS/src/idle_task_static_memory.c b/libraries/FreeRTOS/src/idle_task_static_memory.c new file mode 100644 index 00000000..94d98a1e --- /dev/null +++ b/libraries/FreeRTOS/src/idle_task_static_memory.c @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/portable/ThirdParty/GCC/RP2040/idle_task_static_memory.c" diff --git a/libraries/FreeRTOS/src/list.c b/libraries/FreeRTOS/src/list.c new file mode 100644 index 00000000..310e9594 --- /dev/null +++ b/libraries/FreeRTOS/src/list.c @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/list.c" diff --git a/libraries/FreeRTOS/src/list.h b/libraries/FreeRTOS/src/list.h new file mode 100644 index 00000000..29aefcba --- /dev/null +++ b/libraries/FreeRTOS/src/list.h @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/include/list.h" diff --git a/libraries/FreeRTOS/src/message_buffer.h b/libraries/FreeRTOS/src/message_buffer.h new file mode 100644 index 00000000..cb67683a --- /dev/null +++ b/libraries/FreeRTOS/src/message_buffer.h @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/include/message_buffer.h" diff --git a/libraries/FreeRTOS/src/mpu_prototypes.h b/libraries/FreeRTOS/src/mpu_prototypes.h new file mode 100644 index 00000000..b4313789 --- /dev/null +++ b/libraries/FreeRTOS/src/mpu_prototypes.h @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/include/mpu_prototypes.h" diff --git a/libraries/FreeRTOS/src/mpu_wrappers.h b/libraries/FreeRTOS/src/mpu_wrappers.h new file mode 100644 index 00000000..2c0116cd --- /dev/null +++ b/libraries/FreeRTOS/src/mpu_wrappers.h @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/include/mpu_wrappers.h" diff --git a/libraries/FreeRTOS/src/port.c b/libraries/FreeRTOS/src/port.c new file mode 100644 index 00000000..2327f462 --- /dev/null +++ b/libraries/FreeRTOS/src/port.c @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/portable/ThirdParty/GCC/RP2040/port.c" diff --git a/libraries/FreeRTOS/src/portable.h b/libraries/FreeRTOS/src/portable.h new file mode 100644 index 00000000..c2bedb52 --- /dev/null +++ b/libraries/FreeRTOS/src/portable.h @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/include/portable.h" diff --git a/libraries/FreeRTOS/src/portmacro.h b/libraries/FreeRTOS/src/portmacro.h new file mode 100644 index 00000000..e769db5b --- /dev/null +++ b/libraries/FreeRTOS/src/portmacro.h @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/portable/ThirdParty/GCC/RP2040/include/portmacro.h" diff --git a/libraries/FreeRTOS/src/projdefs.h b/libraries/FreeRTOS/src/projdefs.h new file mode 100644 index 00000000..712d6139 --- /dev/null +++ b/libraries/FreeRTOS/src/projdefs.h @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/include/projdefs.h" diff --git a/libraries/FreeRTOS/src/queue.c b/libraries/FreeRTOS/src/queue.c new file mode 100644 index 00000000..59a8f7e9 --- /dev/null +++ b/libraries/FreeRTOS/src/queue.c @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/queue.c" diff --git a/libraries/FreeRTOS/src/queue.h b/libraries/FreeRTOS/src/queue.h new file mode 100644 index 00000000..091e7390 --- /dev/null +++ b/libraries/FreeRTOS/src/queue.h @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/include/queue.h" diff --git a/libraries/FreeRTOS/src/rp2040_config.h b/libraries/FreeRTOS/src/rp2040_config.h new file mode 100644 index 00000000..a57b4421 --- /dev/null +++ b/libraries/FreeRTOS/src/rp2040_config.h @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/portable/ThirdParty/GCC/RP2040/include/rp2040_config.h" diff --git a/libraries/FreeRTOS/src/semphr.h b/libraries/FreeRTOS/src/semphr.h new file mode 100644 index 00000000..c8595369 --- /dev/null +++ b/libraries/FreeRTOS/src/semphr.h @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/include/semphr.h" diff --git a/libraries/FreeRTOS/src/stack_macros.h b/libraries/FreeRTOS/src/stack_macros.h new file mode 100644 index 00000000..aff6f3c0 --- /dev/null +++ b/libraries/FreeRTOS/src/stack_macros.h @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/include/stack_macros.h" diff --git a/libraries/FreeRTOS/src/stream_buffer.c b/libraries/FreeRTOS/src/stream_buffer.c new file mode 100644 index 00000000..0f93af55 --- /dev/null +++ b/libraries/FreeRTOS/src/stream_buffer.c @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/stream_buffer.c" diff --git a/libraries/FreeRTOS/src/stream_buffer.h b/libraries/FreeRTOS/src/stream_buffer.h new file mode 100644 index 00000000..dcdf5af6 --- /dev/null +++ b/libraries/FreeRTOS/src/stream_buffer.h @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/include/stream_buffer.h" diff --git a/libraries/FreeRTOS/src/task.h b/libraries/FreeRTOS/src/task.h new file mode 100644 index 00000000..2e38c2e9 --- /dev/null +++ b/libraries/FreeRTOS/src/task.h @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/include/task.h" diff --git a/libraries/FreeRTOS/src/tasks.c b/libraries/FreeRTOS/src/tasks.c new file mode 100644 index 00000000..eb3e0695 --- /dev/null +++ b/libraries/FreeRTOS/src/tasks.c @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/tasks.c" diff --git a/libraries/FreeRTOS/src/timers.c b/libraries/FreeRTOS/src/timers.c new file mode 100644 index 00000000..ca907b66 --- /dev/null +++ b/libraries/FreeRTOS/src/timers.c @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/timers.c" diff --git a/libraries/FreeRTOS/src/timers.h b/libraries/FreeRTOS/src/timers.h new file mode 100644 index 00000000..db546520 --- /dev/null +++ b/libraries/FreeRTOS/src/timers.h @@ -0,0 +1 @@ +#include "../lib/FreeRTOS-Kernel/include/timers.h" diff --git a/libraries/FreeRTOS/src/variantHooks.cpp b/libraries/FreeRTOS/src/variantHooks.cpp new file mode 100644 index 00000000..3553ffb8 --- /dev/null +++ b/libraries/FreeRTOS/src/variantHooks.cpp @@ -0,0 +1,363 @@ +/* + * Copyright (C) 2021 Phillip Stevens All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * This file is NOT part of the FreeRTOS distribution. + * + */ +#include + +/* Arduino Core includes */ +#include +#include + +/* Raspberry PI Pico includes */ +#include +#include + +/* FreeRTOS includes. */ +#include "FreeRTOS.h" +#include "task.h" +#include "timers.h" + +/*-----------------------------------------------------------*/ + +void initFreeRTOS(void) +{ +} + +extern void setup() __attribute__((weak)); +extern void loop() __attribute__((weak)); +extern void setup1() __attribute__((weak)); +extern void loop1() __attribute__((weak)); +// Idle functions (USB, events, ...) from the core +extern void __loop(); + +static void __core0(void *params) +{ + (void) params; + if (setup) { + setup(); + } + if (loop) { + while (1) { + loop(); + __loop(); + } + } else { + while (1) { + __loop(); + } + } +} + +static void __core1(void *params) +{ + (void) params; + if (setup1) { + setup1(); + } + if (loop1) { + while (1) { + loop1(); + } + } else { + while (1) { + vTaskDelay(1000); + } + } +} + +extern "C" void delay(unsigned long ms) { + vTaskDelay(ms / portTICK_PERIOD_MS); +} + +extern "C" void yield() { + taskYIELD(); +} + +void startFreeRTOS(void) +{ + + TaskHandle_t c0; + xTaskCreate(__core0, "CORE0", 1024, 0, configMAX_PRIORITIES / 2, &c0); + vTaskCoreAffinitySet( c0, 1 << 0 ); + + if (setup1 || loop1) { + TaskHandle_t c1; + xTaskCreate(__core1, "CORE1", 1024, 0, configMAX_PRIORITIES / 2, &c1); + vTaskCoreAffinitySet( c1, 1 << 1 ); + } + + // Initialise and run the freeRTOS scheduler. Execution should never return here. + vTaskStartScheduler(); + + while (true) { + /* noop */ + } +} + + +/*-----------------------------------------------------------*/ + +void prvDisableInterrupts() +{ + portDISABLE_INTERRUPTS(); +} + +void prvEnableInterrupts() +{ + portENABLE_INTERRUPTS(); +} + +/*-----------------------------------------------------------*/ +#if ( configUSE_IDLE_HOOK == 1 ) +/* + * Call the user defined loop() function from within the idle task. + * This allows the application designer to add background functionality + * without the overhead of a separate task. + * + * NOTE: vApplicationIdleHook() MUST NOT, UNDER ANY CIRCUMSTANCES, CALL A FUNCTION THAT MIGHT BLOCK. + * + */ + +extern "C" +void vApplicationIdleHook( void ) __attribute__((weak)); + + +void vApplicationIdleHook( void ) +{ + //__wfe(); // Low power idle if nothing to do... +} + +#endif /* configUSE_IDLE_HOOK == 1 */ +/*-----------------------------------------------------------*/ + +#if ( configUSE_MINIMAL_IDLE_HOOK == 1 ) +/* + * Call the user defined minimalIdle() function from within the idle task. + * This allows the application designer to add background functionality + * without the overhead of a separate task. + * + * NOTE: vApplicationMinimalIdleHook() MUST NOT, UNDER ANY CIRCUMSTANCES, CALL A FUNCTION THAT MIGHT BLOCK. + * + */ +void minimalIdle( void ) __attribute__((weak)); +void minimalIdle() {} //Empty minimalIdle function + +extern "C" +void vApplicationMinimalIdleHook( void ) __attribute__((weak)); + +void vApplicationMinimalIdleHook( void ) +{ + minimalIdle(); +} + +#endif /* configUSE_MINIMAL_IDLE_HOOK == 1 */ +/*-----------------------------------------------------------*/ + +#if ( configUSE_TICK_HOOK == 1 ) +/* + * Call the user defined minimalIdle() function from within the idle task. + * This allows the application designer to add background functionality + * without the overhead of a separate task. + * + * NOTE: vApplicationMinimalIdleHook() MUST NOT, UNDER ANY CIRCUMSTANCES, CALL A FUNCTION THAT MIGHT BLOCK. + * + */ +void tick( void ) __attribute__((weak)); +void tick() {} //Empty minimalIdle function + +extern "C" +void vApplicationTickHook( void ) __attribute__((weak)); + +void vApplicationTickHook( void ) +{ + tick(); +} + +#endif /* configUSE_TICK_HOOK == 1 */ +/*-----------------------------------------------------------*/ + +#if ( configUSE_MALLOC_FAILED_HOOK == 1 || configCHECK_FOR_STACK_OVERFLOW >= 1 || configDEFAULT_ASSERT == 1 ) + +/** + * Private function to enable board led to use it in application hooks + */ +void prvSetMainLedOn( void ) +{ + gpio_init(LED_BUILTIN); + gpio_set_dir(LED_BUILTIN, true); + gpio_put(LED_BUILTIN, true); +} + +/** + * Private function to blink board led to use it in application hooks + */ +void prvBlinkMainLed( void ) +{ + gpio_put(LED_BUILTIN, !gpio_get(LED_BUILTIN)); +} + +#endif + +/*---------------------------------------------------------------------------*\ +Usage: + called on fatal error (interrupts disabled already) +\*---------------------------------------------------------------------------*/ +extern "C" +void rtosFatalError(void) +{ + prvSetMainLedOn(); // Main LED on. + + for(;;) + { + // Main LED slow flash + sleep_ms(100); + prvBlinkMainLed(); + sleep_ms(2000); + prvBlinkMainLed(); + } +} + +#if ( configUSE_MALLOC_FAILED_HOOK == 1 ) +/*---------------------------------------------------------------------------*\ +Usage: + called by task system when a malloc failure is noticed +Description: + Malloc failure handler -- Shut down all interrupts, send serious complaint + to command port. FAST Blink on main LED. +Arguments: + pxTask - pointer to task handle + pcTaskName - pointer to task name +Results: + +Notes: + This routine will never return. + This routine is referenced in the task.c file of FreeRTOS as an extern. +\*---------------------------------------------------------------------------*/ +extern "C" +void vApplicationMallocFailedHook( void ) __attribute__((weak)); + +void vApplicationMallocFailedHook( void ) +{ + prvSetMainLedOn(); // Main LED on. + + for(;;) + { + sleep_ms(50); + prvBlinkMainLed(); // Main LED fast blink. + } +} + +#endif /* configUSE_MALLOC_FAILED_HOOK == 1 */ +/*-----------------------------------------------------------*/ + + +#if ( configCHECK_FOR_STACK_OVERFLOW >= 1 ) + +extern "C" +void vApplicationStackOverflowHook( TaskHandle_t xTask, + char * pcTaskName ) __attribute__((weak)); + +void vApplicationStackOverflowHook( TaskHandle_t xTask __attribute__((unused)), + char * pcTaskName __attribute__((unused)) ) +{ + prvSetMainLedOn(); // Main LED on. + + for(;;) + { + sleep_ms(2000); + prvBlinkMainLed(); // Main LED slow blink. + } +} + +#endif /* configCHECK_FOR_STACK_OVERFLOW >= 1 */ +/*-----------------------------------------------------------*/ + +#if ( configSUPPORT_STATIC_ALLOCATION >= 1 ) + +extern "C" +void vApplicationGetIdleTaskMemory( StaticTask_t ** ppxIdleTaskTCBBuffer, + StackType_t ** ppxIdleTaskStackBuffer, + configSTACK_DEPTH_TYPE * pulIdleTaskStackSize ) __attribute__((weak)); + +void vApplicationGetIdleTaskMemory( StaticTask_t ** ppxIdleTaskTCBBuffer, + StackType_t ** ppxIdleTaskStackBuffer, + configSTACK_DEPTH_TYPE * pulIdleTaskStackSize ) +{ + static StaticTask_t xIdleTaskTCB; + static StackType_t uxIdleTaskStack[ configMINIMAL_STACK_SIZE ]; + + *ppxIdleTaskTCBBuffer = &xIdleTaskTCB; + *ppxIdleTaskStackBuffer = uxIdleTaskStack; + *pulIdleTaskStackSize = configMINIMAL_STACK_SIZE; +} + +#if ( configUSE_TIMERS >= 1 ) + +extern "C" +void vApplicationGetTimerTaskMemory( StaticTask_t ** ppxTimerTaskTCBBuffer, + StackType_t ** ppxTimerTaskStackBuffer, + configSTACK_DEPTH_TYPE * pulTimerTaskStackSize ) __attribute__((weak)); + +void vApplicationGetTimerTaskMemory( StaticTask_t ** ppxTimerTaskTCBBuffer, + StackType_t ** ppxTimerTaskStackBuffer, + configSTACK_DEPTH_TYPE * pulTimerTaskStackSize ) +{ + static StaticTask_t xTimerTaskTCB; + static StackType_t uxTimerTaskStack[ configTIMER_TASK_STACK_DEPTH ]; + + *ppxTimerTaskTCBBuffer = &xTimerTaskTCB; + *ppxTimerTaskStackBuffer = uxTimerTaskStack; + *pulTimerTaskStackSize = configTIMER_TASK_STACK_DEPTH; +} + +#endif /* configUSE_TIMERS >= 1 */ + +#endif /* configSUPPORT_STATIC_ALLOCATION >= 1 */ + +/** + * configASSERT default implementation + */ +#if configDEFAULT_ASSERT == 1 + +extern "C" +void vApplicationAssertHook() { + + taskDISABLE_INTERRUPTS(); // Disable task interrupts + + prvSetMainLedOn(); // Main LED on. + for(;;) + { + sleep_ms(100); + prvBlinkMainLed(); // Led off. + + sleep_ms(2000); + prvBlinkMainLed(); // Led on. + + sleep_ms(100); + prvBlinkMainLed(); // Led off + + sleep_ms(100); + prvBlinkMainLed(); // Led on. + } +} +#endif diff --git a/libraries/FreeRTOS/template/FreeRTOSConfig.h b/libraries/FreeRTOS/template/FreeRTOSConfig.h new file mode 100755 index 00000000..ca1c5c8c --- /dev/null +++ b/libraries/FreeRTOS/template/FreeRTOSConfig.h @@ -0,0 +1,113 @@ +/* Cores */ +#define configNUM_CORES 2 +#define configUSE_CORE_AFFINITY 1 +#define configRUN_MULTIPLE_PRIORITIES 1 + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 1 +#define configUSE_MINIMAL_IDLE_HOOK 1 +#define configUSE_TICK_HOOK 1 +#define configCPU_CLOCK_HZ ( ( unsigned long ) F_CPU ) +#define configTICK_RATE_HZ ( ( TickType_t ) 1000 ) +#define configMAX_PRIORITIES ( 9 ) +#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 256 ) +#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 164 * 1024 ) ) +#define configMAX_TASK_NAME_LEN ( 10 ) +#define configUSE_TRACE_FACILITY 1 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 1 +#define configUSE_MUTEXES 1 +#define configQUEUE_REGISTRY_SIZE 8 +#define configUSE_RECURSIVE_MUTEXES 1 +#define configUSE_MALLOC_FAILED_HOOK 1 +#define configUSE_APPLICATION_TASK_TAG 0 +#define configUSE_COUNTING_SEMAPHORES 1 +#define configUSE_QUEUE_SETS 1 +#define configSUPPORT_DYNAMIC_ALLOCATION 1 +#define configSUPPORT_STATIC_ALLOCATION 0 + +/* Run time stats related definitions. */ +//void vMainConfigureTimerForRunTimeStats( void ); +unsigned long ulMainGetRunTimeCounterValue( void ); +#define configGENERATE_RUN_TIME_STATS 0 +#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() //vMainConfigureTimerForRunTimeStats() +#define portGET_RUN_TIME_COUNTER_VALUE() ulMainGetRunTimeCounterValue() + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 1 +#define configMAX_CO_ROUTINE_PRIORITIES ( 2 ) + +/* Software timer definitions. */ +#define configUSE_TIMERS 1 +#define configTIMER_TASK_PRIORITY ( 2 ) +#define configTIMER_QUEUE_LENGTH 5 +#define configTIMER_TASK_STACK_DEPTH ( 80 ) + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_xTaskGetCurrentTaskHandle 1 +#define INCLUDE_vTaskPrioritySet 1 +#define INCLUDE_uxTaskPriorityGet 1 +#define INCLUDE_vTaskDelete 1 +#define INCLUDE_vTaskCleanUpResources 1 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 1 +#define INCLUDE_vTaskDelay 1 +#define INCLUDE_eTaskGetState 1 + +/* This demo makes use of one or more example stats formatting functions. These +format the raw data provided by the uxTaskGetSystemState() function in to human +readable ASCII form. See the notes in the implementation of vTaskList() within +FreeRTOS/Source/tasks.c for limitations. */ +#define configUSE_STATS_FORMATTING_FUNCTIONS 1 + +#define configUSE_MUTEXES 1 +#define INCLUDE_uxTaskGetStackHighWaterMark 1 +#define INCLUDE_xTaskGetIdleTaskHandle 1 +#define configUSE_MALLOC_FAILED_HOOK 1 +#define configCHECK_FOR_STACK_OVERFLOW 2 +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ + +/* Cortex-M specific definitions. */ +#undef __NVIC_PRIO_BITS +#ifdef __NVIC_PRIO_BITS + /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ + #define configPRIO_BITS __NVIC_PRIO_BITS +#else + #define configPRIO_BITS 3 /* 8 priority levels */ +#endif + +/* The lowest interrupt priority that can be used in a call to a "set priority" +function. */ +#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0x7 + +/* The highest interrupt priority that can be used by any interrupt service +routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL +INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER +PRIORITY THAN THIS! (higher priorities are lower numeric values. */ +#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 5 + +/* Interrupt priorities used by the kernel port layer itself. These are generic +to all Cortex-M ports, and do not rely on any particular library functions. */ +#define configKERNEL_INTERRUPT_PRIORITY ( configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) ) +/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! +See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) ) + +extern void rtosFatalError(void); +#define configASSERT( x ) \ + if( ( x ) == 0 ) { portDISABLE_INTERRUPTS(); rtosFatalError(); } + +/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS +standard names - or at least those used in the unmodified vector table. */ +//#define xPortPendSVHandler PendSV_Handler +//#define xPortSysTickHandler SysTick_Handler +//#define vPortSVCHandler SVC_Handler + +/* The size of the global output buffer that is available for use when there +are multiple command interpreters running at once (for example, one on a UART +and one on TCP/IP). This is done to prevent an output buffer being defined by +each implementation - which would waste RAM. In this case, there is only one +command interpreter running. */ +#define configCOMMAND_INT_MAX_OUTPUT_SIZE 2048 diff --git a/libraries/FreeRTOS/template/RP2040_FreeRTOS.h b/libraries/FreeRTOS/template/RP2040_FreeRTOS.h new file mode 100644 index 00000000..3bf7ba44 --- /dev/null +++ b/libraries/FreeRTOS/template/RP2040_FreeRTOS.h @@ -0,0 +1,32 @@ +/* + * FreeRTOS SMP Library for the Raspberry Pi Pico + * Include necessary header files from FreeRTOS so that those files do not have to + * be modified. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + */ + +#ifndef INC_RP2040_FREERTOS_H +#define INC_RP2040_FREERTOS_H + +#include "FreeRTOS.h" +#include "rp2040_config.h" +#include "task.h" + +#endif /*INC_RP2040_FREERTOS_H*/ diff --git a/libraries/FreeRTOS/template/variantHooks.cpp b/libraries/FreeRTOS/template/variantHooks.cpp new file mode 100644 index 00000000..9b5ae0bb --- /dev/null +++ b/libraries/FreeRTOS/template/variantHooks.cpp @@ -0,0 +1,298 @@ +/* + * Copyright (C) 2021 Phillip Stevens All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * + * This file is NOT part of the FreeRTOS distribution. + * + */ +#include + +/* Arduino Core includes */ +#include +#include + +/* Raspberry PI Pico includes */ +#include +#include + +/* FreeRTOS includes. */ +#include "RP2040_FreeRTOS.h" +#include "task.h" +#include "timers.h" + +/*-----------------------------------------------------------*/ + +void initFreeRTOS(void) +{ +} + +void startFreeRTOS(void) +{ + // As the Task stacks are on heap before Task allocated heap variables, + // --- NOT NEEDED WHEN USING heap_3.c --- + // the library default __malloc_heap_end = 0 doesn't work. + //__malloc_heap_end = (char *)(RAMEND - __malloc_margin); + + // Initialise and run the freeRTOS scheduler. Execution should never return here. + vTaskStartScheduler(); +} + +/*-----------------------------------------------------------*/ +#if ( configUSE_IDLE_HOOK == 1 ) +/* + * Call the user defined loop() function from within the idle task. + * This allows the application designer to add background functionality + * without the overhead of a separate task. + * + * NOTE: vApplicationIdleHook() MUST NOT, UNDER ANY CIRCUMSTANCES, CALL A FUNCTION THAT MIGHT BLOCK. + * + */ +void loop( void ) __attribute__((weak)); +void loop() {} //Empty loop function + +extern "C" +void vApplicationIdleHook( void ) __attribute__((weak)); + +// Idle functions (USB, events, ...) from the core +extern void __loop(); + +void vApplicationIdleHook( void ) +{ + // the normal Arduino loop() function is run here. + loop(); + + // run idle functions from the core + __loop(); +} + +#endif /* configUSE_IDLE_HOOK == 1 */ +/*-----------------------------------------------------------*/ + +#if ( configUSE_MINIMAL_IDLE_HOOK == 1 ) +/* + * Call the user defined minimalIdle() function from within the idle task. + * This allows the application designer to add background functionality + * without the overhead of a separate task. + * + * NOTE: vApplicationMinimalIdleHook() MUST NOT, UNDER ANY CIRCUMSTANCES, CALL A FUNCTION THAT MIGHT BLOCK. + * + */ +void minimalIdle( void ) __attribute__((weak)); +void minimalIdle() {} //Empty minimalIdle function + +extern "C" +void vApplicationMinimalIdleHook( void ) __attribute__((weak)); + +void vApplicationMinimalIdleHook( void ) +{ + minimalIdle(); +} + +#endif /* configUSE_MINIMAL_IDLE_HOOK == 1 */ +/*-----------------------------------------------------------*/ + +#if ( configUSE_TICK_HOOK == 1 ) +/* + * Call the user defined minimalIdle() function from within the idle task. + * This allows the application designer to add background functionality + * without the overhead of a separate task. + * + * NOTE: vApplicationMinimalIdleHook() MUST NOT, UNDER ANY CIRCUMSTANCES, CALL A FUNCTION THAT MIGHT BLOCK. + * + */ +void tick( void ) __attribute__((weak)); +void tick() {} //Empty minimalIdle function + +extern "C" +void vApplicationTickHook( void ) __attribute__((weak)); + +void vApplicationTickHook( void ) +{ + tick(); +} + +#endif /* configUSE_TICK_HOOK == 1 */ +/*-----------------------------------------------------------*/ + +#if ( configUSE_MALLOC_FAILED_HOOK == 1 || configCHECK_FOR_STACK_OVERFLOW >= 1 || configDEFAULT_ASSERT == 1 ) + +/** + * Private function to enable board led to use it in application hooks + */ +void prvSetMainLedOn( void ) +{ + gpio_init(LED_BUILTIN); + gpio_set_dir(LED_BUILTIN, true); + gpio_put(LED_BUILTIN, true); +} + +/** + * Private function to blink board led to use it in application hooks + */ +void prvBlinkMainLed( void ) +{ + gpio_put(LED_BUILTIN, !gpio_get(LED_BUILTIN)); +} + +#endif + +/*---------------------------------------------------------------------------*\ +Usage: + called on fatal error (interrupts disabled already) +\*---------------------------------------------------------------------------*/ +extern "C" +void rtosFatalError(void) +{ + prvSetMainLedOn(); // Main LED on. + + for(;;) + { + // Main LED slow flash + sleep_ms(100); + prvBlinkMainLed(); + sleep_ms(2000); + prvBlinkMainLed(); + } +} + +#if ( configUSE_MALLOC_FAILED_HOOK == 1 ) +/*---------------------------------------------------------------------------*\ +Usage: + called by task system when a malloc failure is noticed +Description: + Malloc failure handler -- Shut down all interrupts, send serious complaint + to command port. FAST Blink on main LED. +Arguments: + pxTask - pointer to task handle + pcTaskName - pointer to task name +Results: + +Notes: + This routine will never return. + This routine is referenced in the task.c file of FreeRTOS as an extern. +\*---------------------------------------------------------------------------*/ +extern "C" +void vApplicationMallocFailedHook( void ) __attribute__((weak)); + +void vApplicationMallocFailedHook( void ) +{ + prvSetMainLedOn(); // Main LED on. + + for(;;) + { + sleep_ms(50); + prvBlinkMainLed(); // Main LED fast blink. + } +} + +#endif /* configUSE_MALLOC_FAILED_HOOK == 1 */ +/*-----------------------------------------------------------*/ + + +#if ( configCHECK_FOR_STACK_OVERFLOW >= 1 ) + +extern "C" +void vApplicationStackOverflowHook( TaskHandle_t xTask, + char * pcTaskName ) __attribute__((weak)); + +void vApplicationStackOverflowHook( TaskHandle_t xTask __attribute__((unused)), + char * pcTaskName __attribute__((unused)) ) +{ + prvSetMainLedOn(); // Main LED on. + + for(;;) + { + sleep_ms(2000); + prvBlinkMainLed(); // Main LED slow blink. + } +} + +#endif /* configCHECK_FOR_STACK_OVERFLOW >= 1 */ +/*-----------------------------------------------------------*/ + +#if ( configSUPPORT_STATIC_ALLOCATION >= 1 ) + +extern "C" +void vApplicationGetIdleTaskMemory( StaticTask_t ** ppxIdleTaskTCBBuffer, + StackType_t ** ppxIdleTaskStackBuffer, + configSTACK_DEPTH_TYPE * pulIdleTaskStackSize ) __attribute__((weak)); + +void vApplicationGetIdleTaskMemory( StaticTask_t ** ppxIdleTaskTCBBuffer, + StackType_t ** ppxIdleTaskStackBuffer, + configSTACK_DEPTH_TYPE * pulIdleTaskStackSize ) +{ + static StaticTask_t xIdleTaskTCB; + static StackType_t uxIdleTaskStack[ configMINIMAL_STACK_SIZE ]; + + *ppxIdleTaskTCBBuffer = &xIdleTaskTCB; + *ppxIdleTaskStackBuffer = uxIdleTaskStack; + *pulIdleTaskStackSize = configMINIMAL_STACK_SIZE; +} + +#if ( configUSE_TIMERS >= 1 ) + +extern "C" +void vApplicationGetTimerTaskMemory( StaticTask_t ** ppxTimerTaskTCBBuffer, + StackType_t ** ppxTimerTaskStackBuffer, + configSTACK_DEPTH_TYPE * pulTimerTaskStackSize ) __attribute__((weak)); + +void vApplicationGetTimerTaskMemory( StaticTask_t ** ppxTimerTaskTCBBuffer, + StackType_t ** ppxTimerTaskStackBuffer, + configSTACK_DEPTH_TYPE * pulTimerTaskStackSize ) +{ + static StaticTask_t xTimerTaskTCB; + static StackType_t uxTimerTaskStack[ configTIMER_TASK_STACK_DEPTH ]; + + *ppxTimerTaskTCBBuffer = &xTimerTaskTCB; + *ppxTimerTaskStackBuffer = uxTimerTaskStack; + *pulTimerTaskStackSize = configTIMER_TASK_STACK_DEPTH; +} + +#endif /* configUSE_TIMERS >= 1 */ + +#endif /* configSUPPORT_STATIC_ALLOCATION >= 1 */ + +/** + * configASSERT default implementation + */ +#if configDEFAULT_ASSERT == 1 + +extern "C" +void vApplicationAssertHook() { + + taskDISABLE_INTERRUPTS(); // Disable task interrupts + + prvSetMainLedOn(); // Main LED on. + for(;;) + { + sleep_ms(100); + prvBlinkMainLed(); // Led off. + + sleep_ms(2000); + prvBlinkMainLed(); // Led on. + + sleep_ms(100); + prvBlinkMainLed(); // Led off + + sleep_ms(100); + prvBlinkMainLed(); // Led on. + } +} +#endif -- 2.54.0 From 8ea3d7af09e230a05707e5ad7c6ef10a7f2d2a9d Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Thu, 21 Apr 2022 08:42:29 -0700 Subject: [PATCH 14/22] Clean up build warnings, don't spellcheck FreeRTOS --- .github/workflows/pull-request.yml | 2 +- .../examples/Multicore-FreeRTOS/Multicore-FreeRTOS.ino | 5 +++-- libraries/FreeRTOS/lib/FreeRTOS-Kernel | 2 +- libraries/FreeRTOS/library.properties | 3 +-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index ffe9765f..d0e52cbd 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -20,7 +20,7 @@ jobs: - name: Run codespell uses: codespell-project/actions-codespell@master with: - skip: ./pico-extras,./ArduinoCore-API,./libraries/ESP8266SdFat,./libraries/Adafruit_TinyUSB_Arduino,./libraries/LittleFS/lib,./tools/pyserial,./pico-sdk,./.github,./docs/i2s.rst,./cores/rp2040/api + skip: ./pico-extras,./ArduinoCore-API,./libraries/ESP8266SdFat,./libraries/Adafruit_TinyUSB_Arduino,./libraries/LittleFS/lib,./tools/pyserial,./pico-sdk,./.github,./docs/i2s.rst,./cores/rp2040/api,./libraries/FreeRTOS ignore_words_list: ser,DOUT # Consistent style diff --git a/libraries/FreeRTOS/examples/Multicore-FreeRTOS/Multicore-FreeRTOS.ino b/libraries/FreeRTOS/examples/Multicore-FreeRTOS/Multicore-FreeRTOS.ino index a7e6a404..aeaaf1fe 100644 --- a/libraries/FreeRTOS/examples/Multicore-FreeRTOS/Multicore-FreeRTOS.ino +++ b/libraries/FreeRTOS/examples/Multicore-FreeRTOS/Multicore-FreeRTOS.ino @@ -37,6 +37,7 @@ void ps() { void blink(void *param) { + (void) param; pinMode(LED_BUILTIN, OUTPUT); while (true) { digitalWrite(LED_BUILTIN, LOW); @@ -64,12 +65,12 @@ void loop() { // Running on core1 void setup1() { delay(5000); - //Serial.printf("C1: Red leader standing by...\n"); + Serial.printf("C1: Red leader standing by...\n"); } void loop1() { static int x = 0; - //Serial.printf("C1: Stay on target...\n"); + Serial.printf("C1: Stay on target...\n"); val++; if (++x < 10) { EEPROM.begin(512); diff --git a/libraries/FreeRTOS/lib/FreeRTOS-Kernel b/libraries/FreeRTOS/lib/FreeRTOS-Kernel index 26274330..f9c21016 160000 --- a/libraries/FreeRTOS/lib/FreeRTOS-Kernel +++ b/libraries/FreeRTOS/lib/FreeRTOS-Kernel @@ -1 +1 @@ -Subproject commit 262743303baebba5f58eeab45134fd0510e2a433 +Subproject commit f9c21016ab3793b4dc8e6530007a68c9ee774675 diff --git a/libraries/FreeRTOS/library.properties b/libraries/FreeRTOS/library.properties index 1ad6e9f1..e5e19bd6 100644 --- a/libraries/FreeRTOS/library.properties +++ b/libraries/FreeRTOS/library.properties @@ -1,4 +1,4 @@ -name=RP2040_FreeRTOS +name=FreeRTOS version=1.0.0 author=Graham Sanderson maintainer=Graham Sanderson @@ -8,4 +8,3 @@ category=Timing url=https://github.com/FreeRTOS/FreeRTOS-Kernel architectures=rp2040 license=MIT -includes=RP2040_FreeRTOS.h -- 2.54.0 From 510bcb9ab0335895de41ad3c14fec18a84493d9a Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Sun, 24 Apr 2022 11:48:34 -0700 Subject: [PATCH 15/22] Clean up externs and library --- cores/rp2040/Arduino.h | 3 + cores/rp2040/RP2040Support.h | 5 - cores/rp2040/wiring_private.cpp | 12 - libraries/FreeRTOS/CODE_OF_CONDUCT.md | 76 ----- libraries/FreeRTOS/LICENSE | 20 -- libraries/FreeRTOS/readme.md | 11 +- libraries/FreeRTOS/template/FreeRTOSConfig.h | 113 ------- libraries/FreeRTOS/template/RP2040_FreeRTOS.h | 32 -- libraries/FreeRTOS/template/variantHooks.cpp | 298 ------------------ 9 files changed, 4 insertions(+), 566 deletions(-) delete mode 100644 libraries/FreeRTOS/CODE_OF_CONDUCT.md delete mode 100644 libraries/FreeRTOS/LICENSE delete mode 100755 libraries/FreeRTOS/template/FreeRTOSConfig.h delete mode 100644 libraries/FreeRTOS/template/RP2040_FreeRTOS.h delete mode 100644 libraries/FreeRTOS/template/variantHooks.cpp diff --git a/cores/rp2040/Arduino.h b/cores/rp2040/Arduino.h index 0d12c822..59d3a023 100644 --- a/cores/rp2040/Arduino.h +++ b/cores/rp2040/Arduino.h @@ -79,6 +79,9 @@ void analogWriteFreq(uint32_t freq); void analogWriteRange(uint32_t range); void analogWriteResolution(int res); +// FreeRTOS potential calls +extern bool __isFreeRTOS; + #ifdef __cplusplus } // extern "C" #endif diff --git a/cores/rp2040/RP2040Support.h b/cores/rp2040/RP2040Support.h index 5d025549..ea3ba962 100644 --- a/cores/rp2040/RP2040Support.h +++ b/cores/rp2040/RP2040Support.h @@ -30,11 +30,6 @@ extern "C" volatile bool __otherCoreIdled; -extern bool __isFreeRTOS; - -// FreeRTOS imports (possibly) -extern void prvDisableInterrupts(void) __attribute__((weak)); -extern void prvEnableInterrupts(void) __attribute__((weak)); class _MFIFO { public: diff --git a/cores/rp2040/wiring_private.cpp b/cores/rp2040/wiring_private.cpp index ce7c51d9..8d18d2b3 100644 --- a/cores/rp2040/wiring_private.cpp +++ b/cores/rp2040/wiring_private.cpp @@ -28,12 +28,6 @@ // Support nested IRQ disable/re-enable static std::stack _irqStack[2]; -// FreeRTOS imports (possibly) -extern void prvEnableInterrupts(void) __attribute__((weak)); -extern void prvDisableInterrupts(void) __attribute__((weak)); -extern bool __isFreeRTOS; - - extern "C" void interrupts() { if (_irqStack[get_core_num()].empty()) { // ERROR @@ -42,16 +36,10 @@ extern "C" void interrupts() { auto oldIrqs = _irqStack[get_core_num()].top(); _irqStack[get_core_num()].pop(); restore_interrupts(oldIrqs); - if (__isFreeRTOS) { - prvEnableInterrupts(); - } } extern "C" void noInterrupts() { _irqStack[get_core_num()].push(save_and_disable_interrupts()); - if (__isFreeRTOS) { - prvDisableInterrupts(); - } } // Only 1 GPIO IRQ callback for all pins, so we need to look at the pin it's for and diff --git a/libraries/FreeRTOS/CODE_OF_CONDUCT.md b/libraries/FreeRTOS/CODE_OF_CONDUCT.md deleted file mode 100644 index 8db34404..00000000 --- a/libraries/FreeRTOS/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,76 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as -contributors and maintainers pledge to making participation in our project and -our community a harassment-free experience for everyone, regardless of age, body -size, disability, ethnicity, sex characteristics, gender identity and expression, -level of experience, education, socio-economic status, nationality, personal -appearance, race, religion, or sexual identity and orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment -include: - -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery and unwelcome sexual attention or - advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic - address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of acceptable -behavior and are expected to take appropriate and fair corrective action in -response to any instances of unacceptable behavior. - -Project maintainers have the right and responsibility to remove, edit, or -reject comments, commits, code, wiki edits, issues, and other contributions -that are not aligned to this Code of Conduct, or to ban temporarily or -permanently any contributor for other behaviors that they deem inappropriate, -threatening, offensive, or harmful. - -## Scope - -This Code of Conduct applies both within project spaces and in public spaces -when an individual is representing the project or its community. Examples of -representing a project or community include using an official project e-mail -address, posting via an official social media account, or acting as an appointed -representative at an online or offline event. Representation of a project may be -further defined and clarified by project maintainers. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team at phillip.stevens@gmail.com. All -complaints will be reviewed and investigated and will result in a response that -is deemed necessary and appropriate to the circumstances. The project team is -obligated to maintain confidentiality with regard to the reporter of an incident. -Further details of specific enforcement policies may be posted separately. - -Project maintainers who do not follow or enforce the Code of Conduct in good -faith may face temporary or permanent repercussions as determined by other -members of the project's leadership. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, -available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html - -[homepage]: https://www.contributor-covenant.org - -For answers to common questions about this code of conduct, see -https://www.contributor-covenant.org/faq diff --git a/libraries/FreeRTOS/LICENSE b/libraries/FreeRTOS/LICENSE deleted file mode 100644 index a4459f8f..00000000 --- a/libraries/FreeRTOS/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ - -Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/libraries/FreeRTOS/readme.md b/libraries/FreeRTOS/readme.md index e7f22b5b..6c4e4bba 100644 --- a/libraries/FreeRTOS/readme.md +++ b/libraries/FreeRTOS/readme.md @@ -1,22 +1,13 @@ **ATTENTION** Please be aware that this library was copied from the original Arduino AVR FreeRTOS library and may still contain files from that library that have no meaning in the context of this package, i.e. the licensing and code of conduct file! Each file retains the license and copyright from where it was taken (FreeRTOS repository or AVR FreeRTOS library, respectively.) -________________________________________________________________________________________________ +______ This is a copy of the RP2040 port of the FreeRTOS SMP branch, packaged as an Arduino library. It has been created to provide access to FreeRTOS capabilities, with full compatibility to the Arduino environment. It does this by keeping hands off almost everything, and only touching the minimum of hardware to be successful. -This library right now will not work with any RP2040 Arduino core out of the box: -* Earle F. Philhower's [arduino-pico core](https://github.com/earlephilhower/arduino-pico) - This initializes the second MCU core during startup, causing FreeRTOS to crash during initialization. These initializations can easily be commented - out, but this means the core has to be modified manually after each update. -* Arduino Mbed RP2040 core - Does not contain the Raspberry Pi Pico SDK, and as such is not able to compile FreeRTOS, as it uses the Pico SDK. -* Seeedstudio RP2040 XIAO - This isn't really an Arduino core by itself, as it is just a clone of Earle F. Philhower's Arduino core release 1.9.3 as the time of this writing. - ## General FreeRTOS has a multitude of configuration options, which can be specified from within the FreeRTOSConfig.h file. diff --git a/libraries/FreeRTOS/template/FreeRTOSConfig.h b/libraries/FreeRTOS/template/FreeRTOSConfig.h deleted file mode 100755 index ca1c5c8c..00000000 --- a/libraries/FreeRTOS/template/FreeRTOSConfig.h +++ /dev/null @@ -1,113 +0,0 @@ -/* Cores */ -#define configNUM_CORES 2 -#define configUSE_CORE_AFFINITY 1 -#define configRUN_MULTIPLE_PRIORITIES 1 - -#define configUSE_PREEMPTION 1 -#define configUSE_IDLE_HOOK 1 -#define configUSE_MINIMAL_IDLE_HOOK 1 -#define configUSE_TICK_HOOK 1 -#define configCPU_CLOCK_HZ ( ( unsigned long ) F_CPU ) -#define configTICK_RATE_HZ ( ( TickType_t ) 1000 ) -#define configMAX_PRIORITIES ( 9 ) -#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 256 ) -#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 164 * 1024 ) ) -#define configMAX_TASK_NAME_LEN ( 10 ) -#define configUSE_TRACE_FACILITY 1 -#define configUSE_16_BIT_TICKS 0 -#define configIDLE_SHOULD_YIELD 1 -#define configUSE_MUTEXES 1 -#define configQUEUE_REGISTRY_SIZE 8 -#define configUSE_RECURSIVE_MUTEXES 1 -#define configUSE_MALLOC_FAILED_HOOK 1 -#define configUSE_APPLICATION_TASK_TAG 0 -#define configUSE_COUNTING_SEMAPHORES 1 -#define configUSE_QUEUE_SETS 1 -#define configSUPPORT_DYNAMIC_ALLOCATION 1 -#define configSUPPORT_STATIC_ALLOCATION 0 - -/* Run time stats related definitions. */ -//void vMainConfigureTimerForRunTimeStats( void ); -unsigned long ulMainGetRunTimeCounterValue( void ); -#define configGENERATE_RUN_TIME_STATS 0 -#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() //vMainConfigureTimerForRunTimeStats() -#define portGET_RUN_TIME_COUNTER_VALUE() ulMainGetRunTimeCounterValue() - -/* Co-routine definitions. */ -#define configUSE_CO_ROUTINES 1 -#define configMAX_CO_ROUTINE_PRIORITIES ( 2 ) - -/* Software timer definitions. */ -#define configUSE_TIMERS 1 -#define configTIMER_TASK_PRIORITY ( 2 ) -#define configTIMER_QUEUE_LENGTH 5 -#define configTIMER_TASK_STACK_DEPTH ( 80 ) - -/* Set the following definitions to 1 to include the API function, or zero -to exclude the API function. */ -#define INCLUDE_xTaskGetCurrentTaskHandle 1 -#define INCLUDE_vTaskPrioritySet 1 -#define INCLUDE_uxTaskPriorityGet 1 -#define INCLUDE_vTaskDelete 1 -#define INCLUDE_vTaskCleanUpResources 1 -#define INCLUDE_vTaskSuspend 1 -#define INCLUDE_vTaskDelayUntil 1 -#define INCLUDE_vTaskDelay 1 -#define INCLUDE_eTaskGetState 1 - -/* This demo makes use of one or more example stats formatting functions. These -format the raw data provided by the uxTaskGetSystemState() function in to human -readable ASCII form. See the notes in the implementation of vTaskList() within -FreeRTOS/Source/tasks.c for limitations. */ -#define configUSE_STATS_FORMATTING_FUNCTIONS 1 - -#define configUSE_MUTEXES 1 -#define INCLUDE_uxTaskGetStackHighWaterMark 1 -#define INCLUDE_xTaskGetIdleTaskHandle 1 -#define configUSE_MALLOC_FAILED_HOOK 1 -#define configCHECK_FOR_STACK_OVERFLOW 2 -/* Normal assert() semantics without relying on the provision of an assert.h -header file. */ - -/* Cortex-M specific definitions. */ -#undef __NVIC_PRIO_BITS -#ifdef __NVIC_PRIO_BITS - /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ - #define configPRIO_BITS __NVIC_PRIO_BITS -#else - #define configPRIO_BITS 3 /* 8 priority levels */ -#endif - -/* The lowest interrupt priority that can be used in a call to a "set priority" -function. */ -#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0x7 - -/* The highest interrupt priority that can be used by any interrupt service -routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL -INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER -PRIORITY THAN THIS! (higher priorities are lower numeric values. */ -#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 5 - -/* Interrupt priorities used by the kernel port layer itself. These are generic -to all Cortex-M ports, and do not rely on any particular library functions. */ -#define configKERNEL_INTERRUPT_PRIORITY ( configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) ) -/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! -See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ -#define configMAX_SYSCALL_INTERRUPT_PRIORITY ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) ) - -extern void rtosFatalError(void); -#define configASSERT( x ) \ - if( ( x ) == 0 ) { portDISABLE_INTERRUPTS(); rtosFatalError(); } - -/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS -standard names - or at least those used in the unmodified vector table. */ -//#define xPortPendSVHandler PendSV_Handler -//#define xPortSysTickHandler SysTick_Handler -//#define vPortSVCHandler SVC_Handler - -/* The size of the global output buffer that is available for use when there -are multiple command interpreters running at once (for example, one on a UART -and one on TCP/IP). This is done to prevent an output buffer being defined by -each implementation - which would waste RAM. In this case, there is only one -command interpreter running. */ -#define configCOMMAND_INT_MAX_OUTPUT_SIZE 2048 diff --git a/libraries/FreeRTOS/template/RP2040_FreeRTOS.h b/libraries/FreeRTOS/template/RP2040_FreeRTOS.h deleted file mode 100644 index 3bf7ba44..00000000 --- a/libraries/FreeRTOS/template/RP2040_FreeRTOS.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * FreeRTOS SMP Library for the Raspberry Pi Pico - * Include necessary header files from FreeRTOS so that those files do not have to - * be modified. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - */ - -#ifndef INC_RP2040_FREERTOS_H -#define INC_RP2040_FREERTOS_H - -#include "FreeRTOS.h" -#include "rp2040_config.h" -#include "task.h" - -#endif /*INC_RP2040_FREERTOS_H*/ diff --git a/libraries/FreeRTOS/template/variantHooks.cpp b/libraries/FreeRTOS/template/variantHooks.cpp deleted file mode 100644 index 9b5ae0bb..00000000 --- a/libraries/FreeRTOS/template/variantHooks.cpp +++ /dev/null @@ -1,298 +0,0 @@ -/* - * Copyright (C) 2021 Phillip Stevens All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * - * This file is NOT part of the FreeRTOS distribution. - * - */ -#include - -/* Arduino Core includes */ -#include -#include - -/* Raspberry PI Pico includes */ -#include -#include - -/* FreeRTOS includes. */ -#include "RP2040_FreeRTOS.h" -#include "task.h" -#include "timers.h" - -/*-----------------------------------------------------------*/ - -void initFreeRTOS(void) -{ -} - -void startFreeRTOS(void) -{ - // As the Task stacks are on heap before Task allocated heap variables, - // --- NOT NEEDED WHEN USING heap_3.c --- - // the library default __malloc_heap_end = 0 doesn't work. - //__malloc_heap_end = (char *)(RAMEND - __malloc_margin); - - // Initialise and run the freeRTOS scheduler. Execution should never return here. - vTaskStartScheduler(); -} - -/*-----------------------------------------------------------*/ -#if ( configUSE_IDLE_HOOK == 1 ) -/* - * Call the user defined loop() function from within the idle task. - * This allows the application designer to add background functionality - * without the overhead of a separate task. - * - * NOTE: vApplicationIdleHook() MUST NOT, UNDER ANY CIRCUMSTANCES, CALL A FUNCTION THAT MIGHT BLOCK. - * - */ -void loop( void ) __attribute__((weak)); -void loop() {} //Empty loop function - -extern "C" -void vApplicationIdleHook( void ) __attribute__((weak)); - -// Idle functions (USB, events, ...) from the core -extern void __loop(); - -void vApplicationIdleHook( void ) -{ - // the normal Arduino loop() function is run here. - loop(); - - // run idle functions from the core - __loop(); -} - -#endif /* configUSE_IDLE_HOOK == 1 */ -/*-----------------------------------------------------------*/ - -#if ( configUSE_MINIMAL_IDLE_HOOK == 1 ) -/* - * Call the user defined minimalIdle() function from within the idle task. - * This allows the application designer to add background functionality - * without the overhead of a separate task. - * - * NOTE: vApplicationMinimalIdleHook() MUST NOT, UNDER ANY CIRCUMSTANCES, CALL A FUNCTION THAT MIGHT BLOCK. - * - */ -void minimalIdle( void ) __attribute__((weak)); -void minimalIdle() {} //Empty minimalIdle function - -extern "C" -void vApplicationMinimalIdleHook( void ) __attribute__((weak)); - -void vApplicationMinimalIdleHook( void ) -{ - minimalIdle(); -} - -#endif /* configUSE_MINIMAL_IDLE_HOOK == 1 */ -/*-----------------------------------------------------------*/ - -#if ( configUSE_TICK_HOOK == 1 ) -/* - * Call the user defined minimalIdle() function from within the idle task. - * This allows the application designer to add background functionality - * without the overhead of a separate task. - * - * NOTE: vApplicationMinimalIdleHook() MUST NOT, UNDER ANY CIRCUMSTANCES, CALL A FUNCTION THAT MIGHT BLOCK. - * - */ -void tick( void ) __attribute__((weak)); -void tick() {} //Empty minimalIdle function - -extern "C" -void vApplicationTickHook( void ) __attribute__((weak)); - -void vApplicationTickHook( void ) -{ - tick(); -} - -#endif /* configUSE_TICK_HOOK == 1 */ -/*-----------------------------------------------------------*/ - -#if ( configUSE_MALLOC_FAILED_HOOK == 1 || configCHECK_FOR_STACK_OVERFLOW >= 1 || configDEFAULT_ASSERT == 1 ) - -/** - * Private function to enable board led to use it in application hooks - */ -void prvSetMainLedOn( void ) -{ - gpio_init(LED_BUILTIN); - gpio_set_dir(LED_BUILTIN, true); - gpio_put(LED_BUILTIN, true); -} - -/** - * Private function to blink board led to use it in application hooks - */ -void prvBlinkMainLed( void ) -{ - gpio_put(LED_BUILTIN, !gpio_get(LED_BUILTIN)); -} - -#endif - -/*---------------------------------------------------------------------------*\ -Usage: - called on fatal error (interrupts disabled already) -\*---------------------------------------------------------------------------*/ -extern "C" -void rtosFatalError(void) -{ - prvSetMainLedOn(); // Main LED on. - - for(;;) - { - // Main LED slow flash - sleep_ms(100); - prvBlinkMainLed(); - sleep_ms(2000); - prvBlinkMainLed(); - } -} - -#if ( configUSE_MALLOC_FAILED_HOOK == 1 ) -/*---------------------------------------------------------------------------*\ -Usage: - called by task system when a malloc failure is noticed -Description: - Malloc failure handler -- Shut down all interrupts, send serious complaint - to command port. FAST Blink on main LED. -Arguments: - pxTask - pointer to task handle - pcTaskName - pointer to task name -Results: - -Notes: - This routine will never return. - This routine is referenced in the task.c file of FreeRTOS as an extern. -\*---------------------------------------------------------------------------*/ -extern "C" -void vApplicationMallocFailedHook( void ) __attribute__((weak)); - -void vApplicationMallocFailedHook( void ) -{ - prvSetMainLedOn(); // Main LED on. - - for(;;) - { - sleep_ms(50); - prvBlinkMainLed(); // Main LED fast blink. - } -} - -#endif /* configUSE_MALLOC_FAILED_HOOK == 1 */ -/*-----------------------------------------------------------*/ - - -#if ( configCHECK_FOR_STACK_OVERFLOW >= 1 ) - -extern "C" -void vApplicationStackOverflowHook( TaskHandle_t xTask, - char * pcTaskName ) __attribute__((weak)); - -void vApplicationStackOverflowHook( TaskHandle_t xTask __attribute__((unused)), - char * pcTaskName __attribute__((unused)) ) -{ - prvSetMainLedOn(); // Main LED on. - - for(;;) - { - sleep_ms(2000); - prvBlinkMainLed(); // Main LED slow blink. - } -} - -#endif /* configCHECK_FOR_STACK_OVERFLOW >= 1 */ -/*-----------------------------------------------------------*/ - -#if ( configSUPPORT_STATIC_ALLOCATION >= 1 ) - -extern "C" -void vApplicationGetIdleTaskMemory( StaticTask_t ** ppxIdleTaskTCBBuffer, - StackType_t ** ppxIdleTaskStackBuffer, - configSTACK_DEPTH_TYPE * pulIdleTaskStackSize ) __attribute__((weak)); - -void vApplicationGetIdleTaskMemory( StaticTask_t ** ppxIdleTaskTCBBuffer, - StackType_t ** ppxIdleTaskStackBuffer, - configSTACK_DEPTH_TYPE * pulIdleTaskStackSize ) -{ - static StaticTask_t xIdleTaskTCB; - static StackType_t uxIdleTaskStack[ configMINIMAL_STACK_SIZE ]; - - *ppxIdleTaskTCBBuffer = &xIdleTaskTCB; - *ppxIdleTaskStackBuffer = uxIdleTaskStack; - *pulIdleTaskStackSize = configMINIMAL_STACK_SIZE; -} - -#if ( configUSE_TIMERS >= 1 ) - -extern "C" -void vApplicationGetTimerTaskMemory( StaticTask_t ** ppxTimerTaskTCBBuffer, - StackType_t ** ppxTimerTaskStackBuffer, - configSTACK_DEPTH_TYPE * pulTimerTaskStackSize ) __attribute__((weak)); - -void vApplicationGetTimerTaskMemory( StaticTask_t ** ppxTimerTaskTCBBuffer, - StackType_t ** ppxTimerTaskStackBuffer, - configSTACK_DEPTH_TYPE * pulTimerTaskStackSize ) -{ - static StaticTask_t xTimerTaskTCB; - static StackType_t uxTimerTaskStack[ configTIMER_TASK_STACK_DEPTH ]; - - *ppxTimerTaskTCBBuffer = &xTimerTaskTCB; - *ppxTimerTaskStackBuffer = uxTimerTaskStack; - *pulTimerTaskStackSize = configTIMER_TASK_STACK_DEPTH; -} - -#endif /* configUSE_TIMERS >= 1 */ - -#endif /* configSUPPORT_STATIC_ALLOCATION >= 1 */ - -/** - * configASSERT default implementation - */ -#if configDEFAULT_ASSERT == 1 - -extern "C" -void vApplicationAssertHook() { - - taskDISABLE_INTERRUPTS(); // Disable task interrupts - - prvSetMainLedOn(); // Main LED on. - for(;;) - { - sleep_ms(100); - prvBlinkMainLed(); // Led off. - - sleep_ms(2000); - prvBlinkMainLed(); // Led on. - - sleep_ms(100); - prvBlinkMainLed(); // Led off - - sleep_ms(100); - prvBlinkMainLed(); // Led on. - } -} -#endif -- 2.54.0 From e3d0a431e19d8e9ad24f479d2f4ab14f8819e6c8 Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Sun, 24 Apr 2022 17:39:59 -0700 Subject: [PATCH 16/22] Fix hangs, set 8 prio levels, use task for USB Use a task-based approach for handling the USB periodic work instead of the IRQ-based one in the main core. Fix a hang under -Os (but not under any other conditions?!) caused by the (unused) FIFO IRQ handler. Set 8 prio levels so it fits in 3 bits nicely (0..7) --- cores/rp2040/RP2040Support.h | 18 ++++---- cores/rp2040/RP2040USB.cpp | 2 + cores/rp2040/main.cpp | 15 +++++-- libraries/FreeRTOS/src/FreeRTOSConfig.h | 2 +- libraries/FreeRTOS/src/variantHooks.cpp | 56 +++++++++++++++++++++++++ 5 files changed, 80 insertions(+), 13 deletions(-) diff --git a/cores/rp2040/RP2040Support.h b/cores/rp2040/RP2040Support.h index ea3ba962..a4bcf0d9 100644 --- a/cores/rp2040/RP2040Support.h +++ b/cores/rp2040/RP2040Support.h @@ -115,16 +115,18 @@ public: private: static void __no_inline_not_in_flash_func(_irq)() { - multicore_fifo_clear_irq(); - noInterrupts(); // We need total control, can't run anything - while (multicore_fifo_rvalid()) { - if (_GOTOSLEEP == multicore_fifo_pop_blocking()) { - __otherCoreIdled = true; - while (__otherCoreIdled) { /* noop */ } - break; + if (!__isFreeRTOS) { + multicore_fifo_clear_irq(); + noInterrupts(); // We need total control, can't run anything + while (multicore_fifo_rvalid()) { + if (_GOTOSLEEP == multicore_fifo_pop_blocking()) { + __otherCoreIdled = true; + while (__otherCoreIdled) { /* noop */ } + break; + } } + interrupts(); } - interrupts(); } bool _multicore = false; diff --git a/cores/rp2040/RP2040USB.cpp b/cores/rp2040/RP2040USB.cpp index a205f917..f1fc1e43 100644 --- a/cores/rp2040/RP2040USB.cpp +++ b/cores/rp2040/RP2040USB.cpp @@ -287,6 +287,8 @@ static int64_t timer_task(__unused alarm_id_t id, __unused void *user_data) { return USB_TASK_INTERVAL; } +void __USBStart() __attribute__((weak)); + void __USBStart() { if (tusb_inited()) { // Already called diff --git a/cores/rp2040/main.cpp b/cores/rp2040/main.cpp index 3d14b656..e46e4dea 100644 --- a/cores/rp2040/main.cpp +++ b/cores/rp2040/main.cpp @@ -24,7 +24,9 @@ #include RP2040 rp2040; -volatile bool __otherCoreIdled = false; +extern "C" { + volatile bool __otherCoreIdled = false; +}; mutex_t _pioMutex; @@ -97,14 +99,19 @@ extern "C" int main() { __USBStart(); #ifndef DISABLE_USB_SERIAL - // Enable serial port for reset/upload always - Serial.begin(115200); + + if (!__isFreeRTOS) { + // Enable serial port for reset/upload always + Serial.begin(115200); + } #endif #endif #endif #if defined DEBUG_RP2040_PORT - DEBUG_RP2040_PORT.begin(115200); + if (!__isFreeRTOS) { + DEBUG_RP2040_PORT.begin(115200); + } #endif #ifndef NO_USB diff --git a/libraries/FreeRTOS/src/FreeRTOSConfig.h b/libraries/FreeRTOS/src/FreeRTOSConfig.h index 4e6b9d67..af5d6f64 100755 --- a/libraries/FreeRTOS/src/FreeRTOSConfig.h +++ b/libraries/FreeRTOS/src/FreeRTOSConfig.h @@ -9,7 +9,7 @@ #define configUSE_TICK_HOOK 1 #define configCPU_CLOCK_HZ ( ( unsigned long ) F_CPU ) #define configTICK_RATE_HZ ( ( TickType_t ) 1000 ) -#define configMAX_PRIORITIES ( 9 ) +#define configMAX_PRIORITIES ( 8 ) #define configMINIMAL_STACK_SIZE ( ( unsigned short ) 256 ) #define configTOTAL_HEAP_SIZE ( ( size_t ) ( 164 * 1024 ) ) #define configMAX_TASK_NAME_LEN ( 10 ) diff --git a/libraries/FreeRTOS/src/variantHooks.cpp b/libraries/FreeRTOS/src/variantHooks.cpp index 3553ffb8..5612bd23 100644 --- a/libraries/FreeRTOS/src/variantHooks.cpp +++ b/libraries/FreeRTOS/src/variantHooks.cpp @@ -1,5 +1,6 @@ /* * Copyright (C) 2021 Phillip Stevens All Rights Reserved. + * Modifications by Earle F. Philhower, III, for Arduino-Pico * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in @@ -27,6 +28,9 @@ /* Arduino Core includes */ #include #include +#include "tusb.h" +#define USB_TASK_IRQ 31 + /* Raspberry PI Pico includes */ #include @@ -49,10 +53,16 @@ extern void setup1() __attribute__((weak)); extern void loop1() __attribute__((weak)); // Idle functions (USB, events, ...) from the core extern void __loop(); +volatile bool __usbInitted = false; static void __core0(void *params) { (void) params; +#ifndef NO_USB + while (!__usbInitted) { + delay(1); + } +#endif if (setup) { setup(); } @@ -71,6 +81,11 @@ static void __core0(void *params) static void __core1(void *params) { (void) params; +#ifndef NO_USB + while (!__usbInitted) { + delay(1); + } +#endif if (setup1) { setup1(); } @@ -93,6 +108,10 @@ extern "C" void yield() { taskYIELD(); } +extern mutex_t __usb_mutex; +static TaskHandle_t __usbTask; +static void __usb(void *param); + void startFreeRTOS(void) { @@ -361,3 +380,40 @@ void vApplicationAssertHook() { } } #endif + + +static void __usb_irq() { + BaseType_t xHigherPriorityTaskWoken = pdFALSE; + vTaskNotifyGiveFromISR( __usbTask, &xHigherPriorityTaskWoken ); + portYIELD_FROM_ISR( xHigherPriorityTaskWoken ); +} + +static void __usb(void *param) +{ + (void) param; + + tusb_init(); + irq_set_exclusive_handler(USB_TASK_IRQ, __usb_irq); + irq_set_enabled(USB_TASK_IRQ, true); + + Serial.begin(115200); + + __usbInitted = true; + + while (true) { + if (mutex_try_enter(&__usb_mutex, NULL)) { + tud_task(); + mutex_exit(&__usb_mutex); + } + vTaskDelay(1 / portTICK_PERIOD_MS); + } +} + + +void __USBStart() +{ + mutex_init(&__usb_mutex); + // Make highest prio and locked to core 0 + xTaskCreate(__usb, "USB", 256, 0, configMAX_PRIORITIES - 1, &__usbTask); + vTaskCoreAffinitySet( __usbTask, 1 << 0 ); +} -- 2.54.0 From e6afc15cfeddf32c264df555626872f484a9fae7 Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Sun, 24 Apr 2022 20:22:18 -0700 Subject: [PATCH 17/22] Add basic documentation --- docs/freertos.rst | 18 ++++++++++++++++++ docs/index.rst | 2 ++ 2 files changed, 20 insertions(+) create mode 100644 docs/freertos.rst diff --git a/docs/freertos.rst b/docs/freertos.rst new file mode 100644 index 00000000..9aa0f65d --- /dev/null +++ b/docs/freertos.rst @@ -0,0 +1,18 @@ +FreeRTOS +======== + +The SMP port of FreeRTOS is included with the core. This allows complex task operations +and real preemptive multithreading in your sketches. To enable FreeRTOS, simply add + +.. code:: c++ + + #include + +to your sketch and it will be included and enabled automatically. + +FreeRTOS is configured with 8 priority levels (0 through 7) and a process for +``setup()/loop()``, ``setup1()/loop1()``, and the USB port will be created. You can +launch additional processes using the standard FreeRTOS routines. + +For full FreeRTOS documentation look at [FreeRTOS.org](https://freertos.org/index.html) +and [FreeRTOS SMP support](https://freertos.org/symmetric-multiprocessing-introduction.html). diff --git a/docs/index.rst b/docs/index.rst index 0f3dce14..cdf04292 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -37,6 +37,8 @@ For the latest version, always check https://github.com/earlephilhower/arduino-p USB (Arduino and Adafruit_TinyUSB) Multicore Processing + FreeRTOS + Ported/Optimized Libraries Using Pico-SDK -- 2.54.0 From 76d118dd0223ff08dbd24936091ee5f0d369f747 Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Sun, 24 Apr 2022 20:27:21 -0700 Subject: [PATCH 18/22] Add setup1/loop1 docs --- docs/freertos.rst | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/freertos.rst b/docs/freertos.rst index 9aa0f65d..69d798dc 100644 --- a/docs/freertos.rst +++ b/docs/freertos.rst @@ -14,5 +14,8 @@ FreeRTOS is configured with 8 priority levels (0 through 7) and a process for ``setup()/loop()``, ``setup1()/loop1()``, and the USB port will be created. You can launch additional processes using the standard FreeRTOS routines. -For full FreeRTOS documentation look at [FreeRTOS.org](https://freertos.org/index.html) -and [FreeRTOS SMP support](https://freertos.org/symmetric-multiprocessing-introduction.html). +``setup()`` and ``loop()`` are assigned to only run on core 0, while ``setup1()`` and ``loop1()`` +only run in core 1 in this mode, the same as the default multithreading mode. + +For full FreeRTOS documentation look at `FreeRTOS.org `__ +and `FreeRTOS SMP support `__. -- 2.54.0 From d18d081b6685c8c0f91f750221acc26868fd1e0a Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Sun, 24 Apr 2022 20:29:37 -0700 Subject: [PATCH 19/22] Make default speed 133MHz --- boards.txt | 576 ++++++++++++++++++++++---------------------- tools/makeboards.py | 2 +- 2 files changed, 289 insertions(+), 289 deletions(-) diff --git a/boards.txt b/boards.txt index f6c0dd14..2bda4179 100644 --- a/boards.txt +++ b/boards.txt @@ -76,14 +76,14 @@ rpipico.menu.flash.2097152_1048576.build.flash_length=1044480 rpipico.menu.flash.2097152_1048576.build.eeprom_start=270528512 rpipico.menu.flash.2097152_1048576.build.fs_start=269479936 rpipico.menu.flash.2097152_1048576.build.fs_end=270528512 -rpipico.menu.freq.125=125 MHz -rpipico.menu.freq.125.build.f_cpu=125000000L +rpipico.menu.freq.133=133 MHz +rpipico.menu.freq.133.build.f_cpu=133000000L rpipico.menu.freq.50=50 MHz rpipico.menu.freq.50.build.f_cpu=50000000L rpipico.menu.freq.100=100 MHz rpipico.menu.freq.100.build.f_cpu=100000000L -rpipico.menu.freq.133=133 MHz -rpipico.menu.freq.133.build.f_cpu=133000000L +rpipico.menu.freq.125=125 MHz +rpipico.menu.freq.125.build.f_cpu=125000000L rpipico.menu.freq.150=150 MHz (Overclock) rpipico.menu.freq.150.build.f_cpu=150000000L rpipico.menu.freq.175=175 MHz (Overclock) @@ -203,14 +203,14 @@ rpipicopicoprobe.menu.flash.2097152_1048576.build.flash_length=1044480 rpipicopicoprobe.menu.flash.2097152_1048576.build.eeprom_start=270528512 rpipicopicoprobe.menu.flash.2097152_1048576.build.fs_start=269479936 rpipicopicoprobe.menu.flash.2097152_1048576.build.fs_end=270528512 -rpipicopicoprobe.menu.freq.125=125 MHz -rpipicopicoprobe.menu.freq.125.build.f_cpu=125000000L +rpipicopicoprobe.menu.freq.133=133 MHz +rpipicopicoprobe.menu.freq.133.build.f_cpu=133000000L rpipicopicoprobe.menu.freq.50=50 MHz rpipicopicoprobe.menu.freq.50.build.f_cpu=50000000L rpipicopicoprobe.menu.freq.100=100 MHz rpipicopicoprobe.menu.freq.100.build.f_cpu=100000000L -rpipicopicoprobe.menu.freq.133=133 MHz -rpipicopicoprobe.menu.freq.133.build.f_cpu=133000000L +rpipicopicoprobe.menu.freq.125=125 MHz +rpipicopicoprobe.menu.freq.125.build.f_cpu=125000000L rpipicopicoprobe.menu.freq.150=150 MHz (Overclock) rpipicopicoprobe.menu.freq.150.build.f_cpu=150000000L rpipicopicoprobe.menu.freq.175=175 MHz (Overclock) @@ -330,14 +330,14 @@ rpipicopicodebug.menu.flash.2097152_1048576.build.flash_length=1044480 rpipicopicodebug.menu.flash.2097152_1048576.build.eeprom_start=270528512 rpipicopicodebug.menu.flash.2097152_1048576.build.fs_start=269479936 rpipicopicodebug.menu.flash.2097152_1048576.build.fs_end=270528512 -rpipicopicodebug.menu.freq.125=125 MHz -rpipicopicodebug.menu.freq.125.build.f_cpu=125000000L +rpipicopicodebug.menu.freq.133=133 MHz +rpipicopicodebug.menu.freq.133.build.f_cpu=133000000L rpipicopicodebug.menu.freq.50=50 MHz rpipicopicodebug.menu.freq.50.build.f_cpu=50000000L rpipicopicodebug.menu.freq.100=100 MHz rpipicopicodebug.menu.freq.100.build.f_cpu=100000000L -rpipicopicodebug.menu.freq.133=133 MHz -rpipicopicodebug.menu.freq.133.build.f_cpu=133000000L +rpipicopicodebug.menu.freq.125=125 MHz +rpipicopicodebug.menu.freq.125.build.f_cpu=125000000L rpipicopicodebug.menu.freq.150=150 MHz (Overclock) rpipicopicodebug.menu.freq.150.build.f_cpu=150000000L rpipicopicodebug.menu.freq.175=175 MHz (Overclock) @@ -491,14 +491,14 @@ adafruit_feather.menu.flash.8388608_7340032.build.flash_length=1044480 adafruit_feather.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_feather.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_feather.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_feather.menu.freq.125=125 MHz -adafruit_feather.menu.freq.125.build.f_cpu=125000000L +adafruit_feather.menu.freq.133=133 MHz +adafruit_feather.menu.freq.133.build.f_cpu=133000000L adafruit_feather.menu.freq.50=50 MHz adafruit_feather.menu.freq.50.build.f_cpu=50000000L adafruit_feather.menu.freq.100=100 MHz adafruit_feather.menu.freq.100.build.f_cpu=100000000L -adafruit_feather.menu.freq.133=133 MHz -adafruit_feather.menu.freq.133.build.f_cpu=133000000L +adafruit_feather.menu.freq.125=125 MHz +adafruit_feather.menu.freq.125.build.f_cpu=125000000L adafruit_feather.menu.freq.150=150 MHz (Overclock) adafruit_feather.menu.freq.150.build.f_cpu=150000000L adafruit_feather.menu.freq.175=175 MHz (Overclock) @@ -654,14 +654,14 @@ adafruit_featherpicoprobe.menu.flash.8388608_7340032.build.flash_length=1044480 adafruit_featherpicoprobe.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_featherpicoprobe.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_featherpicoprobe.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_featherpicoprobe.menu.freq.125=125 MHz -adafruit_featherpicoprobe.menu.freq.125.build.f_cpu=125000000L +adafruit_featherpicoprobe.menu.freq.133=133 MHz +adafruit_featherpicoprobe.menu.freq.133.build.f_cpu=133000000L adafruit_featherpicoprobe.menu.freq.50=50 MHz adafruit_featherpicoprobe.menu.freq.50.build.f_cpu=50000000L adafruit_featherpicoprobe.menu.freq.100=100 MHz adafruit_featherpicoprobe.menu.freq.100.build.f_cpu=100000000L -adafruit_featherpicoprobe.menu.freq.133=133 MHz -adafruit_featherpicoprobe.menu.freq.133.build.f_cpu=133000000L +adafruit_featherpicoprobe.menu.freq.125=125 MHz +adafruit_featherpicoprobe.menu.freq.125.build.f_cpu=125000000L adafruit_featherpicoprobe.menu.freq.150=150 MHz (Overclock) adafruit_featherpicoprobe.menu.freq.150.build.f_cpu=150000000L adafruit_featherpicoprobe.menu.freq.175=175 MHz (Overclock) @@ -817,14 +817,14 @@ adafruit_featherpicodebug.menu.flash.8388608_7340032.build.flash_length=1044480 adafruit_featherpicodebug.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_featherpicodebug.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_featherpicodebug.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_featherpicodebug.menu.freq.125=125 MHz -adafruit_featherpicodebug.menu.freq.125.build.f_cpu=125000000L +adafruit_featherpicodebug.menu.freq.133=133 MHz +adafruit_featherpicodebug.menu.freq.133.build.f_cpu=133000000L adafruit_featherpicodebug.menu.freq.50=50 MHz adafruit_featherpicodebug.menu.freq.50.build.f_cpu=50000000L adafruit_featherpicodebug.menu.freq.100=100 MHz adafruit_featherpicodebug.menu.freq.100.build.f_cpu=100000000L -adafruit_featherpicodebug.menu.freq.133=133 MHz -adafruit_featherpicodebug.menu.freq.133.build.f_cpu=133000000L +adafruit_featherpicodebug.menu.freq.125=125 MHz +adafruit_featherpicodebug.menu.freq.125.build.f_cpu=125000000L adafruit_featherpicodebug.menu.freq.150=150 MHz (Overclock) adafruit_featherpicodebug.menu.freq.150.build.f_cpu=150000000L adafruit_featherpicodebug.menu.freq.175=175 MHz (Overclock) @@ -978,14 +978,14 @@ adafruit_itsybitsy.menu.flash.8388608_7340032.build.flash_length=1044480 adafruit_itsybitsy.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_itsybitsy.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_itsybitsy.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_itsybitsy.menu.freq.125=125 MHz -adafruit_itsybitsy.menu.freq.125.build.f_cpu=125000000L +adafruit_itsybitsy.menu.freq.133=133 MHz +adafruit_itsybitsy.menu.freq.133.build.f_cpu=133000000L adafruit_itsybitsy.menu.freq.50=50 MHz adafruit_itsybitsy.menu.freq.50.build.f_cpu=50000000L adafruit_itsybitsy.menu.freq.100=100 MHz adafruit_itsybitsy.menu.freq.100.build.f_cpu=100000000L -adafruit_itsybitsy.menu.freq.133=133 MHz -adafruit_itsybitsy.menu.freq.133.build.f_cpu=133000000L +adafruit_itsybitsy.menu.freq.125=125 MHz +adafruit_itsybitsy.menu.freq.125.build.f_cpu=125000000L adafruit_itsybitsy.menu.freq.150=150 MHz (Overclock) adafruit_itsybitsy.menu.freq.150.build.f_cpu=150000000L adafruit_itsybitsy.menu.freq.175=175 MHz (Overclock) @@ -1141,14 +1141,14 @@ adafruit_itsybitsypicoprobe.menu.flash.8388608_7340032.build.flash_length=104448 adafruit_itsybitsypicoprobe.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_itsybitsypicoprobe.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_itsybitsypicoprobe.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_itsybitsypicoprobe.menu.freq.125=125 MHz -adafruit_itsybitsypicoprobe.menu.freq.125.build.f_cpu=125000000L +adafruit_itsybitsypicoprobe.menu.freq.133=133 MHz +adafruit_itsybitsypicoprobe.menu.freq.133.build.f_cpu=133000000L adafruit_itsybitsypicoprobe.menu.freq.50=50 MHz adafruit_itsybitsypicoprobe.menu.freq.50.build.f_cpu=50000000L adafruit_itsybitsypicoprobe.menu.freq.100=100 MHz adafruit_itsybitsypicoprobe.menu.freq.100.build.f_cpu=100000000L -adafruit_itsybitsypicoprobe.menu.freq.133=133 MHz -adafruit_itsybitsypicoprobe.menu.freq.133.build.f_cpu=133000000L +adafruit_itsybitsypicoprobe.menu.freq.125=125 MHz +adafruit_itsybitsypicoprobe.menu.freq.125.build.f_cpu=125000000L adafruit_itsybitsypicoprobe.menu.freq.150=150 MHz (Overclock) adafruit_itsybitsypicoprobe.menu.freq.150.build.f_cpu=150000000L adafruit_itsybitsypicoprobe.menu.freq.175=175 MHz (Overclock) @@ -1304,14 +1304,14 @@ adafruit_itsybitsypicodebug.menu.flash.8388608_7340032.build.flash_length=104448 adafruit_itsybitsypicodebug.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_itsybitsypicodebug.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_itsybitsypicodebug.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_itsybitsypicodebug.menu.freq.125=125 MHz -adafruit_itsybitsypicodebug.menu.freq.125.build.f_cpu=125000000L +adafruit_itsybitsypicodebug.menu.freq.133=133 MHz +adafruit_itsybitsypicodebug.menu.freq.133.build.f_cpu=133000000L adafruit_itsybitsypicodebug.menu.freq.50=50 MHz adafruit_itsybitsypicodebug.menu.freq.50.build.f_cpu=50000000L adafruit_itsybitsypicodebug.menu.freq.100=100 MHz adafruit_itsybitsypicodebug.menu.freq.100.build.f_cpu=100000000L -adafruit_itsybitsypicodebug.menu.freq.133=133 MHz -adafruit_itsybitsypicodebug.menu.freq.133.build.f_cpu=133000000L +adafruit_itsybitsypicodebug.menu.freq.125=125 MHz +adafruit_itsybitsypicodebug.menu.freq.125.build.f_cpu=125000000L adafruit_itsybitsypicodebug.menu.freq.150=150 MHz (Overclock) adafruit_itsybitsypicodebug.menu.freq.150.build.f_cpu=150000000L adafruit_itsybitsypicodebug.menu.freq.175=175 MHz (Overclock) @@ -1465,14 +1465,14 @@ adafruit_qtpy.menu.flash.8388608_7340032.build.flash_length=1044480 adafruit_qtpy.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_qtpy.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_qtpy.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_qtpy.menu.freq.125=125 MHz -adafruit_qtpy.menu.freq.125.build.f_cpu=125000000L +adafruit_qtpy.menu.freq.133=133 MHz +adafruit_qtpy.menu.freq.133.build.f_cpu=133000000L adafruit_qtpy.menu.freq.50=50 MHz adafruit_qtpy.menu.freq.50.build.f_cpu=50000000L adafruit_qtpy.menu.freq.100=100 MHz adafruit_qtpy.menu.freq.100.build.f_cpu=100000000L -adafruit_qtpy.menu.freq.133=133 MHz -adafruit_qtpy.menu.freq.133.build.f_cpu=133000000L +adafruit_qtpy.menu.freq.125=125 MHz +adafruit_qtpy.menu.freq.125.build.f_cpu=125000000L adafruit_qtpy.menu.freq.150=150 MHz (Overclock) adafruit_qtpy.menu.freq.150.build.f_cpu=150000000L adafruit_qtpy.menu.freq.175=175 MHz (Overclock) @@ -1628,14 +1628,14 @@ adafruit_qtpypicoprobe.menu.flash.8388608_7340032.build.flash_length=1044480 adafruit_qtpypicoprobe.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_qtpypicoprobe.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_qtpypicoprobe.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_qtpypicoprobe.menu.freq.125=125 MHz -adafruit_qtpypicoprobe.menu.freq.125.build.f_cpu=125000000L +adafruit_qtpypicoprobe.menu.freq.133=133 MHz +adafruit_qtpypicoprobe.menu.freq.133.build.f_cpu=133000000L adafruit_qtpypicoprobe.menu.freq.50=50 MHz adafruit_qtpypicoprobe.menu.freq.50.build.f_cpu=50000000L adafruit_qtpypicoprobe.menu.freq.100=100 MHz adafruit_qtpypicoprobe.menu.freq.100.build.f_cpu=100000000L -adafruit_qtpypicoprobe.menu.freq.133=133 MHz -adafruit_qtpypicoprobe.menu.freq.133.build.f_cpu=133000000L +adafruit_qtpypicoprobe.menu.freq.125=125 MHz +adafruit_qtpypicoprobe.menu.freq.125.build.f_cpu=125000000L adafruit_qtpypicoprobe.menu.freq.150=150 MHz (Overclock) adafruit_qtpypicoprobe.menu.freq.150.build.f_cpu=150000000L adafruit_qtpypicoprobe.menu.freq.175=175 MHz (Overclock) @@ -1791,14 +1791,14 @@ adafruit_qtpypicodebug.menu.flash.8388608_7340032.build.flash_length=1044480 adafruit_qtpypicodebug.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_qtpypicodebug.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_qtpypicodebug.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_qtpypicodebug.menu.freq.125=125 MHz -adafruit_qtpypicodebug.menu.freq.125.build.f_cpu=125000000L +adafruit_qtpypicodebug.menu.freq.133=133 MHz +adafruit_qtpypicodebug.menu.freq.133.build.f_cpu=133000000L adafruit_qtpypicodebug.menu.freq.50=50 MHz adafruit_qtpypicodebug.menu.freq.50.build.f_cpu=50000000L adafruit_qtpypicodebug.menu.freq.100=100 MHz adafruit_qtpypicodebug.menu.freq.100.build.f_cpu=100000000L -adafruit_qtpypicodebug.menu.freq.133=133 MHz -adafruit_qtpypicodebug.menu.freq.133.build.f_cpu=133000000L +adafruit_qtpypicodebug.menu.freq.125=125 MHz +adafruit_qtpypicodebug.menu.freq.125.build.f_cpu=125000000L adafruit_qtpypicodebug.menu.freq.150=150 MHz (Overclock) adafruit_qtpypicodebug.menu.freq.150.build.f_cpu=150000000L adafruit_qtpypicodebug.menu.freq.175=175 MHz (Overclock) @@ -1952,14 +1952,14 @@ adafruit_stemmafriend.menu.flash.8388608_7340032.build.flash_length=1044480 adafruit_stemmafriend.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_stemmafriend.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_stemmafriend.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_stemmafriend.menu.freq.125=125 MHz -adafruit_stemmafriend.menu.freq.125.build.f_cpu=125000000L +adafruit_stemmafriend.menu.freq.133=133 MHz +adafruit_stemmafriend.menu.freq.133.build.f_cpu=133000000L adafruit_stemmafriend.menu.freq.50=50 MHz adafruit_stemmafriend.menu.freq.50.build.f_cpu=50000000L adafruit_stemmafriend.menu.freq.100=100 MHz adafruit_stemmafriend.menu.freq.100.build.f_cpu=100000000L -adafruit_stemmafriend.menu.freq.133=133 MHz -adafruit_stemmafriend.menu.freq.133.build.f_cpu=133000000L +adafruit_stemmafriend.menu.freq.125=125 MHz +adafruit_stemmafriend.menu.freq.125.build.f_cpu=125000000L adafruit_stemmafriend.menu.freq.150=150 MHz (Overclock) adafruit_stemmafriend.menu.freq.150.build.f_cpu=150000000L adafruit_stemmafriend.menu.freq.175=175 MHz (Overclock) @@ -2115,14 +2115,14 @@ adafruit_stemmafriendpicoprobe.menu.flash.8388608_7340032.build.flash_length=104 adafruit_stemmafriendpicoprobe.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_stemmafriendpicoprobe.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_stemmafriendpicoprobe.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_stemmafriendpicoprobe.menu.freq.125=125 MHz -adafruit_stemmafriendpicoprobe.menu.freq.125.build.f_cpu=125000000L +adafruit_stemmafriendpicoprobe.menu.freq.133=133 MHz +adafruit_stemmafriendpicoprobe.menu.freq.133.build.f_cpu=133000000L adafruit_stemmafriendpicoprobe.menu.freq.50=50 MHz adafruit_stemmafriendpicoprobe.menu.freq.50.build.f_cpu=50000000L adafruit_stemmafriendpicoprobe.menu.freq.100=100 MHz adafruit_stemmafriendpicoprobe.menu.freq.100.build.f_cpu=100000000L -adafruit_stemmafriendpicoprobe.menu.freq.133=133 MHz -adafruit_stemmafriendpicoprobe.menu.freq.133.build.f_cpu=133000000L +adafruit_stemmafriendpicoprobe.menu.freq.125=125 MHz +adafruit_stemmafriendpicoprobe.menu.freq.125.build.f_cpu=125000000L adafruit_stemmafriendpicoprobe.menu.freq.150=150 MHz (Overclock) adafruit_stemmafriendpicoprobe.menu.freq.150.build.f_cpu=150000000L adafruit_stemmafriendpicoprobe.menu.freq.175=175 MHz (Overclock) @@ -2278,14 +2278,14 @@ adafruit_stemmafriendpicodebug.menu.flash.8388608_7340032.build.flash_length=104 adafruit_stemmafriendpicodebug.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_stemmafriendpicodebug.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_stemmafriendpicodebug.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_stemmafriendpicodebug.menu.freq.125=125 MHz -adafruit_stemmafriendpicodebug.menu.freq.125.build.f_cpu=125000000L +adafruit_stemmafriendpicodebug.menu.freq.133=133 MHz +adafruit_stemmafriendpicodebug.menu.freq.133.build.f_cpu=133000000L adafruit_stemmafriendpicodebug.menu.freq.50=50 MHz adafruit_stemmafriendpicodebug.menu.freq.50.build.f_cpu=50000000L adafruit_stemmafriendpicodebug.menu.freq.100=100 MHz adafruit_stemmafriendpicodebug.menu.freq.100.build.f_cpu=100000000L -adafruit_stemmafriendpicodebug.menu.freq.133=133 MHz -adafruit_stemmafriendpicodebug.menu.freq.133.build.f_cpu=133000000L +adafruit_stemmafriendpicodebug.menu.freq.125=125 MHz +adafruit_stemmafriendpicodebug.menu.freq.125.build.f_cpu=125000000L adafruit_stemmafriendpicodebug.menu.freq.150=150 MHz (Overclock) adafruit_stemmafriendpicodebug.menu.freq.150.build.f_cpu=150000000L adafruit_stemmafriendpicodebug.menu.freq.175=175 MHz (Overclock) @@ -2439,14 +2439,14 @@ adafruit_trinkeyrp2040qt.menu.flash.8388608_7340032.build.flash_length=1044480 adafruit_trinkeyrp2040qt.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_trinkeyrp2040qt.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_trinkeyrp2040qt.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_trinkeyrp2040qt.menu.freq.125=125 MHz -adafruit_trinkeyrp2040qt.menu.freq.125.build.f_cpu=125000000L +adafruit_trinkeyrp2040qt.menu.freq.133=133 MHz +adafruit_trinkeyrp2040qt.menu.freq.133.build.f_cpu=133000000L adafruit_trinkeyrp2040qt.menu.freq.50=50 MHz adafruit_trinkeyrp2040qt.menu.freq.50.build.f_cpu=50000000L adafruit_trinkeyrp2040qt.menu.freq.100=100 MHz adafruit_trinkeyrp2040qt.menu.freq.100.build.f_cpu=100000000L -adafruit_trinkeyrp2040qt.menu.freq.133=133 MHz -adafruit_trinkeyrp2040qt.menu.freq.133.build.f_cpu=133000000L +adafruit_trinkeyrp2040qt.menu.freq.125=125 MHz +adafruit_trinkeyrp2040qt.menu.freq.125.build.f_cpu=125000000L adafruit_trinkeyrp2040qt.menu.freq.150=150 MHz (Overclock) adafruit_trinkeyrp2040qt.menu.freq.150.build.f_cpu=150000000L adafruit_trinkeyrp2040qt.menu.freq.175=175 MHz (Overclock) @@ -2602,14 +2602,14 @@ adafruit_trinkeyrp2040qtpicoprobe.menu.flash.8388608_7340032.build.flash_length= adafruit_trinkeyrp2040qtpicoprobe.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_trinkeyrp2040qtpicoprobe.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_trinkeyrp2040qtpicoprobe.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_trinkeyrp2040qtpicoprobe.menu.freq.125=125 MHz -adafruit_trinkeyrp2040qtpicoprobe.menu.freq.125.build.f_cpu=125000000L +adafruit_trinkeyrp2040qtpicoprobe.menu.freq.133=133 MHz +adafruit_trinkeyrp2040qtpicoprobe.menu.freq.133.build.f_cpu=133000000L adafruit_trinkeyrp2040qtpicoprobe.menu.freq.50=50 MHz adafruit_trinkeyrp2040qtpicoprobe.menu.freq.50.build.f_cpu=50000000L adafruit_trinkeyrp2040qtpicoprobe.menu.freq.100=100 MHz adafruit_trinkeyrp2040qtpicoprobe.menu.freq.100.build.f_cpu=100000000L -adafruit_trinkeyrp2040qtpicoprobe.menu.freq.133=133 MHz -adafruit_trinkeyrp2040qtpicoprobe.menu.freq.133.build.f_cpu=133000000L +adafruit_trinkeyrp2040qtpicoprobe.menu.freq.125=125 MHz +adafruit_trinkeyrp2040qtpicoprobe.menu.freq.125.build.f_cpu=125000000L adafruit_trinkeyrp2040qtpicoprobe.menu.freq.150=150 MHz (Overclock) adafruit_trinkeyrp2040qtpicoprobe.menu.freq.150.build.f_cpu=150000000L adafruit_trinkeyrp2040qtpicoprobe.menu.freq.175=175 MHz (Overclock) @@ -2765,14 +2765,14 @@ adafruit_trinkeyrp2040qtpicodebug.menu.flash.8388608_7340032.build.flash_length= adafruit_trinkeyrp2040qtpicodebug.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_trinkeyrp2040qtpicodebug.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_trinkeyrp2040qtpicodebug.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_trinkeyrp2040qtpicodebug.menu.freq.125=125 MHz -adafruit_trinkeyrp2040qtpicodebug.menu.freq.125.build.f_cpu=125000000L +adafruit_trinkeyrp2040qtpicodebug.menu.freq.133=133 MHz +adafruit_trinkeyrp2040qtpicodebug.menu.freq.133.build.f_cpu=133000000L adafruit_trinkeyrp2040qtpicodebug.menu.freq.50=50 MHz adafruit_trinkeyrp2040qtpicodebug.menu.freq.50.build.f_cpu=50000000L adafruit_trinkeyrp2040qtpicodebug.menu.freq.100=100 MHz adafruit_trinkeyrp2040qtpicodebug.menu.freq.100.build.f_cpu=100000000L -adafruit_trinkeyrp2040qtpicodebug.menu.freq.133=133 MHz -adafruit_trinkeyrp2040qtpicodebug.menu.freq.133.build.f_cpu=133000000L +adafruit_trinkeyrp2040qtpicodebug.menu.freq.125=125 MHz +adafruit_trinkeyrp2040qtpicodebug.menu.freq.125.build.f_cpu=125000000L adafruit_trinkeyrp2040qtpicodebug.menu.freq.150=150 MHz (Overclock) adafruit_trinkeyrp2040qtpicodebug.menu.freq.150.build.f_cpu=150000000L adafruit_trinkeyrp2040qtpicodebug.menu.freq.175=175 MHz (Overclock) @@ -2926,14 +2926,14 @@ adafruit_macropad2040.menu.flash.8388608_7340032.build.flash_length=1044480 adafruit_macropad2040.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_macropad2040.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_macropad2040.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_macropad2040.menu.freq.125=125 MHz -adafruit_macropad2040.menu.freq.125.build.f_cpu=125000000L +adafruit_macropad2040.menu.freq.133=133 MHz +adafruit_macropad2040.menu.freq.133.build.f_cpu=133000000L adafruit_macropad2040.menu.freq.50=50 MHz adafruit_macropad2040.menu.freq.50.build.f_cpu=50000000L adafruit_macropad2040.menu.freq.100=100 MHz adafruit_macropad2040.menu.freq.100.build.f_cpu=100000000L -adafruit_macropad2040.menu.freq.133=133 MHz -adafruit_macropad2040.menu.freq.133.build.f_cpu=133000000L +adafruit_macropad2040.menu.freq.125=125 MHz +adafruit_macropad2040.menu.freq.125.build.f_cpu=125000000L adafruit_macropad2040.menu.freq.150=150 MHz (Overclock) adafruit_macropad2040.menu.freq.150.build.f_cpu=150000000L adafruit_macropad2040.menu.freq.175=175 MHz (Overclock) @@ -3089,14 +3089,14 @@ adafruit_macropad2040picoprobe.menu.flash.8388608_7340032.build.flash_length=104 adafruit_macropad2040picoprobe.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_macropad2040picoprobe.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_macropad2040picoprobe.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_macropad2040picoprobe.menu.freq.125=125 MHz -adafruit_macropad2040picoprobe.menu.freq.125.build.f_cpu=125000000L +adafruit_macropad2040picoprobe.menu.freq.133=133 MHz +adafruit_macropad2040picoprobe.menu.freq.133.build.f_cpu=133000000L adafruit_macropad2040picoprobe.menu.freq.50=50 MHz adafruit_macropad2040picoprobe.menu.freq.50.build.f_cpu=50000000L adafruit_macropad2040picoprobe.menu.freq.100=100 MHz adafruit_macropad2040picoprobe.menu.freq.100.build.f_cpu=100000000L -adafruit_macropad2040picoprobe.menu.freq.133=133 MHz -adafruit_macropad2040picoprobe.menu.freq.133.build.f_cpu=133000000L +adafruit_macropad2040picoprobe.menu.freq.125=125 MHz +adafruit_macropad2040picoprobe.menu.freq.125.build.f_cpu=125000000L adafruit_macropad2040picoprobe.menu.freq.150=150 MHz (Overclock) adafruit_macropad2040picoprobe.menu.freq.150.build.f_cpu=150000000L adafruit_macropad2040picoprobe.menu.freq.175=175 MHz (Overclock) @@ -3252,14 +3252,14 @@ adafruit_macropad2040picodebug.menu.flash.8388608_7340032.build.flash_length=104 adafruit_macropad2040picodebug.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_macropad2040picodebug.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_macropad2040picodebug.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_macropad2040picodebug.menu.freq.125=125 MHz -adafruit_macropad2040picodebug.menu.freq.125.build.f_cpu=125000000L +adafruit_macropad2040picodebug.menu.freq.133=133 MHz +adafruit_macropad2040picodebug.menu.freq.133.build.f_cpu=133000000L adafruit_macropad2040picodebug.menu.freq.50=50 MHz adafruit_macropad2040picodebug.menu.freq.50.build.f_cpu=50000000L adafruit_macropad2040picodebug.menu.freq.100=100 MHz adafruit_macropad2040picodebug.menu.freq.100.build.f_cpu=100000000L -adafruit_macropad2040picodebug.menu.freq.133=133 MHz -adafruit_macropad2040picodebug.menu.freq.133.build.f_cpu=133000000L +adafruit_macropad2040picodebug.menu.freq.125=125 MHz +adafruit_macropad2040picodebug.menu.freq.125.build.f_cpu=125000000L adafruit_macropad2040picodebug.menu.freq.150=150 MHz (Overclock) adafruit_macropad2040picodebug.menu.freq.150.build.f_cpu=150000000L adafruit_macropad2040picodebug.menu.freq.175=175 MHz (Overclock) @@ -3413,14 +3413,14 @@ adafruit_kb2040.menu.flash.8388608_7340032.build.flash_length=1044480 adafruit_kb2040.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_kb2040.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_kb2040.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_kb2040.menu.freq.125=125 MHz -adafruit_kb2040.menu.freq.125.build.f_cpu=125000000L +adafruit_kb2040.menu.freq.133=133 MHz +adafruit_kb2040.menu.freq.133.build.f_cpu=133000000L adafruit_kb2040.menu.freq.50=50 MHz adafruit_kb2040.menu.freq.50.build.f_cpu=50000000L adafruit_kb2040.menu.freq.100=100 MHz adafruit_kb2040.menu.freq.100.build.f_cpu=100000000L -adafruit_kb2040.menu.freq.133=133 MHz -adafruit_kb2040.menu.freq.133.build.f_cpu=133000000L +adafruit_kb2040.menu.freq.125=125 MHz +adafruit_kb2040.menu.freq.125.build.f_cpu=125000000L adafruit_kb2040.menu.freq.150=150 MHz (Overclock) adafruit_kb2040.menu.freq.150.build.f_cpu=150000000L adafruit_kb2040.menu.freq.175=175 MHz (Overclock) @@ -3576,14 +3576,14 @@ adafruit_kb2040picoprobe.menu.flash.8388608_7340032.build.flash_length=1044480 adafruit_kb2040picoprobe.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_kb2040picoprobe.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_kb2040picoprobe.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_kb2040picoprobe.menu.freq.125=125 MHz -adafruit_kb2040picoprobe.menu.freq.125.build.f_cpu=125000000L +adafruit_kb2040picoprobe.menu.freq.133=133 MHz +adafruit_kb2040picoprobe.menu.freq.133.build.f_cpu=133000000L adafruit_kb2040picoprobe.menu.freq.50=50 MHz adafruit_kb2040picoprobe.menu.freq.50.build.f_cpu=50000000L adafruit_kb2040picoprobe.menu.freq.100=100 MHz adafruit_kb2040picoprobe.menu.freq.100.build.f_cpu=100000000L -adafruit_kb2040picoprobe.menu.freq.133=133 MHz -adafruit_kb2040picoprobe.menu.freq.133.build.f_cpu=133000000L +adafruit_kb2040picoprobe.menu.freq.125=125 MHz +adafruit_kb2040picoprobe.menu.freq.125.build.f_cpu=125000000L adafruit_kb2040picoprobe.menu.freq.150=150 MHz (Overclock) adafruit_kb2040picoprobe.menu.freq.150.build.f_cpu=150000000L adafruit_kb2040picoprobe.menu.freq.175=175 MHz (Overclock) @@ -3739,14 +3739,14 @@ adafruit_kb2040picodebug.menu.flash.8388608_7340032.build.flash_length=1044480 adafruit_kb2040picodebug.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_kb2040picodebug.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_kb2040picodebug.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_kb2040picodebug.menu.freq.125=125 MHz -adafruit_kb2040picodebug.menu.freq.125.build.f_cpu=125000000L +adafruit_kb2040picodebug.menu.freq.133=133 MHz +adafruit_kb2040picodebug.menu.freq.133.build.f_cpu=133000000L adafruit_kb2040picodebug.menu.freq.50=50 MHz adafruit_kb2040picodebug.menu.freq.50.build.f_cpu=50000000L adafruit_kb2040picodebug.menu.freq.100=100 MHz adafruit_kb2040picodebug.menu.freq.100.build.f_cpu=100000000L -adafruit_kb2040picodebug.menu.freq.133=133 MHz -adafruit_kb2040picodebug.menu.freq.133.build.f_cpu=133000000L +adafruit_kb2040picodebug.menu.freq.125=125 MHz +adafruit_kb2040picodebug.menu.freq.125.build.f_cpu=125000000L adafruit_kb2040picodebug.menu.freq.150=150 MHz (Overclock) adafruit_kb2040picodebug.menu.freq.150.build.f_cpu=150000000L adafruit_kb2040picodebug.menu.freq.175=175 MHz (Overclock) @@ -3948,14 +3948,14 @@ arduino_nano_connect.menu.flash.16777216_15728640.build.flash_length=1044480 arduino_nano_connect.menu.flash.16777216_15728640.build.eeprom_start=285208576 arduino_nano_connect.menu.flash.16777216_15728640.build.fs_start=269479936 arduino_nano_connect.menu.flash.16777216_15728640.build.fs_end=285208576 -arduino_nano_connect.menu.freq.125=125 MHz -arduino_nano_connect.menu.freq.125.build.f_cpu=125000000L +arduino_nano_connect.menu.freq.133=133 MHz +arduino_nano_connect.menu.freq.133.build.f_cpu=133000000L arduino_nano_connect.menu.freq.50=50 MHz arduino_nano_connect.menu.freq.50.build.f_cpu=50000000L arduino_nano_connect.menu.freq.100=100 MHz arduino_nano_connect.menu.freq.100.build.f_cpu=100000000L -arduino_nano_connect.menu.freq.133=133 MHz -arduino_nano_connect.menu.freq.133.build.f_cpu=133000000L +arduino_nano_connect.menu.freq.125=125 MHz +arduino_nano_connect.menu.freq.125.build.f_cpu=125000000L arduino_nano_connect.menu.freq.150=150 MHz (Overclock) arduino_nano_connect.menu.freq.150.build.f_cpu=150000000L arduino_nano_connect.menu.freq.175=175 MHz (Overclock) @@ -4159,14 +4159,14 @@ arduino_nano_connectpicoprobe.menu.flash.16777216_15728640.build.flash_length=10 arduino_nano_connectpicoprobe.menu.flash.16777216_15728640.build.eeprom_start=285208576 arduino_nano_connectpicoprobe.menu.flash.16777216_15728640.build.fs_start=269479936 arduino_nano_connectpicoprobe.menu.flash.16777216_15728640.build.fs_end=285208576 -arduino_nano_connectpicoprobe.menu.freq.125=125 MHz -arduino_nano_connectpicoprobe.menu.freq.125.build.f_cpu=125000000L +arduino_nano_connectpicoprobe.menu.freq.133=133 MHz +arduino_nano_connectpicoprobe.menu.freq.133.build.f_cpu=133000000L arduino_nano_connectpicoprobe.menu.freq.50=50 MHz arduino_nano_connectpicoprobe.menu.freq.50.build.f_cpu=50000000L arduino_nano_connectpicoprobe.menu.freq.100=100 MHz arduino_nano_connectpicoprobe.menu.freq.100.build.f_cpu=100000000L -arduino_nano_connectpicoprobe.menu.freq.133=133 MHz -arduino_nano_connectpicoprobe.menu.freq.133.build.f_cpu=133000000L +arduino_nano_connectpicoprobe.menu.freq.125=125 MHz +arduino_nano_connectpicoprobe.menu.freq.125.build.f_cpu=125000000L arduino_nano_connectpicoprobe.menu.freq.150=150 MHz (Overclock) arduino_nano_connectpicoprobe.menu.freq.150.build.f_cpu=150000000L arduino_nano_connectpicoprobe.menu.freq.175=175 MHz (Overclock) @@ -4370,14 +4370,14 @@ arduino_nano_connectpicodebug.menu.flash.16777216_15728640.build.flash_length=10 arduino_nano_connectpicodebug.menu.flash.16777216_15728640.build.eeprom_start=285208576 arduino_nano_connectpicodebug.menu.flash.16777216_15728640.build.fs_start=269479936 arduino_nano_connectpicodebug.menu.flash.16777216_15728640.build.fs_end=285208576 -arduino_nano_connectpicodebug.menu.freq.125=125 MHz -arduino_nano_connectpicodebug.menu.freq.125.build.f_cpu=125000000L +arduino_nano_connectpicodebug.menu.freq.133=133 MHz +arduino_nano_connectpicodebug.menu.freq.133.build.f_cpu=133000000L arduino_nano_connectpicodebug.menu.freq.50=50 MHz arduino_nano_connectpicodebug.menu.freq.50.build.f_cpu=50000000L arduino_nano_connectpicodebug.menu.freq.100=100 MHz arduino_nano_connectpicodebug.menu.freq.100.build.f_cpu=100000000L -arduino_nano_connectpicodebug.menu.freq.133=133 MHz -arduino_nano_connectpicodebug.menu.freq.133.build.f_cpu=133000000L +arduino_nano_connectpicodebug.menu.freq.125=125 MHz +arduino_nano_connectpicodebug.menu.freq.125.build.f_cpu=125000000L arduino_nano_connectpicodebug.menu.freq.150=150 MHz (Overclock) arduino_nano_connectpicodebug.menu.freq.150.build.f_cpu=150000000L arduino_nano_connectpicodebug.menu.freq.175=175 MHz (Overclock) @@ -4495,14 +4495,14 @@ cytron_maker_nano_rp2040.menu.flash.2097152_1048576.build.flash_length=1044480 cytron_maker_nano_rp2040.menu.flash.2097152_1048576.build.eeprom_start=270528512 cytron_maker_nano_rp2040.menu.flash.2097152_1048576.build.fs_start=269479936 cytron_maker_nano_rp2040.menu.flash.2097152_1048576.build.fs_end=270528512 -cytron_maker_nano_rp2040.menu.freq.125=125 MHz -cytron_maker_nano_rp2040.menu.freq.125.build.f_cpu=125000000L +cytron_maker_nano_rp2040.menu.freq.133=133 MHz +cytron_maker_nano_rp2040.menu.freq.133.build.f_cpu=133000000L cytron_maker_nano_rp2040.menu.freq.50=50 MHz cytron_maker_nano_rp2040.menu.freq.50.build.f_cpu=50000000L cytron_maker_nano_rp2040.menu.freq.100=100 MHz cytron_maker_nano_rp2040.menu.freq.100.build.f_cpu=100000000L -cytron_maker_nano_rp2040.menu.freq.133=133 MHz -cytron_maker_nano_rp2040.menu.freq.133.build.f_cpu=133000000L +cytron_maker_nano_rp2040.menu.freq.125=125 MHz +cytron_maker_nano_rp2040.menu.freq.125.build.f_cpu=125000000L cytron_maker_nano_rp2040.menu.freq.150=150 MHz (Overclock) cytron_maker_nano_rp2040.menu.freq.150.build.f_cpu=150000000L cytron_maker_nano_rp2040.menu.freq.175=175 MHz (Overclock) @@ -4622,14 +4622,14 @@ cytron_maker_nano_rp2040picoprobe.menu.flash.2097152_1048576.build.flash_length= cytron_maker_nano_rp2040picoprobe.menu.flash.2097152_1048576.build.eeprom_start=270528512 cytron_maker_nano_rp2040picoprobe.menu.flash.2097152_1048576.build.fs_start=269479936 cytron_maker_nano_rp2040picoprobe.menu.flash.2097152_1048576.build.fs_end=270528512 -cytron_maker_nano_rp2040picoprobe.menu.freq.125=125 MHz -cytron_maker_nano_rp2040picoprobe.menu.freq.125.build.f_cpu=125000000L +cytron_maker_nano_rp2040picoprobe.menu.freq.133=133 MHz +cytron_maker_nano_rp2040picoprobe.menu.freq.133.build.f_cpu=133000000L cytron_maker_nano_rp2040picoprobe.menu.freq.50=50 MHz cytron_maker_nano_rp2040picoprobe.menu.freq.50.build.f_cpu=50000000L cytron_maker_nano_rp2040picoprobe.menu.freq.100=100 MHz cytron_maker_nano_rp2040picoprobe.menu.freq.100.build.f_cpu=100000000L -cytron_maker_nano_rp2040picoprobe.menu.freq.133=133 MHz -cytron_maker_nano_rp2040picoprobe.menu.freq.133.build.f_cpu=133000000L +cytron_maker_nano_rp2040picoprobe.menu.freq.125=125 MHz +cytron_maker_nano_rp2040picoprobe.menu.freq.125.build.f_cpu=125000000L cytron_maker_nano_rp2040picoprobe.menu.freq.150=150 MHz (Overclock) cytron_maker_nano_rp2040picoprobe.menu.freq.150.build.f_cpu=150000000L cytron_maker_nano_rp2040picoprobe.menu.freq.175=175 MHz (Overclock) @@ -4749,14 +4749,14 @@ cytron_maker_nano_rp2040picodebug.menu.flash.2097152_1048576.build.flash_length= cytron_maker_nano_rp2040picodebug.menu.flash.2097152_1048576.build.eeprom_start=270528512 cytron_maker_nano_rp2040picodebug.menu.flash.2097152_1048576.build.fs_start=269479936 cytron_maker_nano_rp2040picodebug.menu.flash.2097152_1048576.build.fs_end=270528512 -cytron_maker_nano_rp2040picodebug.menu.freq.125=125 MHz -cytron_maker_nano_rp2040picodebug.menu.freq.125.build.f_cpu=125000000L +cytron_maker_nano_rp2040picodebug.menu.freq.133=133 MHz +cytron_maker_nano_rp2040picodebug.menu.freq.133.build.f_cpu=133000000L cytron_maker_nano_rp2040picodebug.menu.freq.50=50 MHz cytron_maker_nano_rp2040picodebug.menu.freq.50.build.f_cpu=50000000L cytron_maker_nano_rp2040picodebug.menu.freq.100=100 MHz cytron_maker_nano_rp2040picodebug.menu.freq.100.build.f_cpu=100000000L -cytron_maker_nano_rp2040picodebug.menu.freq.133=133 MHz -cytron_maker_nano_rp2040picodebug.menu.freq.133.build.f_cpu=133000000L +cytron_maker_nano_rp2040picodebug.menu.freq.125=125 MHz +cytron_maker_nano_rp2040picodebug.menu.freq.125.build.f_cpu=125000000L cytron_maker_nano_rp2040picodebug.menu.freq.150=150 MHz (Overclock) cytron_maker_nano_rp2040picodebug.menu.freq.150.build.f_cpu=150000000L cytron_maker_nano_rp2040picodebug.menu.freq.175=175 MHz (Overclock) @@ -4874,14 +4874,14 @@ cytron_maker_pi_rp2040.menu.flash.2097152_1048576.build.flash_length=1044480 cytron_maker_pi_rp2040.menu.flash.2097152_1048576.build.eeprom_start=270528512 cytron_maker_pi_rp2040.menu.flash.2097152_1048576.build.fs_start=269479936 cytron_maker_pi_rp2040.menu.flash.2097152_1048576.build.fs_end=270528512 -cytron_maker_pi_rp2040.menu.freq.125=125 MHz -cytron_maker_pi_rp2040.menu.freq.125.build.f_cpu=125000000L +cytron_maker_pi_rp2040.menu.freq.133=133 MHz +cytron_maker_pi_rp2040.menu.freq.133.build.f_cpu=133000000L cytron_maker_pi_rp2040.menu.freq.50=50 MHz cytron_maker_pi_rp2040.menu.freq.50.build.f_cpu=50000000L cytron_maker_pi_rp2040.menu.freq.100=100 MHz cytron_maker_pi_rp2040.menu.freq.100.build.f_cpu=100000000L -cytron_maker_pi_rp2040.menu.freq.133=133 MHz -cytron_maker_pi_rp2040.menu.freq.133.build.f_cpu=133000000L +cytron_maker_pi_rp2040.menu.freq.125=125 MHz +cytron_maker_pi_rp2040.menu.freq.125.build.f_cpu=125000000L cytron_maker_pi_rp2040.menu.freq.150=150 MHz (Overclock) cytron_maker_pi_rp2040.menu.freq.150.build.f_cpu=150000000L cytron_maker_pi_rp2040.menu.freq.175=175 MHz (Overclock) @@ -5001,14 +5001,14 @@ cytron_maker_pi_rp2040picoprobe.menu.flash.2097152_1048576.build.flash_length=10 cytron_maker_pi_rp2040picoprobe.menu.flash.2097152_1048576.build.eeprom_start=270528512 cytron_maker_pi_rp2040picoprobe.menu.flash.2097152_1048576.build.fs_start=269479936 cytron_maker_pi_rp2040picoprobe.menu.flash.2097152_1048576.build.fs_end=270528512 -cytron_maker_pi_rp2040picoprobe.menu.freq.125=125 MHz -cytron_maker_pi_rp2040picoprobe.menu.freq.125.build.f_cpu=125000000L +cytron_maker_pi_rp2040picoprobe.menu.freq.133=133 MHz +cytron_maker_pi_rp2040picoprobe.menu.freq.133.build.f_cpu=133000000L cytron_maker_pi_rp2040picoprobe.menu.freq.50=50 MHz cytron_maker_pi_rp2040picoprobe.menu.freq.50.build.f_cpu=50000000L cytron_maker_pi_rp2040picoprobe.menu.freq.100=100 MHz cytron_maker_pi_rp2040picoprobe.menu.freq.100.build.f_cpu=100000000L -cytron_maker_pi_rp2040picoprobe.menu.freq.133=133 MHz -cytron_maker_pi_rp2040picoprobe.menu.freq.133.build.f_cpu=133000000L +cytron_maker_pi_rp2040picoprobe.menu.freq.125=125 MHz +cytron_maker_pi_rp2040picoprobe.menu.freq.125.build.f_cpu=125000000L cytron_maker_pi_rp2040picoprobe.menu.freq.150=150 MHz (Overclock) cytron_maker_pi_rp2040picoprobe.menu.freq.150.build.f_cpu=150000000L cytron_maker_pi_rp2040picoprobe.menu.freq.175=175 MHz (Overclock) @@ -5128,14 +5128,14 @@ cytron_maker_pi_rp2040picodebug.menu.flash.2097152_1048576.build.flash_length=10 cytron_maker_pi_rp2040picodebug.menu.flash.2097152_1048576.build.eeprom_start=270528512 cytron_maker_pi_rp2040picodebug.menu.flash.2097152_1048576.build.fs_start=269479936 cytron_maker_pi_rp2040picodebug.menu.flash.2097152_1048576.build.fs_end=270528512 -cytron_maker_pi_rp2040picodebug.menu.freq.125=125 MHz -cytron_maker_pi_rp2040picodebug.menu.freq.125.build.f_cpu=125000000L +cytron_maker_pi_rp2040picodebug.menu.freq.133=133 MHz +cytron_maker_pi_rp2040picodebug.menu.freq.133.build.f_cpu=133000000L cytron_maker_pi_rp2040picodebug.menu.freq.50=50 MHz cytron_maker_pi_rp2040picodebug.menu.freq.50.build.f_cpu=50000000L cytron_maker_pi_rp2040picodebug.menu.freq.100=100 MHz cytron_maker_pi_rp2040picodebug.menu.freq.100.build.f_cpu=100000000L -cytron_maker_pi_rp2040picodebug.menu.freq.133=133 MHz -cytron_maker_pi_rp2040picodebug.menu.freq.133.build.f_cpu=133000000L +cytron_maker_pi_rp2040picodebug.menu.freq.125=125 MHz +cytron_maker_pi_rp2040picodebug.menu.freq.125.build.f_cpu=125000000L cytron_maker_pi_rp2040picodebug.menu.freq.150=150 MHz (Overclock) cytron_maker_pi_rp2040picodebug.menu.freq.150.build.f_cpu=150000000L cytron_maker_pi_rp2040picodebug.menu.freq.175=175 MHz (Overclock) @@ -5265,14 +5265,14 @@ flyboard2040_core.menu.flash.4194304_3145728.build.flash_length=1044480 flyboard2040_core.menu.flash.4194304_3145728.build.eeprom_start=272625664 flyboard2040_core.menu.flash.4194304_3145728.build.fs_start=269479936 flyboard2040_core.menu.flash.4194304_3145728.build.fs_end=272625664 -flyboard2040_core.menu.freq.125=125 MHz -flyboard2040_core.menu.freq.125.build.f_cpu=125000000L +flyboard2040_core.menu.freq.133=133 MHz +flyboard2040_core.menu.freq.133.build.f_cpu=133000000L flyboard2040_core.menu.freq.50=50 MHz flyboard2040_core.menu.freq.50.build.f_cpu=50000000L flyboard2040_core.menu.freq.100=100 MHz flyboard2040_core.menu.freq.100.build.f_cpu=100000000L -flyboard2040_core.menu.freq.133=133 MHz -flyboard2040_core.menu.freq.133.build.f_cpu=133000000L +flyboard2040_core.menu.freq.125=125 MHz +flyboard2040_core.menu.freq.125.build.f_cpu=125000000L flyboard2040_core.menu.freq.150=150 MHz (Overclock) flyboard2040_core.menu.freq.150.build.f_cpu=150000000L flyboard2040_core.menu.freq.175=175 MHz (Overclock) @@ -5404,14 +5404,14 @@ flyboard2040_corepicoprobe.menu.flash.4194304_3145728.build.flash_length=1044480 flyboard2040_corepicoprobe.menu.flash.4194304_3145728.build.eeprom_start=272625664 flyboard2040_corepicoprobe.menu.flash.4194304_3145728.build.fs_start=269479936 flyboard2040_corepicoprobe.menu.flash.4194304_3145728.build.fs_end=272625664 -flyboard2040_corepicoprobe.menu.freq.125=125 MHz -flyboard2040_corepicoprobe.menu.freq.125.build.f_cpu=125000000L +flyboard2040_corepicoprobe.menu.freq.133=133 MHz +flyboard2040_corepicoprobe.menu.freq.133.build.f_cpu=133000000L flyboard2040_corepicoprobe.menu.freq.50=50 MHz flyboard2040_corepicoprobe.menu.freq.50.build.f_cpu=50000000L flyboard2040_corepicoprobe.menu.freq.100=100 MHz flyboard2040_corepicoprobe.menu.freq.100.build.f_cpu=100000000L -flyboard2040_corepicoprobe.menu.freq.133=133 MHz -flyboard2040_corepicoprobe.menu.freq.133.build.f_cpu=133000000L +flyboard2040_corepicoprobe.menu.freq.125=125 MHz +flyboard2040_corepicoprobe.menu.freq.125.build.f_cpu=125000000L flyboard2040_corepicoprobe.menu.freq.150=150 MHz (Overclock) flyboard2040_corepicoprobe.menu.freq.150.build.f_cpu=150000000L flyboard2040_corepicoprobe.menu.freq.175=175 MHz (Overclock) @@ -5543,14 +5543,14 @@ flyboard2040_corepicodebug.menu.flash.4194304_3145728.build.flash_length=1044480 flyboard2040_corepicodebug.menu.flash.4194304_3145728.build.eeprom_start=272625664 flyboard2040_corepicodebug.menu.flash.4194304_3145728.build.fs_start=269479936 flyboard2040_corepicodebug.menu.flash.4194304_3145728.build.fs_end=272625664 -flyboard2040_corepicodebug.menu.freq.125=125 MHz -flyboard2040_corepicodebug.menu.freq.125.build.f_cpu=125000000L +flyboard2040_corepicodebug.menu.freq.133=133 MHz +flyboard2040_corepicodebug.menu.freq.133.build.f_cpu=133000000L flyboard2040_corepicodebug.menu.freq.50=50 MHz flyboard2040_corepicodebug.menu.freq.50.build.f_cpu=50000000L flyboard2040_corepicodebug.menu.freq.100=100 MHz flyboard2040_corepicodebug.menu.freq.100.build.f_cpu=100000000L -flyboard2040_corepicodebug.menu.freq.133=133 MHz -flyboard2040_corepicodebug.menu.freq.133.build.f_cpu=133000000L +flyboard2040_corepicodebug.menu.freq.125=125 MHz +flyboard2040_corepicodebug.menu.freq.125.build.f_cpu=125000000L flyboard2040_corepicodebug.menu.freq.150=150 MHz (Overclock) flyboard2040_corepicodebug.menu.freq.150.build.f_cpu=150000000L flyboard2040_corepicodebug.menu.freq.175=175 MHz (Overclock) @@ -5668,14 +5668,14 @@ dfrobot_beetle_rp2040.menu.flash.2097152_1048576.build.flash_length=1044480 dfrobot_beetle_rp2040.menu.flash.2097152_1048576.build.eeprom_start=270528512 dfrobot_beetle_rp2040.menu.flash.2097152_1048576.build.fs_start=269479936 dfrobot_beetle_rp2040.menu.flash.2097152_1048576.build.fs_end=270528512 -dfrobot_beetle_rp2040.menu.freq.125=125 MHz -dfrobot_beetle_rp2040.menu.freq.125.build.f_cpu=125000000L +dfrobot_beetle_rp2040.menu.freq.133=133 MHz +dfrobot_beetle_rp2040.menu.freq.133.build.f_cpu=133000000L dfrobot_beetle_rp2040.menu.freq.50=50 MHz dfrobot_beetle_rp2040.menu.freq.50.build.f_cpu=50000000L dfrobot_beetle_rp2040.menu.freq.100=100 MHz dfrobot_beetle_rp2040.menu.freq.100.build.f_cpu=100000000L -dfrobot_beetle_rp2040.menu.freq.133=133 MHz -dfrobot_beetle_rp2040.menu.freq.133.build.f_cpu=133000000L +dfrobot_beetle_rp2040.menu.freq.125=125 MHz +dfrobot_beetle_rp2040.menu.freq.125.build.f_cpu=125000000L dfrobot_beetle_rp2040.menu.freq.150=150 MHz (Overclock) dfrobot_beetle_rp2040.menu.freq.150.build.f_cpu=150000000L dfrobot_beetle_rp2040.menu.freq.175=175 MHz (Overclock) @@ -5795,14 +5795,14 @@ dfrobot_beetle_rp2040picoprobe.menu.flash.2097152_1048576.build.flash_length=104 dfrobot_beetle_rp2040picoprobe.menu.flash.2097152_1048576.build.eeprom_start=270528512 dfrobot_beetle_rp2040picoprobe.menu.flash.2097152_1048576.build.fs_start=269479936 dfrobot_beetle_rp2040picoprobe.menu.flash.2097152_1048576.build.fs_end=270528512 -dfrobot_beetle_rp2040picoprobe.menu.freq.125=125 MHz -dfrobot_beetle_rp2040picoprobe.menu.freq.125.build.f_cpu=125000000L +dfrobot_beetle_rp2040picoprobe.menu.freq.133=133 MHz +dfrobot_beetle_rp2040picoprobe.menu.freq.133.build.f_cpu=133000000L dfrobot_beetle_rp2040picoprobe.menu.freq.50=50 MHz dfrobot_beetle_rp2040picoprobe.menu.freq.50.build.f_cpu=50000000L dfrobot_beetle_rp2040picoprobe.menu.freq.100=100 MHz dfrobot_beetle_rp2040picoprobe.menu.freq.100.build.f_cpu=100000000L -dfrobot_beetle_rp2040picoprobe.menu.freq.133=133 MHz -dfrobot_beetle_rp2040picoprobe.menu.freq.133.build.f_cpu=133000000L +dfrobot_beetle_rp2040picoprobe.menu.freq.125=125 MHz +dfrobot_beetle_rp2040picoprobe.menu.freq.125.build.f_cpu=125000000L dfrobot_beetle_rp2040picoprobe.menu.freq.150=150 MHz (Overclock) dfrobot_beetle_rp2040picoprobe.menu.freq.150.build.f_cpu=150000000L dfrobot_beetle_rp2040picoprobe.menu.freq.175=175 MHz (Overclock) @@ -5922,14 +5922,14 @@ dfrobot_beetle_rp2040picodebug.menu.flash.2097152_1048576.build.flash_length=104 dfrobot_beetle_rp2040picodebug.menu.flash.2097152_1048576.build.eeprom_start=270528512 dfrobot_beetle_rp2040picodebug.menu.flash.2097152_1048576.build.fs_start=269479936 dfrobot_beetle_rp2040picodebug.menu.flash.2097152_1048576.build.fs_end=270528512 -dfrobot_beetle_rp2040picodebug.menu.freq.125=125 MHz -dfrobot_beetle_rp2040picodebug.menu.freq.125.build.f_cpu=125000000L +dfrobot_beetle_rp2040picodebug.menu.freq.133=133 MHz +dfrobot_beetle_rp2040picodebug.menu.freq.133.build.f_cpu=133000000L dfrobot_beetle_rp2040picodebug.menu.freq.50=50 MHz dfrobot_beetle_rp2040picodebug.menu.freq.50.build.f_cpu=50000000L dfrobot_beetle_rp2040picodebug.menu.freq.100=100 MHz dfrobot_beetle_rp2040picodebug.menu.freq.100.build.f_cpu=100000000L -dfrobot_beetle_rp2040picodebug.menu.freq.133=133 MHz -dfrobot_beetle_rp2040picodebug.menu.freq.133.build.f_cpu=133000000L +dfrobot_beetle_rp2040picodebug.menu.freq.125=125 MHz +dfrobot_beetle_rp2040picodebug.menu.freq.125.build.f_cpu=125000000L dfrobot_beetle_rp2040picodebug.menu.freq.150=150 MHz (Overclock) dfrobot_beetle_rp2040picodebug.menu.freq.150.build.f_cpu=150000000L dfrobot_beetle_rp2040picodebug.menu.freq.175=175 MHz (Overclock) @@ -6083,14 +6083,14 @@ challenger_2040_lora.menu.flash.8388608_7340032.build.flash_length=1044480 challenger_2040_lora.menu.flash.8388608_7340032.build.eeprom_start=276819968 challenger_2040_lora.menu.flash.8388608_7340032.build.fs_start=269479936 challenger_2040_lora.menu.flash.8388608_7340032.build.fs_end=276819968 -challenger_2040_lora.menu.freq.125=125 MHz -challenger_2040_lora.menu.freq.125.build.f_cpu=125000000L +challenger_2040_lora.menu.freq.133=133 MHz +challenger_2040_lora.menu.freq.133.build.f_cpu=133000000L challenger_2040_lora.menu.freq.50=50 MHz challenger_2040_lora.menu.freq.50.build.f_cpu=50000000L challenger_2040_lora.menu.freq.100=100 MHz challenger_2040_lora.menu.freq.100.build.f_cpu=100000000L -challenger_2040_lora.menu.freq.133=133 MHz -challenger_2040_lora.menu.freq.133.build.f_cpu=133000000L +challenger_2040_lora.menu.freq.125=125 MHz +challenger_2040_lora.menu.freq.125.build.f_cpu=125000000L challenger_2040_lora.menu.freq.150=150 MHz (Overclock) challenger_2040_lora.menu.freq.150.build.f_cpu=150000000L challenger_2040_lora.menu.freq.175=175 MHz (Overclock) @@ -6246,14 +6246,14 @@ challenger_2040_lorapicoprobe.menu.flash.8388608_7340032.build.flash_length=1044 challenger_2040_lorapicoprobe.menu.flash.8388608_7340032.build.eeprom_start=276819968 challenger_2040_lorapicoprobe.menu.flash.8388608_7340032.build.fs_start=269479936 challenger_2040_lorapicoprobe.menu.flash.8388608_7340032.build.fs_end=276819968 -challenger_2040_lorapicoprobe.menu.freq.125=125 MHz -challenger_2040_lorapicoprobe.menu.freq.125.build.f_cpu=125000000L +challenger_2040_lorapicoprobe.menu.freq.133=133 MHz +challenger_2040_lorapicoprobe.menu.freq.133.build.f_cpu=133000000L challenger_2040_lorapicoprobe.menu.freq.50=50 MHz challenger_2040_lorapicoprobe.menu.freq.50.build.f_cpu=50000000L challenger_2040_lorapicoprobe.menu.freq.100=100 MHz challenger_2040_lorapicoprobe.menu.freq.100.build.f_cpu=100000000L -challenger_2040_lorapicoprobe.menu.freq.133=133 MHz -challenger_2040_lorapicoprobe.menu.freq.133.build.f_cpu=133000000L +challenger_2040_lorapicoprobe.menu.freq.125=125 MHz +challenger_2040_lorapicoprobe.menu.freq.125.build.f_cpu=125000000L challenger_2040_lorapicoprobe.menu.freq.150=150 MHz (Overclock) challenger_2040_lorapicoprobe.menu.freq.150.build.f_cpu=150000000L challenger_2040_lorapicoprobe.menu.freq.175=175 MHz (Overclock) @@ -6409,14 +6409,14 @@ challenger_2040_lorapicodebug.menu.flash.8388608_7340032.build.flash_length=1044 challenger_2040_lorapicodebug.menu.flash.8388608_7340032.build.eeprom_start=276819968 challenger_2040_lorapicodebug.menu.flash.8388608_7340032.build.fs_start=269479936 challenger_2040_lorapicodebug.menu.flash.8388608_7340032.build.fs_end=276819968 -challenger_2040_lorapicodebug.menu.freq.125=125 MHz -challenger_2040_lorapicodebug.menu.freq.125.build.f_cpu=125000000L +challenger_2040_lorapicodebug.menu.freq.133=133 MHz +challenger_2040_lorapicodebug.menu.freq.133.build.f_cpu=133000000L challenger_2040_lorapicodebug.menu.freq.50=50 MHz challenger_2040_lorapicodebug.menu.freq.50.build.f_cpu=50000000L challenger_2040_lorapicodebug.menu.freq.100=100 MHz challenger_2040_lorapicodebug.menu.freq.100.build.f_cpu=100000000L -challenger_2040_lorapicodebug.menu.freq.133=133 MHz -challenger_2040_lorapicodebug.menu.freq.133.build.f_cpu=133000000L +challenger_2040_lorapicodebug.menu.freq.125=125 MHz +challenger_2040_lorapicodebug.menu.freq.125.build.f_cpu=125000000L challenger_2040_lorapicodebug.menu.freq.150=150 MHz (Overclock) challenger_2040_lorapicodebug.menu.freq.150.build.f_cpu=150000000L challenger_2040_lorapicodebug.menu.freq.175=175 MHz (Overclock) @@ -6570,14 +6570,14 @@ challenger_2040_wifi.menu.flash.8388608_7340032.build.flash_length=1044480 challenger_2040_wifi.menu.flash.8388608_7340032.build.eeprom_start=276819968 challenger_2040_wifi.menu.flash.8388608_7340032.build.fs_start=269479936 challenger_2040_wifi.menu.flash.8388608_7340032.build.fs_end=276819968 -challenger_2040_wifi.menu.freq.125=125 MHz -challenger_2040_wifi.menu.freq.125.build.f_cpu=125000000L +challenger_2040_wifi.menu.freq.133=133 MHz +challenger_2040_wifi.menu.freq.133.build.f_cpu=133000000L challenger_2040_wifi.menu.freq.50=50 MHz challenger_2040_wifi.menu.freq.50.build.f_cpu=50000000L challenger_2040_wifi.menu.freq.100=100 MHz challenger_2040_wifi.menu.freq.100.build.f_cpu=100000000L -challenger_2040_wifi.menu.freq.133=133 MHz -challenger_2040_wifi.menu.freq.133.build.f_cpu=133000000L +challenger_2040_wifi.menu.freq.125=125 MHz +challenger_2040_wifi.menu.freq.125.build.f_cpu=125000000L challenger_2040_wifi.menu.freq.150=150 MHz (Overclock) challenger_2040_wifi.menu.freq.150.build.f_cpu=150000000L challenger_2040_wifi.menu.freq.175=175 MHz (Overclock) @@ -6733,14 +6733,14 @@ challenger_2040_wifipicoprobe.menu.flash.8388608_7340032.build.flash_length=1044 challenger_2040_wifipicoprobe.menu.flash.8388608_7340032.build.eeprom_start=276819968 challenger_2040_wifipicoprobe.menu.flash.8388608_7340032.build.fs_start=269479936 challenger_2040_wifipicoprobe.menu.flash.8388608_7340032.build.fs_end=276819968 -challenger_2040_wifipicoprobe.menu.freq.125=125 MHz -challenger_2040_wifipicoprobe.menu.freq.125.build.f_cpu=125000000L +challenger_2040_wifipicoprobe.menu.freq.133=133 MHz +challenger_2040_wifipicoprobe.menu.freq.133.build.f_cpu=133000000L challenger_2040_wifipicoprobe.menu.freq.50=50 MHz challenger_2040_wifipicoprobe.menu.freq.50.build.f_cpu=50000000L challenger_2040_wifipicoprobe.menu.freq.100=100 MHz challenger_2040_wifipicoprobe.menu.freq.100.build.f_cpu=100000000L -challenger_2040_wifipicoprobe.menu.freq.133=133 MHz -challenger_2040_wifipicoprobe.menu.freq.133.build.f_cpu=133000000L +challenger_2040_wifipicoprobe.menu.freq.125=125 MHz +challenger_2040_wifipicoprobe.menu.freq.125.build.f_cpu=125000000L challenger_2040_wifipicoprobe.menu.freq.150=150 MHz (Overclock) challenger_2040_wifipicoprobe.menu.freq.150.build.f_cpu=150000000L challenger_2040_wifipicoprobe.menu.freq.175=175 MHz (Overclock) @@ -6896,14 +6896,14 @@ challenger_2040_wifipicodebug.menu.flash.8388608_7340032.build.flash_length=1044 challenger_2040_wifipicodebug.menu.flash.8388608_7340032.build.eeprom_start=276819968 challenger_2040_wifipicodebug.menu.flash.8388608_7340032.build.fs_start=269479936 challenger_2040_wifipicodebug.menu.flash.8388608_7340032.build.fs_end=276819968 -challenger_2040_wifipicodebug.menu.freq.125=125 MHz -challenger_2040_wifipicodebug.menu.freq.125.build.f_cpu=125000000L +challenger_2040_wifipicodebug.menu.freq.133=133 MHz +challenger_2040_wifipicodebug.menu.freq.133.build.f_cpu=133000000L challenger_2040_wifipicodebug.menu.freq.50=50 MHz challenger_2040_wifipicodebug.menu.freq.50.build.f_cpu=50000000L challenger_2040_wifipicodebug.menu.freq.100=100 MHz challenger_2040_wifipicodebug.menu.freq.100.build.f_cpu=100000000L -challenger_2040_wifipicodebug.menu.freq.133=133 MHz -challenger_2040_wifipicodebug.menu.freq.133.build.f_cpu=133000000L +challenger_2040_wifipicodebug.menu.freq.125=125 MHz +challenger_2040_wifipicodebug.menu.freq.125.build.f_cpu=125000000L challenger_2040_wifipicodebug.menu.freq.150=150 MHz (Overclock) challenger_2040_wifipicodebug.menu.freq.150.build.f_cpu=150000000L challenger_2040_wifipicodebug.menu.freq.175=175 MHz (Overclock) @@ -7057,14 +7057,14 @@ challenger_2040_lte.menu.flash.8388608_7340032.build.flash_length=1044480 challenger_2040_lte.menu.flash.8388608_7340032.build.eeprom_start=276819968 challenger_2040_lte.menu.flash.8388608_7340032.build.fs_start=269479936 challenger_2040_lte.menu.flash.8388608_7340032.build.fs_end=276819968 -challenger_2040_lte.menu.freq.125=125 MHz -challenger_2040_lte.menu.freq.125.build.f_cpu=125000000L +challenger_2040_lte.menu.freq.133=133 MHz +challenger_2040_lte.menu.freq.133.build.f_cpu=133000000L challenger_2040_lte.menu.freq.50=50 MHz challenger_2040_lte.menu.freq.50.build.f_cpu=50000000L challenger_2040_lte.menu.freq.100=100 MHz challenger_2040_lte.menu.freq.100.build.f_cpu=100000000L -challenger_2040_lte.menu.freq.133=133 MHz -challenger_2040_lte.menu.freq.133.build.f_cpu=133000000L +challenger_2040_lte.menu.freq.125=125 MHz +challenger_2040_lte.menu.freq.125.build.f_cpu=125000000L challenger_2040_lte.menu.freq.150=150 MHz (Overclock) challenger_2040_lte.menu.freq.150.build.f_cpu=150000000L challenger_2040_lte.menu.freq.175=175 MHz (Overclock) @@ -7220,14 +7220,14 @@ challenger_2040_ltepicoprobe.menu.flash.8388608_7340032.build.flash_length=10444 challenger_2040_ltepicoprobe.menu.flash.8388608_7340032.build.eeprom_start=276819968 challenger_2040_ltepicoprobe.menu.flash.8388608_7340032.build.fs_start=269479936 challenger_2040_ltepicoprobe.menu.flash.8388608_7340032.build.fs_end=276819968 -challenger_2040_ltepicoprobe.menu.freq.125=125 MHz -challenger_2040_ltepicoprobe.menu.freq.125.build.f_cpu=125000000L +challenger_2040_ltepicoprobe.menu.freq.133=133 MHz +challenger_2040_ltepicoprobe.menu.freq.133.build.f_cpu=133000000L challenger_2040_ltepicoprobe.menu.freq.50=50 MHz challenger_2040_ltepicoprobe.menu.freq.50.build.f_cpu=50000000L challenger_2040_ltepicoprobe.menu.freq.100=100 MHz challenger_2040_ltepicoprobe.menu.freq.100.build.f_cpu=100000000L -challenger_2040_ltepicoprobe.menu.freq.133=133 MHz -challenger_2040_ltepicoprobe.menu.freq.133.build.f_cpu=133000000L +challenger_2040_ltepicoprobe.menu.freq.125=125 MHz +challenger_2040_ltepicoprobe.menu.freq.125.build.f_cpu=125000000L challenger_2040_ltepicoprobe.menu.freq.150=150 MHz (Overclock) challenger_2040_ltepicoprobe.menu.freq.150.build.f_cpu=150000000L challenger_2040_ltepicoprobe.menu.freq.175=175 MHz (Overclock) @@ -7383,14 +7383,14 @@ challenger_2040_ltepicodebug.menu.flash.8388608_7340032.build.flash_length=10444 challenger_2040_ltepicodebug.menu.flash.8388608_7340032.build.eeprom_start=276819968 challenger_2040_ltepicodebug.menu.flash.8388608_7340032.build.fs_start=269479936 challenger_2040_ltepicodebug.menu.flash.8388608_7340032.build.fs_end=276819968 -challenger_2040_ltepicodebug.menu.freq.125=125 MHz -challenger_2040_ltepicodebug.menu.freq.125.build.f_cpu=125000000L +challenger_2040_ltepicodebug.menu.freq.133=133 MHz +challenger_2040_ltepicodebug.menu.freq.133.build.f_cpu=133000000L challenger_2040_ltepicodebug.menu.freq.50=50 MHz challenger_2040_ltepicodebug.menu.freq.50.build.f_cpu=50000000L challenger_2040_ltepicodebug.menu.freq.100=100 MHz challenger_2040_ltepicodebug.menu.freq.100.build.f_cpu=100000000L -challenger_2040_ltepicodebug.menu.freq.133=133 MHz -challenger_2040_ltepicodebug.menu.freq.133.build.f_cpu=133000000L +challenger_2040_ltepicodebug.menu.freq.125=125 MHz +challenger_2040_ltepicodebug.menu.freq.125.build.f_cpu=125000000L challenger_2040_ltepicodebug.menu.freq.150=150 MHz (Overclock) challenger_2040_ltepicodebug.menu.freq.150.build.f_cpu=150000000L challenger_2040_ltepicodebug.menu.freq.175=175 MHz (Overclock) @@ -7544,14 +7544,14 @@ challenger_nb_2040_wifi.menu.flash.8388608_7340032.build.flash_length=1044480 challenger_nb_2040_wifi.menu.flash.8388608_7340032.build.eeprom_start=276819968 challenger_nb_2040_wifi.menu.flash.8388608_7340032.build.fs_start=269479936 challenger_nb_2040_wifi.menu.flash.8388608_7340032.build.fs_end=276819968 -challenger_nb_2040_wifi.menu.freq.125=125 MHz -challenger_nb_2040_wifi.menu.freq.125.build.f_cpu=125000000L +challenger_nb_2040_wifi.menu.freq.133=133 MHz +challenger_nb_2040_wifi.menu.freq.133.build.f_cpu=133000000L challenger_nb_2040_wifi.menu.freq.50=50 MHz challenger_nb_2040_wifi.menu.freq.50.build.f_cpu=50000000L challenger_nb_2040_wifi.menu.freq.100=100 MHz challenger_nb_2040_wifi.menu.freq.100.build.f_cpu=100000000L -challenger_nb_2040_wifi.menu.freq.133=133 MHz -challenger_nb_2040_wifi.menu.freq.133.build.f_cpu=133000000L +challenger_nb_2040_wifi.menu.freq.125=125 MHz +challenger_nb_2040_wifi.menu.freq.125.build.f_cpu=125000000L challenger_nb_2040_wifi.menu.freq.150=150 MHz (Overclock) challenger_nb_2040_wifi.menu.freq.150.build.f_cpu=150000000L challenger_nb_2040_wifi.menu.freq.175=175 MHz (Overclock) @@ -7707,14 +7707,14 @@ challenger_nb_2040_wifipicoprobe.menu.flash.8388608_7340032.build.flash_length=1 challenger_nb_2040_wifipicoprobe.menu.flash.8388608_7340032.build.eeprom_start=276819968 challenger_nb_2040_wifipicoprobe.menu.flash.8388608_7340032.build.fs_start=269479936 challenger_nb_2040_wifipicoprobe.menu.flash.8388608_7340032.build.fs_end=276819968 -challenger_nb_2040_wifipicoprobe.menu.freq.125=125 MHz -challenger_nb_2040_wifipicoprobe.menu.freq.125.build.f_cpu=125000000L +challenger_nb_2040_wifipicoprobe.menu.freq.133=133 MHz +challenger_nb_2040_wifipicoprobe.menu.freq.133.build.f_cpu=133000000L challenger_nb_2040_wifipicoprobe.menu.freq.50=50 MHz challenger_nb_2040_wifipicoprobe.menu.freq.50.build.f_cpu=50000000L challenger_nb_2040_wifipicoprobe.menu.freq.100=100 MHz challenger_nb_2040_wifipicoprobe.menu.freq.100.build.f_cpu=100000000L -challenger_nb_2040_wifipicoprobe.menu.freq.133=133 MHz -challenger_nb_2040_wifipicoprobe.menu.freq.133.build.f_cpu=133000000L +challenger_nb_2040_wifipicoprobe.menu.freq.125=125 MHz +challenger_nb_2040_wifipicoprobe.menu.freq.125.build.f_cpu=125000000L challenger_nb_2040_wifipicoprobe.menu.freq.150=150 MHz (Overclock) challenger_nb_2040_wifipicoprobe.menu.freq.150.build.f_cpu=150000000L challenger_nb_2040_wifipicoprobe.menu.freq.175=175 MHz (Overclock) @@ -7870,14 +7870,14 @@ challenger_nb_2040_wifipicodebug.menu.flash.8388608_7340032.build.flash_length=1 challenger_nb_2040_wifipicodebug.menu.flash.8388608_7340032.build.eeprom_start=276819968 challenger_nb_2040_wifipicodebug.menu.flash.8388608_7340032.build.fs_start=269479936 challenger_nb_2040_wifipicodebug.menu.flash.8388608_7340032.build.fs_end=276819968 -challenger_nb_2040_wifipicodebug.menu.freq.125=125 MHz -challenger_nb_2040_wifipicodebug.menu.freq.125.build.f_cpu=125000000L +challenger_nb_2040_wifipicodebug.menu.freq.133=133 MHz +challenger_nb_2040_wifipicodebug.menu.freq.133.build.f_cpu=133000000L challenger_nb_2040_wifipicodebug.menu.freq.50=50 MHz challenger_nb_2040_wifipicodebug.menu.freq.50.build.f_cpu=50000000L challenger_nb_2040_wifipicodebug.menu.freq.100=100 MHz challenger_nb_2040_wifipicodebug.menu.freq.100.build.f_cpu=100000000L -challenger_nb_2040_wifipicodebug.menu.freq.133=133 MHz -challenger_nb_2040_wifipicodebug.menu.freq.133.build.f_cpu=133000000L +challenger_nb_2040_wifipicodebug.menu.freq.125=125 MHz +challenger_nb_2040_wifipicodebug.menu.freq.125.build.f_cpu=125000000L challenger_nb_2040_wifipicodebug.menu.freq.150=150 MHz (Overclock) challenger_nb_2040_wifipicodebug.menu.freq.150.build.f_cpu=150000000L challenger_nb_2040_wifipicodebug.menu.freq.175=175 MHz (Overclock) @@ -8031,14 +8031,14 @@ ilabs_rpico32.menu.flash.8388608_7340032.build.flash_length=1044480 ilabs_rpico32.menu.flash.8388608_7340032.build.eeprom_start=276819968 ilabs_rpico32.menu.flash.8388608_7340032.build.fs_start=269479936 ilabs_rpico32.menu.flash.8388608_7340032.build.fs_end=276819968 -ilabs_rpico32.menu.freq.125=125 MHz -ilabs_rpico32.menu.freq.125.build.f_cpu=125000000L +ilabs_rpico32.menu.freq.133=133 MHz +ilabs_rpico32.menu.freq.133.build.f_cpu=133000000L ilabs_rpico32.menu.freq.50=50 MHz ilabs_rpico32.menu.freq.50.build.f_cpu=50000000L ilabs_rpico32.menu.freq.100=100 MHz ilabs_rpico32.menu.freq.100.build.f_cpu=100000000L -ilabs_rpico32.menu.freq.133=133 MHz -ilabs_rpico32.menu.freq.133.build.f_cpu=133000000L +ilabs_rpico32.menu.freq.125=125 MHz +ilabs_rpico32.menu.freq.125.build.f_cpu=125000000L ilabs_rpico32.menu.freq.150=150 MHz (Overclock) ilabs_rpico32.menu.freq.150.build.f_cpu=150000000L ilabs_rpico32.menu.freq.175=175 MHz (Overclock) @@ -8194,14 +8194,14 @@ ilabs_rpico32picoprobe.menu.flash.8388608_7340032.build.flash_length=1044480 ilabs_rpico32picoprobe.menu.flash.8388608_7340032.build.eeprom_start=276819968 ilabs_rpico32picoprobe.menu.flash.8388608_7340032.build.fs_start=269479936 ilabs_rpico32picoprobe.menu.flash.8388608_7340032.build.fs_end=276819968 -ilabs_rpico32picoprobe.menu.freq.125=125 MHz -ilabs_rpico32picoprobe.menu.freq.125.build.f_cpu=125000000L +ilabs_rpico32picoprobe.menu.freq.133=133 MHz +ilabs_rpico32picoprobe.menu.freq.133.build.f_cpu=133000000L ilabs_rpico32picoprobe.menu.freq.50=50 MHz ilabs_rpico32picoprobe.menu.freq.50.build.f_cpu=50000000L ilabs_rpico32picoprobe.menu.freq.100=100 MHz ilabs_rpico32picoprobe.menu.freq.100.build.f_cpu=100000000L -ilabs_rpico32picoprobe.menu.freq.133=133 MHz -ilabs_rpico32picoprobe.menu.freq.133.build.f_cpu=133000000L +ilabs_rpico32picoprobe.menu.freq.125=125 MHz +ilabs_rpico32picoprobe.menu.freq.125.build.f_cpu=125000000L ilabs_rpico32picoprobe.menu.freq.150=150 MHz (Overclock) ilabs_rpico32picoprobe.menu.freq.150.build.f_cpu=150000000L ilabs_rpico32picoprobe.menu.freq.175=175 MHz (Overclock) @@ -8357,14 +8357,14 @@ ilabs_rpico32picodebug.menu.flash.8388608_7340032.build.flash_length=1044480 ilabs_rpico32picodebug.menu.flash.8388608_7340032.build.eeprom_start=276819968 ilabs_rpico32picodebug.menu.flash.8388608_7340032.build.fs_start=269479936 ilabs_rpico32picodebug.menu.flash.8388608_7340032.build.fs_end=276819968 -ilabs_rpico32picodebug.menu.freq.125=125 MHz -ilabs_rpico32picodebug.menu.freq.125.build.f_cpu=125000000L +ilabs_rpico32picodebug.menu.freq.133=133 MHz +ilabs_rpico32picodebug.menu.freq.133.build.f_cpu=133000000L ilabs_rpico32picodebug.menu.freq.50=50 MHz ilabs_rpico32picodebug.menu.freq.50.build.f_cpu=50000000L ilabs_rpico32picodebug.menu.freq.100=100 MHz ilabs_rpico32picodebug.menu.freq.100.build.f_cpu=100000000L -ilabs_rpico32picodebug.menu.freq.133=133 MHz -ilabs_rpico32picodebug.menu.freq.133.build.f_cpu=133000000L +ilabs_rpico32picodebug.menu.freq.125=125 MHz +ilabs_rpico32picodebug.menu.freq.125.build.f_cpu=125000000L ilabs_rpico32picodebug.menu.freq.150=150 MHz (Overclock) ilabs_rpico32picodebug.menu.freq.150.build.f_cpu=150000000L ilabs_rpico32picodebug.menu.freq.175=175 MHz (Overclock) @@ -8566,14 +8566,14 @@ melopero_shake_rp2040.menu.flash.16777216_15728640.build.flash_length=1044480 melopero_shake_rp2040.menu.flash.16777216_15728640.build.eeprom_start=285208576 melopero_shake_rp2040.menu.flash.16777216_15728640.build.fs_start=269479936 melopero_shake_rp2040.menu.flash.16777216_15728640.build.fs_end=285208576 -melopero_shake_rp2040.menu.freq.125=125 MHz -melopero_shake_rp2040.menu.freq.125.build.f_cpu=125000000L +melopero_shake_rp2040.menu.freq.133=133 MHz +melopero_shake_rp2040.menu.freq.133.build.f_cpu=133000000L melopero_shake_rp2040.menu.freq.50=50 MHz melopero_shake_rp2040.menu.freq.50.build.f_cpu=50000000L melopero_shake_rp2040.menu.freq.100=100 MHz melopero_shake_rp2040.menu.freq.100.build.f_cpu=100000000L -melopero_shake_rp2040.menu.freq.133=133 MHz -melopero_shake_rp2040.menu.freq.133.build.f_cpu=133000000L +melopero_shake_rp2040.menu.freq.125=125 MHz +melopero_shake_rp2040.menu.freq.125.build.f_cpu=125000000L melopero_shake_rp2040.menu.freq.150=150 MHz (Overclock) melopero_shake_rp2040.menu.freq.150.build.f_cpu=150000000L melopero_shake_rp2040.menu.freq.175=175 MHz (Overclock) @@ -8777,14 +8777,14 @@ melopero_shake_rp2040picoprobe.menu.flash.16777216_15728640.build.flash_length=1 melopero_shake_rp2040picoprobe.menu.flash.16777216_15728640.build.eeprom_start=285208576 melopero_shake_rp2040picoprobe.menu.flash.16777216_15728640.build.fs_start=269479936 melopero_shake_rp2040picoprobe.menu.flash.16777216_15728640.build.fs_end=285208576 -melopero_shake_rp2040picoprobe.menu.freq.125=125 MHz -melopero_shake_rp2040picoprobe.menu.freq.125.build.f_cpu=125000000L +melopero_shake_rp2040picoprobe.menu.freq.133=133 MHz +melopero_shake_rp2040picoprobe.menu.freq.133.build.f_cpu=133000000L melopero_shake_rp2040picoprobe.menu.freq.50=50 MHz melopero_shake_rp2040picoprobe.menu.freq.50.build.f_cpu=50000000L melopero_shake_rp2040picoprobe.menu.freq.100=100 MHz melopero_shake_rp2040picoprobe.menu.freq.100.build.f_cpu=100000000L -melopero_shake_rp2040picoprobe.menu.freq.133=133 MHz -melopero_shake_rp2040picoprobe.menu.freq.133.build.f_cpu=133000000L +melopero_shake_rp2040picoprobe.menu.freq.125=125 MHz +melopero_shake_rp2040picoprobe.menu.freq.125.build.f_cpu=125000000L melopero_shake_rp2040picoprobe.menu.freq.150=150 MHz (Overclock) melopero_shake_rp2040picoprobe.menu.freq.150.build.f_cpu=150000000L melopero_shake_rp2040picoprobe.menu.freq.175=175 MHz (Overclock) @@ -8988,14 +8988,14 @@ melopero_shake_rp2040picodebug.menu.flash.16777216_15728640.build.flash_length=1 melopero_shake_rp2040picodebug.menu.flash.16777216_15728640.build.eeprom_start=285208576 melopero_shake_rp2040picodebug.menu.flash.16777216_15728640.build.fs_start=269479936 melopero_shake_rp2040picodebug.menu.flash.16777216_15728640.build.fs_end=285208576 -melopero_shake_rp2040picodebug.menu.freq.125=125 MHz -melopero_shake_rp2040picodebug.menu.freq.125.build.f_cpu=125000000L +melopero_shake_rp2040picodebug.menu.freq.133=133 MHz +melopero_shake_rp2040picodebug.menu.freq.133.build.f_cpu=133000000L melopero_shake_rp2040picodebug.menu.freq.50=50 MHz melopero_shake_rp2040picodebug.menu.freq.50.build.f_cpu=50000000L melopero_shake_rp2040picodebug.menu.freq.100=100 MHz melopero_shake_rp2040picodebug.menu.freq.100.build.f_cpu=100000000L -melopero_shake_rp2040picodebug.menu.freq.133=133 MHz -melopero_shake_rp2040picodebug.menu.freq.133.build.f_cpu=133000000L +melopero_shake_rp2040picodebug.menu.freq.125=125 MHz +melopero_shake_rp2040picodebug.menu.freq.125.build.f_cpu=125000000L melopero_shake_rp2040picodebug.menu.freq.150=150 MHz (Overclock) melopero_shake_rp2040picodebug.menu.freq.150.build.f_cpu=150000000L melopero_shake_rp2040picodebug.menu.freq.175=175 MHz (Overclock) @@ -9149,14 +9149,14 @@ solderparty_rp2040_stamp.menu.flash.8388608_7340032.build.flash_length=1044480 solderparty_rp2040_stamp.menu.flash.8388608_7340032.build.eeprom_start=276819968 solderparty_rp2040_stamp.menu.flash.8388608_7340032.build.fs_start=269479936 solderparty_rp2040_stamp.menu.flash.8388608_7340032.build.fs_end=276819968 -solderparty_rp2040_stamp.menu.freq.125=125 MHz -solderparty_rp2040_stamp.menu.freq.125.build.f_cpu=125000000L +solderparty_rp2040_stamp.menu.freq.133=133 MHz +solderparty_rp2040_stamp.menu.freq.133.build.f_cpu=133000000L solderparty_rp2040_stamp.menu.freq.50=50 MHz solderparty_rp2040_stamp.menu.freq.50.build.f_cpu=50000000L solderparty_rp2040_stamp.menu.freq.100=100 MHz solderparty_rp2040_stamp.menu.freq.100.build.f_cpu=100000000L -solderparty_rp2040_stamp.menu.freq.133=133 MHz -solderparty_rp2040_stamp.menu.freq.133.build.f_cpu=133000000L +solderparty_rp2040_stamp.menu.freq.125=125 MHz +solderparty_rp2040_stamp.menu.freq.125.build.f_cpu=125000000L solderparty_rp2040_stamp.menu.freq.150=150 MHz (Overclock) solderparty_rp2040_stamp.menu.freq.150.build.f_cpu=150000000L solderparty_rp2040_stamp.menu.freq.175=175 MHz (Overclock) @@ -9312,14 +9312,14 @@ solderparty_rp2040_stamppicoprobe.menu.flash.8388608_7340032.build.flash_length= solderparty_rp2040_stamppicoprobe.menu.flash.8388608_7340032.build.eeprom_start=276819968 solderparty_rp2040_stamppicoprobe.menu.flash.8388608_7340032.build.fs_start=269479936 solderparty_rp2040_stamppicoprobe.menu.flash.8388608_7340032.build.fs_end=276819968 -solderparty_rp2040_stamppicoprobe.menu.freq.125=125 MHz -solderparty_rp2040_stamppicoprobe.menu.freq.125.build.f_cpu=125000000L +solderparty_rp2040_stamppicoprobe.menu.freq.133=133 MHz +solderparty_rp2040_stamppicoprobe.menu.freq.133.build.f_cpu=133000000L solderparty_rp2040_stamppicoprobe.menu.freq.50=50 MHz solderparty_rp2040_stamppicoprobe.menu.freq.50.build.f_cpu=50000000L solderparty_rp2040_stamppicoprobe.menu.freq.100=100 MHz solderparty_rp2040_stamppicoprobe.menu.freq.100.build.f_cpu=100000000L -solderparty_rp2040_stamppicoprobe.menu.freq.133=133 MHz -solderparty_rp2040_stamppicoprobe.menu.freq.133.build.f_cpu=133000000L +solderparty_rp2040_stamppicoprobe.menu.freq.125=125 MHz +solderparty_rp2040_stamppicoprobe.menu.freq.125.build.f_cpu=125000000L solderparty_rp2040_stamppicoprobe.menu.freq.150=150 MHz (Overclock) solderparty_rp2040_stamppicoprobe.menu.freq.150.build.f_cpu=150000000L solderparty_rp2040_stamppicoprobe.menu.freq.175=175 MHz (Overclock) @@ -9475,14 +9475,14 @@ solderparty_rp2040_stamppicodebug.menu.flash.8388608_7340032.build.flash_length= solderparty_rp2040_stamppicodebug.menu.flash.8388608_7340032.build.eeprom_start=276819968 solderparty_rp2040_stamppicodebug.menu.flash.8388608_7340032.build.fs_start=269479936 solderparty_rp2040_stamppicodebug.menu.flash.8388608_7340032.build.fs_end=276819968 -solderparty_rp2040_stamppicodebug.menu.freq.125=125 MHz -solderparty_rp2040_stamppicodebug.menu.freq.125.build.f_cpu=125000000L +solderparty_rp2040_stamppicodebug.menu.freq.133=133 MHz +solderparty_rp2040_stamppicodebug.menu.freq.133.build.f_cpu=133000000L solderparty_rp2040_stamppicodebug.menu.freq.50=50 MHz solderparty_rp2040_stamppicodebug.menu.freq.50.build.f_cpu=50000000L solderparty_rp2040_stamppicodebug.menu.freq.100=100 MHz solderparty_rp2040_stamppicodebug.menu.freq.100.build.f_cpu=100000000L -solderparty_rp2040_stamppicodebug.menu.freq.133=133 MHz -solderparty_rp2040_stamppicodebug.menu.freq.133.build.f_cpu=133000000L +solderparty_rp2040_stamppicodebug.menu.freq.125=125 MHz +solderparty_rp2040_stamppicodebug.menu.freq.125.build.f_cpu=125000000L solderparty_rp2040_stamppicodebug.menu.freq.150=150 MHz (Overclock) solderparty_rp2040_stamppicodebug.menu.freq.150.build.f_cpu=150000000L solderparty_rp2040_stamppicodebug.menu.freq.175=175 MHz (Overclock) @@ -9684,14 +9684,14 @@ sparkfun_promicrorp2040.menu.flash.16777216_15728640.build.flash_length=1044480 sparkfun_promicrorp2040.menu.flash.16777216_15728640.build.eeprom_start=285208576 sparkfun_promicrorp2040.menu.flash.16777216_15728640.build.fs_start=269479936 sparkfun_promicrorp2040.menu.flash.16777216_15728640.build.fs_end=285208576 -sparkfun_promicrorp2040.menu.freq.125=125 MHz -sparkfun_promicrorp2040.menu.freq.125.build.f_cpu=125000000L +sparkfun_promicrorp2040.menu.freq.133=133 MHz +sparkfun_promicrorp2040.menu.freq.133.build.f_cpu=133000000L sparkfun_promicrorp2040.menu.freq.50=50 MHz sparkfun_promicrorp2040.menu.freq.50.build.f_cpu=50000000L sparkfun_promicrorp2040.menu.freq.100=100 MHz sparkfun_promicrorp2040.menu.freq.100.build.f_cpu=100000000L -sparkfun_promicrorp2040.menu.freq.133=133 MHz -sparkfun_promicrorp2040.menu.freq.133.build.f_cpu=133000000L +sparkfun_promicrorp2040.menu.freq.125=125 MHz +sparkfun_promicrorp2040.menu.freq.125.build.f_cpu=125000000L sparkfun_promicrorp2040.menu.freq.150=150 MHz (Overclock) sparkfun_promicrorp2040.menu.freq.150.build.f_cpu=150000000L sparkfun_promicrorp2040.menu.freq.175=175 MHz (Overclock) @@ -9895,14 +9895,14 @@ sparkfun_promicrorp2040picoprobe.menu.flash.16777216_15728640.build.flash_length sparkfun_promicrorp2040picoprobe.menu.flash.16777216_15728640.build.eeprom_start=285208576 sparkfun_promicrorp2040picoprobe.menu.flash.16777216_15728640.build.fs_start=269479936 sparkfun_promicrorp2040picoprobe.menu.flash.16777216_15728640.build.fs_end=285208576 -sparkfun_promicrorp2040picoprobe.menu.freq.125=125 MHz -sparkfun_promicrorp2040picoprobe.menu.freq.125.build.f_cpu=125000000L +sparkfun_promicrorp2040picoprobe.menu.freq.133=133 MHz +sparkfun_promicrorp2040picoprobe.menu.freq.133.build.f_cpu=133000000L sparkfun_promicrorp2040picoprobe.menu.freq.50=50 MHz sparkfun_promicrorp2040picoprobe.menu.freq.50.build.f_cpu=50000000L sparkfun_promicrorp2040picoprobe.menu.freq.100=100 MHz sparkfun_promicrorp2040picoprobe.menu.freq.100.build.f_cpu=100000000L -sparkfun_promicrorp2040picoprobe.menu.freq.133=133 MHz -sparkfun_promicrorp2040picoprobe.menu.freq.133.build.f_cpu=133000000L +sparkfun_promicrorp2040picoprobe.menu.freq.125=125 MHz +sparkfun_promicrorp2040picoprobe.menu.freq.125.build.f_cpu=125000000L sparkfun_promicrorp2040picoprobe.menu.freq.150=150 MHz (Overclock) sparkfun_promicrorp2040picoprobe.menu.freq.150.build.f_cpu=150000000L sparkfun_promicrorp2040picoprobe.menu.freq.175=175 MHz (Overclock) @@ -10106,14 +10106,14 @@ sparkfun_promicrorp2040picodebug.menu.flash.16777216_15728640.build.flash_length sparkfun_promicrorp2040picodebug.menu.flash.16777216_15728640.build.eeprom_start=285208576 sparkfun_promicrorp2040picodebug.menu.flash.16777216_15728640.build.fs_start=269479936 sparkfun_promicrorp2040picodebug.menu.flash.16777216_15728640.build.fs_end=285208576 -sparkfun_promicrorp2040picodebug.menu.freq.125=125 MHz -sparkfun_promicrorp2040picodebug.menu.freq.125.build.f_cpu=125000000L +sparkfun_promicrorp2040picodebug.menu.freq.133=133 MHz +sparkfun_promicrorp2040picodebug.menu.freq.133.build.f_cpu=133000000L sparkfun_promicrorp2040picodebug.menu.freq.50=50 MHz sparkfun_promicrorp2040picodebug.menu.freq.50.build.f_cpu=50000000L sparkfun_promicrorp2040picodebug.menu.freq.100=100 MHz sparkfun_promicrorp2040picodebug.menu.freq.100.build.f_cpu=100000000L -sparkfun_promicrorp2040picodebug.menu.freq.133=133 MHz -sparkfun_promicrorp2040picodebug.menu.freq.133.build.f_cpu=133000000L +sparkfun_promicrorp2040picodebug.menu.freq.125=125 MHz +sparkfun_promicrorp2040picodebug.menu.freq.125.build.f_cpu=125000000L sparkfun_promicrorp2040picodebug.menu.freq.150=150 MHz (Overclock) sparkfun_promicrorp2040picodebug.menu.freq.150.build.f_cpu=150000000L sparkfun_promicrorp2040picodebug.menu.freq.175=175 MHz (Overclock) @@ -10231,14 +10231,14 @@ upesy_rp2040_devkit.menu.flash.2097152_1048576.build.flash_length=1044480 upesy_rp2040_devkit.menu.flash.2097152_1048576.build.eeprom_start=270528512 upesy_rp2040_devkit.menu.flash.2097152_1048576.build.fs_start=269479936 upesy_rp2040_devkit.menu.flash.2097152_1048576.build.fs_end=270528512 -upesy_rp2040_devkit.menu.freq.125=125 MHz -upesy_rp2040_devkit.menu.freq.125.build.f_cpu=125000000L +upesy_rp2040_devkit.menu.freq.133=133 MHz +upesy_rp2040_devkit.menu.freq.133.build.f_cpu=133000000L upesy_rp2040_devkit.menu.freq.50=50 MHz upesy_rp2040_devkit.menu.freq.50.build.f_cpu=50000000L upesy_rp2040_devkit.menu.freq.100=100 MHz upesy_rp2040_devkit.menu.freq.100.build.f_cpu=100000000L -upesy_rp2040_devkit.menu.freq.133=133 MHz -upesy_rp2040_devkit.menu.freq.133.build.f_cpu=133000000L +upesy_rp2040_devkit.menu.freq.125=125 MHz +upesy_rp2040_devkit.menu.freq.125.build.f_cpu=125000000L upesy_rp2040_devkit.menu.freq.150=150 MHz (Overclock) upesy_rp2040_devkit.menu.freq.150.build.f_cpu=150000000L upesy_rp2040_devkit.menu.freq.175=175 MHz (Overclock) @@ -10358,14 +10358,14 @@ upesy_rp2040_devkitpicoprobe.menu.flash.2097152_1048576.build.flash_length=10444 upesy_rp2040_devkitpicoprobe.menu.flash.2097152_1048576.build.eeprom_start=270528512 upesy_rp2040_devkitpicoprobe.menu.flash.2097152_1048576.build.fs_start=269479936 upesy_rp2040_devkitpicoprobe.menu.flash.2097152_1048576.build.fs_end=270528512 -upesy_rp2040_devkitpicoprobe.menu.freq.125=125 MHz -upesy_rp2040_devkitpicoprobe.menu.freq.125.build.f_cpu=125000000L +upesy_rp2040_devkitpicoprobe.menu.freq.133=133 MHz +upesy_rp2040_devkitpicoprobe.menu.freq.133.build.f_cpu=133000000L upesy_rp2040_devkitpicoprobe.menu.freq.50=50 MHz upesy_rp2040_devkitpicoprobe.menu.freq.50.build.f_cpu=50000000L upesy_rp2040_devkitpicoprobe.menu.freq.100=100 MHz upesy_rp2040_devkitpicoprobe.menu.freq.100.build.f_cpu=100000000L -upesy_rp2040_devkitpicoprobe.menu.freq.133=133 MHz -upesy_rp2040_devkitpicoprobe.menu.freq.133.build.f_cpu=133000000L +upesy_rp2040_devkitpicoprobe.menu.freq.125=125 MHz +upesy_rp2040_devkitpicoprobe.menu.freq.125.build.f_cpu=125000000L upesy_rp2040_devkitpicoprobe.menu.freq.150=150 MHz (Overclock) upesy_rp2040_devkitpicoprobe.menu.freq.150.build.f_cpu=150000000L upesy_rp2040_devkitpicoprobe.menu.freq.175=175 MHz (Overclock) @@ -10485,14 +10485,14 @@ upesy_rp2040_devkitpicodebug.menu.flash.2097152_1048576.build.flash_length=10444 upesy_rp2040_devkitpicodebug.menu.flash.2097152_1048576.build.eeprom_start=270528512 upesy_rp2040_devkitpicodebug.menu.flash.2097152_1048576.build.fs_start=269479936 upesy_rp2040_devkitpicodebug.menu.flash.2097152_1048576.build.fs_end=270528512 -upesy_rp2040_devkitpicodebug.menu.freq.125=125 MHz -upesy_rp2040_devkitpicodebug.menu.freq.125.build.f_cpu=125000000L +upesy_rp2040_devkitpicodebug.menu.freq.133=133 MHz +upesy_rp2040_devkitpicodebug.menu.freq.133.build.f_cpu=133000000L upesy_rp2040_devkitpicodebug.menu.freq.50=50 MHz upesy_rp2040_devkitpicodebug.menu.freq.50.build.f_cpu=50000000L upesy_rp2040_devkitpicodebug.menu.freq.100=100 MHz upesy_rp2040_devkitpicodebug.menu.freq.100.build.f_cpu=100000000L -upesy_rp2040_devkitpicodebug.menu.freq.133=133 MHz -upesy_rp2040_devkitpicodebug.menu.freq.133.build.f_cpu=133000000L +upesy_rp2040_devkitpicodebug.menu.freq.125=125 MHz +upesy_rp2040_devkitpicodebug.menu.freq.125.build.f_cpu=125000000L upesy_rp2040_devkitpicodebug.menu.freq.150=150 MHz (Overclock) upesy_rp2040_devkitpicodebug.menu.freq.150.build.f_cpu=150000000L upesy_rp2040_devkitpicodebug.menu.freq.175=175 MHz (Overclock) @@ -10610,14 +10610,14 @@ wiznet_5100s_evb_pico.menu.flash.2097152_1048576.build.flash_length=1044480 wiznet_5100s_evb_pico.menu.flash.2097152_1048576.build.eeprom_start=270528512 wiznet_5100s_evb_pico.menu.flash.2097152_1048576.build.fs_start=269479936 wiznet_5100s_evb_pico.menu.flash.2097152_1048576.build.fs_end=270528512 -wiznet_5100s_evb_pico.menu.freq.125=125 MHz -wiznet_5100s_evb_pico.menu.freq.125.build.f_cpu=125000000L +wiznet_5100s_evb_pico.menu.freq.133=133 MHz +wiznet_5100s_evb_pico.menu.freq.133.build.f_cpu=133000000L wiznet_5100s_evb_pico.menu.freq.50=50 MHz wiznet_5100s_evb_pico.menu.freq.50.build.f_cpu=50000000L wiznet_5100s_evb_pico.menu.freq.100=100 MHz wiznet_5100s_evb_pico.menu.freq.100.build.f_cpu=100000000L -wiznet_5100s_evb_pico.menu.freq.133=133 MHz -wiznet_5100s_evb_pico.menu.freq.133.build.f_cpu=133000000L +wiznet_5100s_evb_pico.menu.freq.125=125 MHz +wiznet_5100s_evb_pico.menu.freq.125.build.f_cpu=125000000L wiznet_5100s_evb_pico.menu.freq.150=150 MHz (Overclock) wiznet_5100s_evb_pico.menu.freq.150.build.f_cpu=150000000L wiznet_5100s_evb_pico.menu.freq.175=175 MHz (Overclock) @@ -10737,14 +10737,14 @@ wiznet_5100s_evb_picopicoprobe.menu.flash.2097152_1048576.build.flash_length=104 wiznet_5100s_evb_picopicoprobe.menu.flash.2097152_1048576.build.eeprom_start=270528512 wiznet_5100s_evb_picopicoprobe.menu.flash.2097152_1048576.build.fs_start=269479936 wiznet_5100s_evb_picopicoprobe.menu.flash.2097152_1048576.build.fs_end=270528512 -wiznet_5100s_evb_picopicoprobe.menu.freq.125=125 MHz -wiznet_5100s_evb_picopicoprobe.menu.freq.125.build.f_cpu=125000000L +wiznet_5100s_evb_picopicoprobe.menu.freq.133=133 MHz +wiznet_5100s_evb_picopicoprobe.menu.freq.133.build.f_cpu=133000000L wiznet_5100s_evb_picopicoprobe.menu.freq.50=50 MHz wiznet_5100s_evb_picopicoprobe.menu.freq.50.build.f_cpu=50000000L wiznet_5100s_evb_picopicoprobe.menu.freq.100=100 MHz wiznet_5100s_evb_picopicoprobe.menu.freq.100.build.f_cpu=100000000L -wiznet_5100s_evb_picopicoprobe.menu.freq.133=133 MHz -wiznet_5100s_evb_picopicoprobe.menu.freq.133.build.f_cpu=133000000L +wiznet_5100s_evb_picopicoprobe.menu.freq.125=125 MHz +wiznet_5100s_evb_picopicoprobe.menu.freq.125.build.f_cpu=125000000L wiznet_5100s_evb_picopicoprobe.menu.freq.150=150 MHz (Overclock) wiznet_5100s_evb_picopicoprobe.menu.freq.150.build.f_cpu=150000000L wiznet_5100s_evb_picopicoprobe.menu.freq.175=175 MHz (Overclock) @@ -10864,14 +10864,14 @@ wiznet_5100s_evb_picopicodebug.menu.flash.2097152_1048576.build.flash_length=104 wiznet_5100s_evb_picopicodebug.menu.flash.2097152_1048576.build.eeprom_start=270528512 wiznet_5100s_evb_picopicodebug.menu.flash.2097152_1048576.build.fs_start=269479936 wiznet_5100s_evb_picopicodebug.menu.flash.2097152_1048576.build.fs_end=270528512 -wiznet_5100s_evb_picopicodebug.menu.freq.125=125 MHz -wiznet_5100s_evb_picopicodebug.menu.freq.125.build.f_cpu=125000000L +wiznet_5100s_evb_picopicodebug.menu.freq.133=133 MHz +wiznet_5100s_evb_picopicodebug.menu.freq.133.build.f_cpu=133000000L wiznet_5100s_evb_picopicodebug.menu.freq.50=50 MHz wiznet_5100s_evb_picopicodebug.menu.freq.50.build.f_cpu=50000000L wiznet_5100s_evb_picopicodebug.menu.freq.100=100 MHz wiznet_5100s_evb_picopicodebug.menu.freq.100.build.f_cpu=100000000L -wiznet_5100s_evb_picopicodebug.menu.freq.133=133 MHz -wiznet_5100s_evb_picopicodebug.menu.freq.133.build.f_cpu=133000000L +wiznet_5100s_evb_picopicodebug.menu.freq.125=125 MHz +wiznet_5100s_evb_picopicodebug.menu.freq.125.build.f_cpu=125000000L wiznet_5100s_evb_picopicodebug.menu.freq.150=150 MHz (Overclock) wiznet_5100s_evb_picopicodebug.menu.freq.150.build.f_cpu=150000000L wiznet_5100s_evb_picopicodebug.menu.freq.175=175 MHz (Overclock) @@ -11001,14 +11001,14 @@ generic.menu.flash.16777216_8388608.build.flash_length=8384512 generic.menu.flash.16777216_8388608.build.eeprom_start=285208576 generic.menu.flash.16777216_8388608.build.fs_start=276819968 generic.menu.flash.16777216_8388608.build.fs_end=285208576 -generic.menu.freq.125=125 MHz -generic.menu.freq.125.build.f_cpu=125000000L +generic.menu.freq.133=133 MHz +generic.menu.freq.133.build.f_cpu=133000000L generic.menu.freq.50=50 MHz generic.menu.freq.50.build.f_cpu=50000000L generic.menu.freq.100=100 MHz generic.menu.freq.100.build.f_cpu=100000000L -generic.menu.freq.133=133 MHz -generic.menu.freq.133.build.f_cpu=133000000L +generic.menu.freq.125=125 MHz +generic.menu.freq.125.build.f_cpu=125000000L generic.menu.freq.150=150 MHz (Overclock) generic.menu.freq.150.build.f_cpu=150000000L generic.menu.freq.175=175 MHz (Overclock) @@ -11156,14 +11156,14 @@ genericpicoprobe.menu.flash.16777216_8388608.build.flash_length=8384512 genericpicoprobe.menu.flash.16777216_8388608.build.eeprom_start=285208576 genericpicoprobe.menu.flash.16777216_8388608.build.fs_start=276819968 genericpicoprobe.menu.flash.16777216_8388608.build.fs_end=285208576 -genericpicoprobe.menu.freq.125=125 MHz -genericpicoprobe.menu.freq.125.build.f_cpu=125000000L +genericpicoprobe.menu.freq.133=133 MHz +genericpicoprobe.menu.freq.133.build.f_cpu=133000000L genericpicoprobe.menu.freq.50=50 MHz genericpicoprobe.menu.freq.50.build.f_cpu=50000000L genericpicoprobe.menu.freq.100=100 MHz genericpicoprobe.menu.freq.100.build.f_cpu=100000000L -genericpicoprobe.menu.freq.133=133 MHz -genericpicoprobe.menu.freq.133.build.f_cpu=133000000L +genericpicoprobe.menu.freq.125=125 MHz +genericpicoprobe.menu.freq.125.build.f_cpu=125000000L genericpicoprobe.menu.freq.150=150 MHz (Overclock) genericpicoprobe.menu.freq.150.build.f_cpu=150000000L genericpicoprobe.menu.freq.175=175 MHz (Overclock) @@ -11311,14 +11311,14 @@ genericpicodebug.menu.flash.16777216_8388608.build.flash_length=8384512 genericpicodebug.menu.flash.16777216_8388608.build.eeprom_start=285208576 genericpicodebug.menu.flash.16777216_8388608.build.fs_start=276819968 genericpicodebug.menu.flash.16777216_8388608.build.fs_end=285208576 -genericpicodebug.menu.freq.125=125 MHz -genericpicodebug.menu.freq.125.build.f_cpu=125000000L +genericpicodebug.menu.freq.133=133 MHz +genericpicodebug.menu.freq.133.build.f_cpu=133000000L genericpicodebug.menu.freq.50=50 MHz genericpicodebug.menu.freq.50.build.f_cpu=50000000L genericpicodebug.menu.freq.100=100 MHz genericpicodebug.menu.freq.100.build.f_cpu=100000000L -genericpicodebug.menu.freq.133=133 MHz -genericpicodebug.menu.freq.133.build.f_cpu=133000000L +genericpicodebug.menu.freq.125=125 MHz +genericpicodebug.menu.freq.125.build.f_cpu=125000000L genericpicodebug.menu.freq.150=150 MHz (Overclock) genericpicodebug.menu.freq.150.build.f_cpu=150000000L genericpicodebug.menu.freq.175=175 MHz (Overclock) diff --git a/tools/makeboards.py b/tools/makeboards.py index a887e325..e49da304 100755 --- a/tools/makeboards.py +++ b/tools/makeboards.py @@ -32,7 +32,7 @@ def BuildDebugLevel(name): print("%s.menu.dbglvl.%s.build.debug_level=%s" % (name, l[0], l[1])) def BuildFreq(name): - for f in [ 125, 50, 100, 133, 150, 175, 200, 225, 250, 275, 300]: + for f in [ 133, 50, 100, 125, 150, 175, 200, 225, 250, 275, 300]: warn = "" if f > 133: warn = " (Overclock)" print("%s.menu.freq.%s=%s MHz%s" % (name, f, f, warn)) -- 2.54.0 From bd8ad2be1efc347930195d0114fd407814e7485c Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Sun, 24 Apr 2022 20:33:11 -0700 Subject: [PATCH 20/22] Add add'l docs --- docs/freertos.rst | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/freertos.rst b/docs/freertos.rst index 69d798dc..57e17fae 100644 --- a/docs/freertos.rst +++ b/docs/freertos.rst @@ -11,11 +11,16 @@ and real preemptive multithreading in your sketches. To enable FreeRTOS, simply to your sketch and it will be included and enabled automatically. FreeRTOS is configured with 8 priority levels (0 through 7) and a process for -``setup()/loop()``, ``setup1()/loop1()``, and the USB port will be created. You can -launch additional processes using the standard FreeRTOS routines. +``setup()/loop()``, ``setup1()/loop1()``, and the USB port will be created. The task +quantum is 1 millisecond (i.e. 1,000 switches per second). ``setup()`` and ``loop()`` are assigned to only run on core 0, while ``setup1()`` and ``loop1()`` only run in core 1 in this mode, the same as the default multithreading mode. +You can launch and manage additional processes using the standard FreeRTOS routines. + + +``delay()`` and ``yield()`` free the CPU for other tasks, while ``delayMicroseconds()`` does not. + For full FreeRTOS documentation look at `FreeRTOS.org `__ and `FreeRTOS SMP support `__. -- 2.54.0 From 18969ac0dd7e771d792e119f046026e763ee8c73 Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Sun, 24 Apr 2022 20:35:03 -0700 Subject: [PATCH 21/22] Back out CPU speed change. Should be separate PR --- boards.txt | 576 ++++++++++++++++++++++---------------------- tools/makeboards.py | 2 +- 2 files changed, 289 insertions(+), 289 deletions(-) diff --git a/boards.txt b/boards.txt index 2bda4179..f6c0dd14 100644 --- a/boards.txt +++ b/boards.txt @@ -76,14 +76,14 @@ rpipico.menu.flash.2097152_1048576.build.flash_length=1044480 rpipico.menu.flash.2097152_1048576.build.eeprom_start=270528512 rpipico.menu.flash.2097152_1048576.build.fs_start=269479936 rpipico.menu.flash.2097152_1048576.build.fs_end=270528512 -rpipico.menu.freq.133=133 MHz -rpipico.menu.freq.133.build.f_cpu=133000000L +rpipico.menu.freq.125=125 MHz +rpipico.menu.freq.125.build.f_cpu=125000000L rpipico.menu.freq.50=50 MHz rpipico.menu.freq.50.build.f_cpu=50000000L rpipico.menu.freq.100=100 MHz rpipico.menu.freq.100.build.f_cpu=100000000L -rpipico.menu.freq.125=125 MHz -rpipico.menu.freq.125.build.f_cpu=125000000L +rpipico.menu.freq.133=133 MHz +rpipico.menu.freq.133.build.f_cpu=133000000L rpipico.menu.freq.150=150 MHz (Overclock) rpipico.menu.freq.150.build.f_cpu=150000000L rpipico.menu.freq.175=175 MHz (Overclock) @@ -203,14 +203,14 @@ rpipicopicoprobe.menu.flash.2097152_1048576.build.flash_length=1044480 rpipicopicoprobe.menu.flash.2097152_1048576.build.eeprom_start=270528512 rpipicopicoprobe.menu.flash.2097152_1048576.build.fs_start=269479936 rpipicopicoprobe.menu.flash.2097152_1048576.build.fs_end=270528512 -rpipicopicoprobe.menu.freq.133=133 MHz -rpipicopicoprobe.menu.freq.133.build.f_cpu=133000000L +rpipicopicoprobe.menu.freq.125=125 MHz +rpipicopicoprobe.menu.freq.125.build.f_cpu=125000000L rpipicopicoprobe.menu.freq.50=50 MHz rpipicopicoprobe.menu.freq.50.build.f_cpu=50000000L rpipicopicoprobe.menu.freq.100=100 MHz rpipicopicoprobe.menu.freq.100.build.f_cpu=100000000L -rpipicopicoprobe.menu.freq.125=125 MHz -rpipicopicoprobe.menu.freq.125.build.f_cpu=125000000L +rpipicopicoprobe.menu.freq.133=133 MHz +rpipicopicoprobe.menu.freq.133.build.f_cpu=133000000L rpipicopicoprobe.menu.freq.150=150 MHz (Overclock) rpipicopicoprobe.menu.freq.150.build.f_cpu=150000000L rpipicopicoprobe.menu.freq.175=175 MHz (Overclock) @@ -330,14 +330,14 @@ rpipicopicodebug.menu.flash.2097152_1048576.build.flash_length=1044480 rpipicopicodebug.menu.flash.2097152_1048576.build.eeprom_start=270528512 rpipicopicodebug.menu.flash.2097152_1048576.build.fs_start=269479936 rpipicopicodebug.menu.flash.2097152_1048576.build.fs_end=270528512 -rpipicopicodebug.menu.freq.133=133 MHz -rpipicopicodebug.menu.freq.133.build.f_cpu=133000000L +rpipicopicodebug.menu.freq.125=125 MHz +rpipicopicodebug.menu.freq.125.build.f_cpu=125000000L rpipicopicodebug.menu.freq.50=50 MHz rpipicopicodebug.menu.freq.50.build.f_cpu=50000000L rpipicopicodebug.menu.freq.100=100 MHz rpipicopicodebug.menu.freq.100.build.f_cpu=100000000L -rpipicopicodebug.menu.freq.125=125 MHz -rpipicopicodebug.menu.freq.125.build.f_cpu=125000000L +rpipicopicodebug.menu.freq.133=133 MHz +rpipicopicodebug.menu.freq.133.build.f_cpu=133000000L rpipicopicodebug.menu.freq.150=150 MHz (Overclock) rpipicopicodebug.menu.freq.150.build.f_cpu=150000000L rpipicopicodebug.menu.freq.175=175 MHz (Overclock) @@ -491,14 +491,14 @@ adafruit_feather.menu.flash.8388608_7340032.build.flash_length=1044480 adafruit_feather.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_feather.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_feather.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_feather.menu.freq.133=133 MHz -adafruit_feather.menu.freq.133.build.f_cpu=133000000L +adafruit_feather.menu.freq.125=125 MHz +adafruit_feather.menu.freq.125.build.f_cpu=125000000L adafruit_feather.menu.freq.50=50 MHz adafruit_feather.menu.freq.50.build.f_cpu=50000000L adafruit_feather.menu.freq.100=100 MHz adafruit_feather.menu.freq.100.build.f_cpu=100000000L -adafruit_feather.menu.freq.125=125 MHz -adafruit_feather.menu.freq.125.build.f_cpu=125000000L +adafruit_feather.menu.freq.133=133 MHz +adafruit_feather.menu.freq.133.build.f_cpu=133000000L adafruit_feather.menu.freq.150=150 MHz (Overclock) adafruit_feather.menu.freq.150.build.f_cpu=150000000L adafruit_feather.menu.freq.175=175 MHz (Overclock) @@ -654,14 +654,14 @@ adafruit_featherpicoprobe.menu.flash.8388608_7340032.build.flash_length=1044480 adafruit_featherpicoprobe.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_featherpicoprobe.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_featherpicoprobe.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_featherpicoprobe.menu.freq.133=133 MHz -adafruit_featherpicoprobe.menu.freq.133.build.f_cpu=133000000L +adafruit_featherpicoprobe.menu.freq.125=125 MHz +adafruit_featherpicoprobe.menu.freq.125.build.f_cpu=125000000L adafruit_featherpicoprobe.menu.freq.50=50 MHz adafruit_featherpicoprobe.menu.freq.50.build.f_cpu=50000000L adafruit_featherpicoprobe.menu.freq.100=100 MHz adafruit_featherpicoprobe.menu.freq.100.build.f_cpu=100000000L -adafruit_featherpicoprobe.menu.freq.125=125 MHz -adafruit_featherpicoprobe.menu.freq.125.build.f_cpu=125000000L +adafruit_featherpicoprobe.menu.freq.133=133 MHz +adafruit_featherpicoprobe.menu.freq.133.build.f_cpu=133000000L adafruit_featherpicoprobe.menu.freq.150=150 MHz (Overclock) adafruit_featherpicoprobe.menu.freq.150.build.f_cpu=150000000L adafruit_featherpicoprobe.menu.freq.175=175 MHz (Overclock) @@ -817,14 +817,14 @@ adafruit_featherpicodebug.menu.flash.8388608_7340032.build.flash_length=1044480 adafruit_featherpicodebug.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_featherpicodebug.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_featherpicodebug.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_featherpicodebug.menu.freq.133=133 MHz -adafruit_featherpicodebug.menu.freq.133.build.f_cpu=133000000L +adafruit_featherpicodebug.menu.freq.125=125 MHz +adafruit_featherpicodebug.menu.freq.125.build.f_cpu=125000000L adafruit_featherpicodebug.menu.freq.50=50 MHz adafruit_featherpicodebug.menu.freq.50.build.f_cpu=50000000L adafruit_featherpicodebug.menu.freq.100=100 MHz adafruit_featherpicodebug.menu.freq.100.build.f_cpu=100000000L -adafruit_featherpicodebug.menu.freq.125=125 MHz -adafruit_featherpicodebug.menu.freq.125.build.f_cpu=125000000L +adafruit_featherpicodebug.menu.freq.133=133 MHz +adafruit_featherpicodebug.menu.freq.133.build.f_cpu=133000000L adafruit_featherpicodebug.menu.freq.150=150 MHz (Overclock) adafruit_featherpicodebug.menu.freq.150.build.f_cpu=150000000L adafruit_featherpicodebug.menu.freq.175=175 MHz (Overclock) @@ -978,14 +978,14 @@ adafruit_itsybitsy.menu.flash.8388608_7340032.build.flash_length=1044480 adafruit_itsybitsy.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_itsybitsy.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_itsybitsy.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_itsybitsy.menu.freq.133=133 MHz -adafruit_itsybitsy.menu.freq.133.build.f_cpu=133000000L +adafruit_itsybitsy.menu.freq.125=125 MHz +adafruit_itsybitsy.menu.freq.125.build.f_cpu=125000000L adafruit_itsybitsy.menu.freq.50=50 MHz adafruit_itsybitsy.menu.freq.50.build.f_cpu=50000000L adafruit_itsybitsy.menu.freq.100=100 MHz adafruit_itsybitsy.menu.freq.100.build.f_cpu=100000000L -adafruit_itsybitsy.menu.freq.125=125 MHz -adafruit_itsybitsy.menu.freq.125.build.f_cpu=125000000L +adafruit_itsybitsy.menu.freq.133=133 MHz +adafruit_itsybitsy.menu.freq.133.build.f_cpu=133000000L adafruit_itsybitsy.menu.freq.150=150 MHz (Overclock) adafruit_itsybitsy.menu.freq.150.build.f_cpu=150000000L adafruit_itsybitsy.menu.freq.175=175 MHz (Overclock) @@ -1141,14 +1141,14 @@ adafruit_itsybitsypicoprobe.menu.flash.8388608_7340032.build.flash_length=104448 adafruit_itsybitsypicoprobe.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_itsybitsypicoprobe.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_itsybitsypicoprobe.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_itsybitsypicoprobe.menu.freq.133=133 MHz -adafruit_itsybitsypicoprobe.menu.freq.133.build.f_cpu=133000000L +adafruit_itsybitsypicoprobe.menu.freq.125=125 MHz +adafruit_itsybitsypicoprobe.menu.freq.125.build.f_cpu=125000000L adafruit_itsybitsypicoprobe.menu.freq.50=50 MHz adafruit_itsybitsypicoprobe.menu.freq.50.build.f_cpu=50000000L adafruit_itsybitsypicoprobe.menu.freq.100=100 MHz adafruit_itsybitsypicoprobe.menu.freq.100.build.f_cpu=100000000L -adafruit_itsybitsypicoprobe.menu.freq.125=125 MHz -adafruit_itsybitsypicoprobe.menu.freq.125.build.f_cpu=125000000L +adafruit_itsybitsypicoprobe.menu.freq.133=133 MHz +adafruit_itsybitsypicoprobe.menu.freq.133.build.f_cpu=133000000L adafruit_itsybitsypicoprobe.menu.freq.150=150 MHz (Overclock) adafruit_itsybitsypicoprobe.menu.freq.150.build.f_cpu=150000000L adafruit_itsybitsypicoprobe.menu.freq.175=175 MHz (Overclock) @@ -1304,14 +1304,14 @@ adafruit_itsybitsypicodebug.menu.flash.8388608_7340032.build.flash_length=104448 adafruit_itsybitsypicodebug.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_itsybitsypicodebug.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_itsybitsypicodebug.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_itsybitsypicodebug.menu.freq.133=133 MHz -adafruit_itsybitsypicodebug.menu.freq.133.build.f_cpu=133000000L +adafruit_itsybitsypicodebug.menu.freq.125=125 MHz +adafruit_itsybitsypicodebug.menu.freq.125.build.f_cpu=125000000L adafruit_itsybitsypicodebug.menu.freq.50=50 MHz adafruit_itsybitsypicodebug.menu.freq.50.build.f_cpu=50000000L adafruit_itsybitsypicodebug.menu.freq.100=100 MHz adafruit_itsybitsypicodebug.menu.freq.100.build.f_cpu=100000000L -adafruit_itsybitsypicodebug.menu.freq.125=125 MHz -adafruit_itsybitsypicodebug.menu.freq.125.build.f_cpu=125000000L +adafruit_itsybitsypicodebug.menu.freq.133=133 MHz +adafruit_itsybitsypicodebug.menu.freq.133.build.f_cpu=133000000L adafruit_itsybitsypicodebug.menu.freq.150=150 MHz (Overclock) adafruit_itsybitsypicodebug.menu.freq.150.build.f_cpu=150000000L adafruit_itsybitsypicodebug.menu.freq.175=175 MHz (Overclock) @@ -1465,14 +1465,14 @@ adafruit_qtpy.menu.flash.8388608_7340032.build.flash_length=1044480 adafruit_qtpy.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_qtpy.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_qtpy.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_qtpy.menu.freq.133=133 MHz -adafruit_qtpy.menu.freq.133.build.f_cpu=133000000L +adafruit_qtpy.menu.freq.125=125 MHz +adafruit_qtpy.menu.freq.125.build.f_cpu=125000000L adafruit_qtpy.menu.freq.50=50 MHz adafruit_qtpy.menu.freq.50.build.f_cpu=50000000L adafruit_qtpy.menu.freq.100=100 MHz adafruit_qtpy.menu.freq.100.build.f_cpu=100000000L -adafruit_qtpy.menu.freq.125=125 MHz -adafruit_qtpy.menu.freq.125.build.f_cpu=125000000L +adafruit_qtpy.menu.freq.133=133 MHz +adafruit_qtpy.menu.freq.133.build.f_cpu=133000000L adafruit_qtpy.menu.freq.150=150 MHz (Overclock) adafruit_qtpy.menu.freq.150.build.f_cpu=150000000L adafruit_qtpy.menu.freq.175=175 MHz (Overclock) @@ -1628,14 +1628,14 @@ adafruit_qtpypicoprobe.menu.flash.8388608_7340032.build.flash_length=1044480 adafruit_qtpypicoprobe.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_qtpypicoprobe.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_qtpypicoprobe.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_qtpypicoprobe.menu.freq.133=133 MHz -adafruit_qtpypicoprobe.menu.freq.133.build.f_cpu=133000000L +adafruit_qtpypicoprobe.menu.freq.125=125 MHz +adafruit_qtpypicoprobe.menu.freq.125.build.f_cpu=125000000L adafruit_qtpypicoprobe.menu.freq.50=50 MHz adafruit_qtpypicoprobe.menu.freq.50.build.f_cpu=50000000L adafruit_qtpypicoprobe.menu.freq.100=100 MHz adafruit_qtpypicoprobe.menu.freq.100.build.f_cpu=100000000L -adafruit_qtpypicoprobe.menu.freq.125=125 MHz -adafruit_qtpypicoprobe.menu.freq.125.build.f_cpu=125000000L +adafruit_qtpypicoprobe.menu.freq.133=133 MHz +adafruit_qtpypicoprobe.menu.freq.133.build.f_cpu=133000000L adafruit_qtpypicoprobe.menu.freq.150=150 MHz (Overclock) adafruit_qtpypicoprobe.menu.freq.150.build.f_cpu=150000000L adafruit_qtpypicoprobe.menu.freq.175=175 MHz (Overclock) @@ -1791,14 +1791,14 @@ adafruit_qtpypicodebug.menu.flash.8388608_7340032.build.flash_length=1044480 adafruit_qtpypicodebug.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_qtpypicodebug.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_qtpypicodebug.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_qtpypicodebug.menu.freq.133=133 MHz -adafruit_qtpypicodebug.menu.freq.133.build.f_cpu=133000000L +adafruit_qtpypicodebug.menu.freq.125=125 MHz +adafruit_qtpypicodebug.menu.freq.125.build.f_cpu=125000000L adafruit_qtpypicodebug.menu.freq.50=50 MHz adafruit_qtpypicodebug.menu.freq.50.build.f_cpu=50000000L adafruit_qtpypicodebug.menu.freq.100=100 MHz adafruit_qtpypicodebug.menu.freq.100.build.f_cpu=100000000L -adafruit_qtpypicodebug.menu.freq.125=125 MHz -adafruit_qtpypicodebug.menu.freq.125.build.f_cpu=125000000L +adafruit_qtpypicodebug.menu.freq.133=133 MHz +adafruit_qtpypicodebug.menu.freq.133.build.f_cpu=133000000L adafruit_qtpypicodebug.menu.freq.150=150 MHz (Overclock) adafruit_qtpypicodebug.menu.freq.150.build.f_cpu=150000000L adafruit_qtpypicodebug.menu.freq.175=175 MHz (Overclock) @@ -1952,14 +1952,14 @@ adafruit_stemmafriend.menu.flash.8388608_7340032.build.flash_length=1044480 adafruit_stemmafriend.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_stemmafriend.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_stemmafriend.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_stemmafriend.menu.freq.133=133 MHz -adafruit_stemmafriend.menu.freq.133.build.f_cpu=133000000L +adafruit_stemmafriend.menu.freq.125=125 MHz +adafruit_stemmafriend.menu.freq.125.build.f_cpu=125000000L adafruit_stemmafriend.menu.freq.50=50 MHz adafruit_stemmafriend.menu.freq.50.build.f_cpu=50000000L adafruit_stemmafriend.menu.freq.100=100 MHz adafruit_stemmafriend.menu.freq.100.build.f_cpu=100000000L -adafruit_stemmafriend.menu.freq.125=125 MHz -adafruit_stemmafriend.menu.freq.125.build.f_cpu=125000000L +adafruit_stemmafriend.menu.freq.133=133 MHz +adafruit_stemmafriend.menu.freq.133.build.f_cpu=133000000L adafruit_stemmafriend.menu.freq.150=150 MHz (Overclock) adafruit_stemmafriend.menu.freq.150.build.f_cpu=150000000L adafruit_stemmafriend.menu.freq.175=175 MHz (Overclock) @@ -2115,14 +2115,14 @@ adafruit_stemmafriendpicoprobe.menu.flash.8388608_7340032.build.flash_length=104 adafruit_stemmafriendpicoprobe.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_stemmafriendpicoprobe.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_stemmafriendpicoprobe.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_stemmafriendpicoprobe.menu.freq.133=133 MHz -adafruit_stemmafriendpicoprobe.menu.freq.133.build.f_cpu=133000000L +adafruit_stemmafriendpicoprobe.menu.freq.125=125 MHz +adafruit_stemmafriendpicoprobe.menu.freq.125.build.f_cpu=125000000L adafruit_stemmafriendpicoprobe.menu.freq.50=50 MHz adafruit_stemmafriendpicoprobe.menu.freq.50.build.f_cpu=50000000L adafruit_stemmafriendpicoprobe.menu.freq.100=100 MHz adafruit_stemmafriendpicoprobe.menu.freq.100.build.f_cpu=100000000L -adafruit_stemmafriendpicoprobe.menu.freq.125=125 MHz -adafruit_stemmafriendpicoprobe.menu.freq.125.build.f_cpu=125000000L +adafruit_stemmafriendpicoprobe.menu.freq.133=133 MHz +adafruit_stemmafriendpicoprobe.menu.freq.133.build.f_cpu=133000000L adafruit_stemmafriendpicoprobe.menu.freq.150=150 MHz (Overclock) adafruit_stemmafriendpicoprobe.menu.freq.150.build.f_cpu=150000000L adafruit_stemmafriendpicoprobe.menu.freq.175=175 MHz (Overclock) @@ -2278,14 +2278,14 @@ adafruit_stemmafriendpicodebug.menu.flash.8388608_7340032.build.flash_length=104 adafruit_stemmafriendpicodebug.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_stemmafriendpicodebug.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_stemmafriendpicodebug.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_stemmafriendpicodebug.menu.freq.133=133 MHz -adafruit_stemmafriendpicodebug.menu.freq.133.build.f_cpu=133000000L +adafruit_stemmafriendpicodebug.menu.freq.125=125 MHz +adafruit_stemmafriendpicodebug.menu.freq.125.build.f_cpu=125000000L adafruit_stemmafriendpicodebug.menu.freq.50=50 MHz adafruit_stemmafriendpicodebug.menu.freq.50.build.f_cpu=50000000L adafruit_stemmafriendpicodebug.menu.freq.100=100 MHz adafruit_stemmafriendpicodebug.menu.freq.100.build.f_cpu=100000000L -adafruit_stemmafriendpicodebug.menu.freq.125=125 MHz -adafruit_stemmafriendpicodebug.menu.freq.125.build.f_cpu=125000000L +adafruit_stemmafriendpicodebug.menu.freq.133=133 MHz +adafruit_stemmafriendpicodebug.menu.freq.133.build.f_cpu=133000000L adafruit_stemmafriendpicodebug.menu.freq.150=150 MHz (Overclock) adafruit_stemmafriendpicodebug.menu.freq.150.build.f_cpu=150000000L adafruit_stemmafriendpicodebug.menu.freq.175=175 MHz (Overclock) @@ -2439,14 +2439,14 @@ adafruit_trinkeyrp2040qt.menu.flash.8388608_7340032.build.flash_length=1044480 adafruit_trinkeyrp2040qt.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_trinkeyrp2040qt.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_trinkeyrp2040qt.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_trinkeyrp2040qt.menu.freq.133=133 MHz -adafruit_trinkeyrp2040qt.menu.freq.133.build.f_cpu=133000000L +adafruit_trinkeyrp2040qt.menu.freq.125=125 MHz +adafruit_trinkeyrp2040qt.menu.freq.125.build.f_cpu=125000000L adafruit_trinkeyrp2040qt.menu.freq.50=50 MHz adafruit_trinkeyrp2040qt.menu.freq.50.build.f_cpu=50000000L adafruit_trinkeyrp2040qt.menu.freq.100=100 MHz adafruit_trinkeyrp2040qt.menu.freq.100.build.f_cpu=100000000L -adafruit_trinkeyrp2040qt.menu.freq.125=125 MHz -adafruit_trinkeyrp2040qt.menu.freq.125.build.f_cpu=125000000L +adafruit_trinkeyrp2040qt.menu.freq.133=133 MHz +adafruit_trinkeyrp2040qt.menu.freq.133.build.f_cpu=133000000L adafruit_trinkeyrp2040qt.menu.freq.150=150 MHz (Overclock) adafruit_trinkeyrp2040qt.menu.freq.150.build.f_cpu=150000000L adafruit_trinkeyrp2040qt.menu.freq.175=175 MHz (Overclock) @@ -2602,14 +2602,14 @@ adafruit_trinkeyrp2040qtpicoprobe.menu.flash.8388608_7340032.build.flash_length= adafruit_trinkeyrp2040qtpicoprobe.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_trinkeyrp2040qtpicoprobe.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_trinkeyrp2040qtpicoprobe.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_trinkeyrp2040qtpicoprobe.menu.freq.133=133 MHz -adafruit_trinkeyrp2040qtpicoprobe.menu.freq.133.build.f_cpu=133000000L +adafruit_trinkeyrp2040qtpicoprobe.menu.freq.125=125 MHz +adafruit_trinkeyrp2040qtpicoprobe.menu.freq.125.build.f_cpu=125000000L adafruit_trinkeyrp2040qtpicoprobe.menu.freq.50=50 MHz adafruit_trinkeyrp2040qtpicoprobe.menu.freq.50.build.f_cpu=50000000L adafruit_trinkeyrp2040qtpicoprobe.menu.freq.100=100 MHz adafruit_trinkeyrp2040qtpicoprobe.menu.freq.100.build.f_cpu=100000000L -adafruit_trinkeyrp2040qtpicoprobe.menu.freq.125=125 MHz -adafruit_trinkeyrp2040qtpicoprobe.menu.freq.125.build.f_cpu=125000000L +adafruit_trinkeyrp2040qtpicoprobe.menu.freq.133=133 MHz +adafruit_trinkeyrp2040qtpicoprobe.menu.freq.133.build.f_cpu=133000000L adafruit_trinkeyrp2040qtpicoprobe.menu.freq.150=150 MHz (Overclock) adafruit_trinkeyrp2040qtpicoprobe.menu.freq.150.build.f_cpu=150000000L adafruit_trinkeyrp2040qtpicoprobe.menu.freq.175=175 MHz (Overclock) @@ -2765,14 +2765,14 @@ adafruit_trinkeyrp2040qtpicodebug.menu.flash.8388608_7340032.build.flash_length= adafruit_trinkeyrp2040qtpicodebug.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_trinkeyrp2040qtpicodebug.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_trinkeyrp2040qtpicodebug.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_trinkeyrp2040qtpicodebug.menu.freq.133=133 MHz -adafruit_trinkeyrp2040qtpicodebug.menu.freq.133.build.f_cpu=133000000L +adafruit_trinkeyrp2040qtpicodebug.menu.freq.125=125 MHz +adafruit_trinkeyrp2040qtpicodebug.menu.freq.125.build.f_cpu=125000000L adafruit_trinkeyrp2040qtpicodebug.menu.freq.50=50 MHz adafruit_trinkeyrp2040qtpicodebug.menu.freq.50.build.f_cpu=50000000L adafruit_trinkeyrp2040qtpicodebug.menu.freq.100=100 MHz adafruit_trinkeyrp2040qtpicodebug.menu.freq.100.build.f_cpu=100000000L -adafruit_trinkeyrp2040qtpicodebug.menu.freq.125=125 MHz -adafruit_trinkeyrp2040qtpicodebug.menu.freq.125.build.f_cpu=125000000L +adafruit_trinkeyrp2040qtpicodebug.menu.freq.133=133 MHz +adafruit_trinkeyrp2040qtpicodebug.menu.freq.133.build.f_cpu=133000000L adafruit_trinkeyrp2040qtpicodebug.menu.freq.150=150 MHz (Overclock) adafruit_trinkeyrp2040qtpicodebug.menu.freq.150.build.f_cpu=150000000L adafruit_trinkeyrp2040qtpicodebug.menu.freq.175=175 MHz (Overclock) @@ -2926,14 +2926,14 @@ adafruit_macropad2040.menu.flash.8388608_7340032.build.flash_length=1044480 adafruit_macropad2040.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_macropad2040.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_macropad2040.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_macropad2040.menu.freq.133=133 MHz -adafruit_macropad2040.menu.freq.133.build.f_cpu=133000000L +adafruit_macropad2040.menu.freq.125=125 MHz +adafruit_macropad2040.menu.freq.125.build.f_cpu=125000000L adafruit_macropad2040.menu.freq.50=50 MHz adafruit_macropad2040.menu.freq.50.build.f_cpu=50000000L adafruit_macropad2040.menu.freq.100=100 MHz adafruit_macropad2040.menu.freq.100.build.f_cpu=100000000L -adafruit_macropad2040.menu.freq.125=125 MHz -adafruit_macropad2040.menu.freq.125.build.f_cpu=125000000L +adafruit_macropad2040.menu.freq.133=133 MHz +adafruit_macropad2040.menu.freq.133.build.f_cpu=133000000L adafruit_macropad2040.menu.freq.150=150 MHz (Overclock) adafruit_macropad2040.menu.freq.150.build.f_cpu=150000000L adafruit_macropad2040.menu.freq.175=175 MHz (Overclock) @@ -3089,14 +3089,14 @@ adafruit_macropad2040picoprobe.menu.flash.8388608_7340032.build.flash_length=104 adafruit_macropad2040picoprobe.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_macropad2040picoprobe.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_macropad2040picoprobe.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_macropad2040picoprobe.menu.freq.133=133 MHz -adafruit_macropad2040picoprobe.menu.freq.133.build.f_cpu=133000000L +adafruit_macropad2040picoprobe.menu.freq.125=125 MHz +adafruit_macropad2040picoprobe.menu.freq.125.build.f_cpu=125000000L adafruit_macropad2040picoprobe.menu.freq.50=50 MHz adafruit_macropad2040picoprobe.menu.freq.50.build.f_cpu=50000000L adafruit_macropad2040picoprobe.menu.freq.100=100 MHz adafruit_macropad2040picoprobe.menu.freq.100.build.f_cpu=100000000L -adafruit_macropad2040picoprobe.menu.freq.125=125 MHz -adafruit_macropad2040picoprobe.menu.freq.125.build.f_cpu=125000000L +adafruit_macropad2040picoprobe.menu.freq.133=133 MHz +adafruit_macropad2040picoprobe.menu.freq.133.build.f_cpu=133000000L adafruit_macropad2040picoprobe.menu.freq.150=150 MHz (Overclock) adafruit_macropad2040picoprobe.menu.freq.150.build.f_cpu=150000000L adafruit_macropad2040picoprobe.menu.freq.175=175 MHz (Overclock) @@ -3252,14 +3252,14 @@ adafruit_macropad2040picodebug.menu.flash.8388608_7340032.build.flash_length=104 adafruit_macropad2040picodebug.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_macropad2040picodebug.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_macropad2040picodebug.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_macropad2040picodebug.menu.freq.133=133 MHz -adafruit_macropad2040picodebug.menu.freq.133.build.f_cpu=133000000L +adafruit_macropad2040picodebug.menu.freq.125=125 MHz +adafruit_macropad2040picodebug.menu.freq.125.build.f_cpu=125000000L adafruit_macropad2040picodebug.menu.freq.50=50 MHz adafruit_macropad2040picodebug.menu.freq.50.build.f_cpu=50000000L adafruit_macropad2040picodebug.menu.freq.100=100 MHz adafruit_macropad2040picodebug.menu.freq.100.build.f_cpu=100000000L -adafruit_macropad2040picodebug.menu.freq.125=125 MHz -adafruit_macropad2040picodebug.menu.freq.125.build.f_cpu=125000000L +adafruit_macropad2040picodebug.menu.freq.133=133 MHz +adafruit_macropad2040picodebug.menu.freq.133.build.f_cpu=133000000L adafruit_macropad2040picodebug.menu.freq.150=150 MHz (Overclock) adafruit_macropad2040picodebug.menu.freq.150.build.f_cpu=150000000L adafruit_macropad2040picodebug.menu.freq.175=175 MHz (Overclock) @@ -3413,14 +3413,14 @@ adafruit_kb2040.menu.flash.8388608_7340032.build.flash_length=1044480 adafruit_kb2040.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_kb2040.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_kb2040.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_kb2040.menu.freq.133=133 MHz -adafruit_kb2040.menu.freq.133.build.f_cpu=133000000L +adafruit_kb2040.menu.freq.125=125 MHz +adafruit_kb2040.menu.freq.125.build.f_cpu=125000000L adafruit_kb2040.menu.freq.50=50 MHz adafruit_kb2040.menu.freq.50.build.f_cpu=50000000L adafruit_kb2040.menu.freq.100=100 MHz adafruit_kb2040.menu.freq.100.build.f_cpu=100000000L -adafruit_kb2040.menu.freq.125=125 MHz -adafruit_kb2040.menu.freq.125.build.f_cpu=125000000L +adafruit_kb2040.menu.freq.133=133 MHz +adafruit_kb2040.menu.freq.133.build.f_cpu=133000000L adafruit_kb2040.menu.freq.150=150 MHz (Overclock) adafruit_kb2040.menu.freq.150.build.f_cpu=150000000L adafruit_kb2040.menu.freq.175=175 MHz (Overclock) @@ -3576,14 +3576,14 @@ adafruit_kb2040picoprobe.menu.flash.8388608_7340032.build.flash_length=1044480 adafruit_kb2040picoprobe.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_kb2040picoprobe.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_kb2040picoprobe.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_kb2040picoprobe.menu.freq.133=133 MHz -adafruit_kb2040picoprobe.menu.freq.133.build.f_cpu=133000000L +adafruit_kb2040picoprobe.menu.freq.125=125 MHz +adafruit_kb2040picoprobe.menu.freq.125.build.f_cpu=125000000L adafruit_kb2040picoprobe.menu.freq.50=50 MHz adafruit_kb2040picoprobe.menu.freq.50.build.f_cpu=50000000L adafruit_kb2040picoprobe.menu.freq.100=100 MHz adafruit_kb2040picoprobe.menu.freq.100.build.f_cpu=100000000L -adafruit_kb2040picoprobe.menu.freq.125=125 MHz -adafruit_kb2040picoprobe.menu.freq.125.build.f_cpu=125000000L +adafruit_kb2040picoprobe.menu.freq.133=133 MHz +adafruit_kb2040picoprobe.menu.freq.133.build.f_cpu=133000000L adafruit_kb2040picoprobe.menu.freq.150=150 MHz (Overclock) adafruit_kb2040picoprobe.menu.freq.150.build.f_cpu=150000000L adafruit_kb2040picoprobe.menu.freq.175=175 MHz (Overclock) @@ -3739,14 +3739,14 @@ adafruit_kb2040picodebug.menu.flash.8388608_7340032.build.flash_length=1044480 adafruit_kb2040picodebug.menu.flash.8388608_7340032.build.eeprom_start=276819968 adafruit_kb2040picodebug.menu.flash.8388608_7340032.build.fs_start=269479936 adafruit_kb2040picodebug.menu.flash.8388608_7340032.build.fs_end=276819968 -adafruit_kb2040picodebug.menu.freq.133=133 MHz -adafruit_kb2040picodebug.menu.freq.133.build.f_cpu=133000000L +adafruit_kb2040picodebug.menu.freq.125=125 MHz +adafruit_kb2040picodebug.menu.freq.125.build.f_cpu=125000000L adafruit_kb2040picodebug.menu.freq.50=50 MHz adafruit_kb2040picodebug.menu.freq.50.build.f_cpu=50000000L adafruit_kb2040picodebug.menu.freq.100=100 MHz adafruit_kb2040picodebug.menu.freq.100.build.f_cpu=100000000L -adafruit_kb2040picodebug.menu.freq.125=125 MHz -adafruit_kb2040picodebug.menu.freq.125.build.f_cpu=125000000L +adafruit_kb2040picodebug.menu.freq.133=133 MHz +adafruit_kb2040picodebug.menu.freq.133.build.f_cpu=133000000L adafruit_kb2040picodebug.menu.freq.150=150 MHz (Overclock) adafruit_kb2040picodebug.menu.freq.150.build.f_cpu=150000000L adafruit_kb2040picodebug.menu.freq.175=175 MHz (Overclock) @@ -3948,14 +3948,14 @@ arduino_nano_connect.menu.flash.16777216_15728640.build.flash_length=1044480 arduino_nano_connect.menu.flash.16777216_15728640.build.eeprom_start=285208576 arduino_nano_connect.menu.flash.16777216_15728640.build.fs_start=269479936 arduino_nano_connect.menu.flash.16777216_15728640.build.fs_end=285208576 -arduino_nano_connect.menu.freq.133=133 MHz -arduino_nano_connect.menu.freq.133.build.f_cpu=133000000L +arduino_nano_connect.menu.freq.125=125 MHz +arduino_nano_connect.menu.freq.125.build.f_cpu=125000000L arduino_nano_connect.menu.freq.50=50 MHz arduino_nano_connect.menu.freq.50.build.f_cpu=50000000L arduino_nano_connect.menu.freq.100=100 MHz arduino_nano_connect.menu.freq.100.build.f_cpu=100000000L -arduino_nano_connect.menu.freq.125=125 MHz -arduino_nano_connect.menu.freq.125.build.f_cpu=125000000L +arduino_nano_connect.menu.freq.133=133 MHz +arduino_nano_connect.menu.freq.133.build.f_cpu=133000000L arduino_nano_connect.menu.freq.150=150 MHz (Overclock) arduino_nano_connect.menu.freq.150.build.f_cpu=150000000L arduino_nano_connect.menu.freq.175=175 MHz (Overclock) @@ -4159,14 +4159,14 @@ arduino_nano_connectpicoprobe.menu.flash.16777216_15728640.build.flash_length=10 arduino_nano_connectpicoprobe.menu.flash.16777216_15728640.build.eeprom_start=285208576 arduino_nano_connectpicoprobe.menu.flash.16777216_15728640.build.fs_start=269479936 arduino_nano_connectpicoprobe.menu.flash.16777216_15728640.build.fs_end=285208576 -arduino_nano_connectpicoprobe.menu.freq.133=133 MHz -arduino_nano_connectpicoprobe.menu.freq.133.build.f_cpu=133000000L +arduino_nano_connectpicoprobe.menu.freq.125=125 MHz +arduino_nano_connectpicoprobe.menu.freq.125.build.f_cpu=125000000L arduino_nano_connectpicoprobe.menu.freq.50=50 MHz arduino_nano_connectpicoprobe.menu.freq.50.build.f_cpu=50000000L arduino_nano_connectpicoprobe.menu.freq.100=100 MHz arduino_nano_connectpicoprobe.menu.freq.100.build.f_cpu=100000000L -arduino_nano_connectpicoprobe.menu.freq.125=125 MHz -arduino_nano_connectpicoprobe.menu.freq.125.build.f_cpu=125000000L +arduino_nano_connectpicoprobe.menu.freq.133=133 MHz +arduino_nano_connectpicoprobe.menu.freq.133.build.f_cpu=133000000L arduino_nano_connectpicoprobe.menu.freq.150=150 MHz (Overclock) arduino_nano_connectpicoprobe.menu.freq.150.build.f_cpu=150000000L arduino_nano_connectpicoprobe.menu.freq.175=175 MHz (Overclock) @@ -4370,14 +4370,14 @@ arduino_nano_connectpicodebug.menu.flash.16777216_15728640.build.flash_length=10 arduino_nano_connectpicodebug.menu.flash.16777216_15728640.build.eeprom_start=285208576 arduino_nano_connectpicodebug.menu.flash.16777216_15728640.build.fs_start=269479936 arduino_nano_connectpicodebug.menu.flash.16777216_15728640.build.fs_end=285208576 -arduino_nano_connectpicodebug.menu.freq.133=133 MHz -arduino_nano_connectpicodebug.menu.freq.133.build.f_cpu=133000000L +arduino_nano_connectpicodebug.menu.freq.125=125 MHz +arduino_nano_connectpicodebug.menu.freq.125.build.f_cpu=125000000L arduino_nano_connectpicodebug.menu.freq.50=50 MHz arduino_nano_connectpicodebug.menu.freq.50.build.f_cpu=50000000L arduino_nano_connectpicodebug.menu.freq.100=100 MHz arduino_nano_connectpicodebug.menu.freq.100.build.f_cpu=100000000L -arduino_nano_connectpicodebug.menu.freq.125=125 MHz -arduino_nano_connectpicodebug.menu.freq.125.build.f_cpu=125000000L +arduino_nano_connectpicodebug.menu.freq.133=133 MHz +arduino_nano_connectpicodebug.menu.freq.133.build.f_cpu=133000000L arduino_nano_connectpicodebug.menu.freq.150=150 MHz (Overclock) arduino_nano_connectpicodebug.menu.freq.150.build.f_cpu=150000000L arduino_nano_connectpicodebug.menu.freq.175=175 MHz (Overclock) @@ -4495,14 +4495,14 @@ cytron_maker_nano_rp2040.menu.flash.2097152_1048576.build.flash_length=1044480 cytron_maker_nano_rp2040.menu.flash.2097152_1048576.build.eeprom_start=270528512 cytron_maker_nano_rp2040.menu.flash.2097152_1048576.build.fs_start=269479936 cytron_maker_nano_rp2040.menu.flash.2097152_1048576.build.fs_end=270528512 -cytron_maker_nano_rp2040.menu.freq.133=133 MHz -cytron_maker_nano_rp2040.menu.freq.133.build.f_cpu=133000000L +cytron_maker_nano_rp2040.menu.freq.125=125 MHz +cytron_maker_nano_rp2040.menu.freq.125.build.f_cpu=125000000L cytron_maker_nano_rp2040.menu.freq.50=50 MHz cytron_maker_nano_rp2040.menu.freq.50.build.f_cpu=50000000L cytron_maker_nano_rp2040.menu.freq.100=100 MHz cytron_maker_nano_rp2040.menu.freq.100.build.f_cpu=100000000L -cytron_maker_nano_rp2040.menu.freq.125=125 MHz -cytron_maker_nano_rp2040.menu.freq.125.build.f_cpu=125000000L +cytron_maker_nano_rp2040.menu.freq.133=133 MHz +cytron_maker_nano_rp2040.menu.freq.133.build.f_cpu=133000000L cytron_maker_nano_rp2040.menu.freq.150=150 MHz (Overclock) cytron_maker_nano_rp2040.menu.freq.150.build.f_cpu=150000000L cytron_maker_nano_rp2040.menu.freq.175=175 MHz (Overclock) @@ -4622,14 +4622,14 @@ cytron_maker_nano_rp2040picoprobe.menu.flash.2097152_1048576.build.flash_length= cytron_maker_nano_rp2040picoprobe.menu.flash.2097152_1048576.build.eeprom_start=270528512 cytron_maker_nano_rp2040picoprobe.menu.flash.2097152_1048576.build.fs_start=269479936 cytron_maker_nano_rp2040picoprobe.menu.flash.2097152_1048576.build.fs_end=270528512 -cytron_maker_nano_rp2040picoprobe.menu.freq.133=133 MHz -cytron_maker_nano_rp2040picoprobe.menu.freq.133.build.f_cpu=133000000L +cytron_maker_nano_rp2040picoprobe.menu.freq.125=125 MHz +cytron_maker_nano_rp2040picoprobe.menu.freq.125.build.f_cpu=125000000L cytron_maker_nano_rp2040picoprobe.menu.freq.50=50 MHz cytron_maker_nano_rp2040picoprobe.menu.freq.50.build.f_cpu=50000000L cytron_maker_nano_rp2040picoprobe.menu.freq.100=100 MHz cytron_maker_nano_rp2040picoprobe.menu.freq.100.build.f_cpu=100000000L -cytron_maker_nano_rp2040picoprobe.menu.freq.125=125 MHz -cytron_maker_nano_rp2040picoprobe.menu.freq.125.build.f_cpu=125000000L +cytron_maker_nano_rp2040picoprobe.menu.freq.133=133 MHz +cytron_maker_nano_rp2040picoprobe.menu.freq.133.build.f_cpu=133000000L cytron_maker_nano_rp2040picoprobe.menu.freq.150=150 MHz (Overclock) cytron_maker_nano_rp2040picoprobe.menu.freq.150.build.f_cpu=150000000L cytron_maker_nano_rp2040picoprobe.menu.freq.175=175 MHz (Overclock) @@ -4749,14 +4749,14 @@ cytron_maker_nano_rp2040picodebug.menu.flash.2097152_1048576.build.flash_length= cytron_maker_nano_rp2040picodebug.menu.flash.2097152_1048576.build.eeprom_start=270528512 cytron_maker_nano_rp2040picodebug.menu.flash.2097152_1048576.build.fs_start=269479936 cytron_maker_nano_rp2040picodebug.menu.flash.2097152_1048576.build.fs_end=270528512 -cytron_maker_nano_rp2040picodebug.menu.freq.133=133 MHz -cytron_maker_nano_rp2040picodebug.menu.freq.133.build.f_cpu=133000000L +cytron_maker_nano_rp2040picodebug.menu.freq.125=125 MHz +cytron_maker_nano_rp2040picodebug.menu.freq.125.build.f_cpu=125000000L cytron_maker_nano_rp2040picodebug.menu.freq.50=50 MHz cytron_maker_nano_rp2040picodebug.menu.freq.50.build.f_cpu=50000000L cytron_maker_nano_rp2040picodebug.menu.freq.100=100 MHz cytron_maker_nano_rp2040picodebug.menu.freq.100.build.f_cpu=100000000L -cytron_maker_nano_rp2040picodebug.menu.freq.125=125 MHz -cytron_maker_nano_rp2040picodebug.menu.freq.125.build.f_cpu=125000000L +cytron_maker_nano_rp2040picodebug.menu.freq.133=133 MHz +cytron_maker_nano_rp2040picodebug.menu.freq.133.build.f_cpu=133000000L cytron_maker_nano_rp2040picodebug.menu.freq.150=150 MHz (Overclock) cytron_maker_nano_rp2040picodebug.menu.freq.150.build.f_cpu=150000000L cytron_maker_nano_rp2040picodebug.menu.freq.175=175 MHz (Overclock) @@ -4874,14 +4874,14 @@ cytron_maker_pi_rp2040.menu.flash.2097152_1048576.build.flash_length=1044480 cytron_maker_pi_rp2040.menu.flash.2097152_1048576.build.eeprom_start=270528512 cytron_maker_pi_rp2040.menu.flash.2097152_1048576.build.fs_start=269479936 cytron_maker_pi_rp2040.menu.flash.2097152_1048576.build.fs_end=270528512 -cytron_maker_pi_rp2040.menu.freq.133=133 MHz -cytron_maker_pi_rp2040.menu.freq.133.build.f_cpu=133000000L +cytron_maker_pi_rp2040.menu.freq.125=125 MHz +cytron_maker_pi_rp2040.menu.freq.125.build.f_cpu=125000000L cytron_maker_pi_rp2040.menu.freq.50=50 MHz cytron_maker_pi_rp2040.menu.freq.50.build.f_cpu=50000000L cytron_maker_pi_rp2040.menu.freq.100=100 MHz cytron_maker_pi_rp2040.menu.freq.100.build.f_cpu=100000000L -cytron_maker_pi_rp2040.menu.freq.125=125 MHz -cytron_maker_pi_rp2040.menu.freq.125.build.f_cpu=125000000L +cytron_maker_pi_rp2040.menu.freq.133=133 MHz +cytron_maker_pi_rp2040.menu.freq.133.build.f_cpu=133000000L cytron_maker_pi_rp2040.menu.freq.150=150 MHz (Overclock) cytron_maker_pi_rp2040.menu.freq.150.build.f_cpu=150000000L cytron_maker_pi_rp2040.menu.freq.175=175 MHz (Overclock) @@ -5001,14 +5001,14 @@ cytron_maker_pi_rp2040picoprobe.menu.flash.2097152_1048576.build.flash_length=10 cytron_maker_pi_rp2040picoprobe.menu.flash.2097152_1048576.build.eeprom_start=270528512 cytron_maker_pi_rp2040picoprobe.menu.flash.2097152_1048576.build.fs_start=269479936 cytron_maker_pi_rp2040picoprobe.menu.flash.2097152_1048576.build.fs_end=270528512 -cytron_maker_pi_rp2040picoprobe.menu.freq.133=133 MHz -cytron_maker_pi_rp2040picoprobe.menu.freq.133.build.f_cpu=133000000L +cytron_maker_pi_rp2040picoprobe.menu.freq.125=125 MHz +cytron_maker_pi_rp2040picoprobe.menu.freq.125.build.f_cpu=125000000L cytron_maker_pi_rp2040picoprobe.menu.freq.50=50 MHz cytron_maker_pi_rp2040picoprobe.menu.freq.50.build.f_cpu=50000000L cytron_maker_pi_rp2040picoprobe.menu.freq.100=100 MHz cytron_maker_pi_rp2040picoprobe.menu.freq.100.build.f_cpu=100000000L -cytron_maker_pi_rp2040picoprobe.menu.freq.125=125 MHz -cytron_maker_pi_rp2040picoprobe.menu.freq.125.build.f_cpu=125000000L +cytron_maker_pi_rp2040picoprobe.menu.freq.133=133 MHz +cytron_maker_pi_rp2040picoprobe.menu.freq.133.build.f_cpu=133000000L cytron_maker_pi_rp2040picoprobe.menu.freq.150=150 MHz (Overclock) cytron_maker_pi_rp2040picoprobe.menu.freq.150.build.f_cpu=150000000L cytron_maker_pi_rp2040picoprobe.menu.freq.175=175 MHz (Overclock) @@ -5128,14 +5128,14 @@ cytron_maker_pi_rp2040picodebug.menu.flash.2097152_1048576.build.flash_length=10 cytron_maker_pi_rp2040picodebug.menu.flash.2097152_1048576.build.eeprom_start=270528512 cytron_maker_pi_rp2040picodebug.menu.flash.2097152_1048576.build.fs_start=269479936 cytron_maker_pi_rp2040picodebug.menu.flash.2097152_1048576.build.fs_end=270528512 -cytron_maker_pi_rp2040picodebug.menu.freq.133=133 MHz -cytron_maker_pi_rp2040picodebug.menu.freq.133.build.f_cpu=133000000L +cytron_maker_pi_rp2040picodebug.menu.freq.125=125 MHz +cytron_maker_pi_rp2040picodebug.menu.freq.125.build.f_cpu=125000000L cytron_maker_pi_rp2040picodebug.menu.freq.50=50 MHz cytron_maker_pi_rp2040picodebug.menu.freq.50.build.f_cpu=50000000L cytron_maker_pi_rp2040picodebug.menu.freq.100=100 MHz cytron_maker_pi_rp2040picodebug.menu.freq.100.build.f_cpu=100000000L -cytron_maker_pi_rp2040picodebug.menu.freq.125=125 MHz -cytron_maker_pi_rp2040picodebug.menu.freq.125.build.f_cpu=125000000L +cytron_maker_pi_rp2040picodebug.menu.freq.133=133 MHz +cytron_maker_pi_rp2040picodebug.menu.freq.133.build.f_cpu=133000000L cytron_maker_pi_rp2040picodebug.menu.freq.150=150 MHz (Overclock) cytron_maker_pi_rp2040picodebug.menu.freq.150.build.f_cpu=150000000L cytron_maker_pi_rp2040picodebug.menu.freq.175=175 MHz (Overclock) @@ -5265,14 +5265,14 @@ flyboard2040_core.menu.flash.4194304_3145728.build.flash_length=1044480 flyboard2040_core.menu.flash.4194304_3145728.build.eeprom_start=272625664 flyboard2040_core.menu.flash.4194304_3145728.build.fs_start=269479936 flyboard2040_core.menu.flash.4194304_3145728.build.fs_end=272625664 -flyboard2040_core.menu.freq.133=133 MHz -flyboard2040_core.menu.freq.133.build.f_cpu=133000000L +flyboard2040_core.menu.freq.125=125 MHz +flyboard2040_core.menu.freq.125.build.f_cpu=125000000L flyboard2040_core.menu.freq.50=50 MHz flyboard2040_core.menu.freq.50.build.f_cpu=50000000L flyboard2040_core.menu.freq.100=100 MHz flyboard2040_core.menu.freq.100.build.f_cpu=100000000L -flyboard2040_core.menu.freq.125=125 MHz -flyboard2040_core.menu.freq.125.build.f_cpu=125000000L +flyboard2040_core.menu.freq.133=133 MHz +flyboard2040_core.menu.freq.133.build.f_cpu=133000000L flyboard2040_core.menu.freq.150=150 MHz (Overclock) flyboard2040_core.menu.freq.150.build.f_cpu=150000000L flyboard2040_core.menu.freq.175=175 MHz (Overclock) @@ -5404,14 +5404,14 @@ flyboard2040_corepicoprobe.menu.flash.4194304_3145728.build.flash_length=1044480 flyboard2040_corepicoprobe.menu.flash.4194304_3145728.build.eeprom_start=272625664 flyboard2040_corepicoprobe.menu.flash.4194304_3145728.build.fs_start=269479936 flyboard2040_corepicoprobe.menu.flash.4194304_3145728.build.fs_end=272625664 -flyboard2040_corepicoprobe.menu.freq.133=133 MHz -flyboard2040_corepicoprobe.menu.freq.133.build.f_cpu=133000000L +flyboard2040_corepicoprobe.menu.freq.125=125 MHz +flyboard2040_corepicoprobe.menu.freq.125.build.f_cpu=125000000L flyboard2040_corepicoprobe.menu.freq.50=50 MHz flyboard2040_corepicoprobe.menu.freq.50.build.f_cpu=50000000L flyboard2040_corepicoprobe.menu.freq.100=100 MHz flyboard2040_corepicoprobe.menu.freq.100.build.f_cpu=100000000L -flyboard2040_corepicoprobe.menu.freq.125=125 MHz -flyboard2040_corepicoprobe.menu.freq.125.build.f_cpu=125000000L +flyboard2040_corepicoprobe.menu.freq.133=133 MHz +flyboard2040_corepicoprobe.menu.freq.133.build.f_cpu=133000000L flyboard2040_corepicoprobe.menu.freq.150=150 MHz (Overclock) flyboard2040_corepicoprobe.menu.freq.150.build.f_cpu=150000000L flyboard2040_corepicoprobe.menu.freq.175=175 MHz (Overclock) @@ -5543,14 +5543,14 @@ flyboard2040_corepicodebug.menu.flash.4194304_3145728.build.flash_length=1044480 flyboard2040_corepicodebug.menu.flash.4194304_3145728.build.eeprom_start=272625664 flyboard2040_corepicodebug.menu.flash.4194304_3145728.build.fs_start=269479936 flyboard2040_corepicodebug.menu.flash.4194304_3145728.build.fs_end=272625664 -flyboard2040_corepicodebug.menu.freq.133=133 MHz -flyboard2040_corepicodebug.menu.freq.133.build.f_cpu=133000000L +flyboard2040_corepicodebug.menu.freq.125=125 MHz +flyboard2040_corepicodebug.menu.freq.125.build.f_cpu=125000000L flyboard2040_corepicodebug.menu.freq.50=50 MHz flyboard2040_corepicodebug.menu.freq.50.build.f_cpu=50000000L flyboard2040_corepicodebug.menu.freq.100=100 MHz flyboard2040_corepicodebug.menu.freq.100.build.f_cpu=100000000L -flyboard2040_corepicodebug.menu.freq.125=125 MHz -flyboard2040_corepicodebug.menu.freq.125.build.f_cpu=125000000L +flyboard2040_corepicodebug.menu.freq.133=133 MHz +flyboard2040_corepicodebug.menu.freq.133.build.f_cpu=133000000L flyboard2040_corepicodebug.menu.freq.150=150 MHz (Overclock) flyboard2040_corepicodebug.menu.freq.150.build.f_cpu=150000000L flyboard2040_corepicodebug.menu.freq.175=175 MHz (Overclock) @@ -5668,14 +5668,14 @@ dfrobot_beetle_rp2040.menu.flash.2097152_1048576.build.flash_length=1044480 dfrobot_beetle_rp2040.menu.flash.2097152_1048576.build.eeprom_start=270528512 dfrobot_beetle_rp2040.menu.flash.2097152_1048576.build.fs_start=269479936 dfrobot_beetle_rp2040.menu.flash.2097152_1048576.build.fs_end=270528512 -dfrobot_beetle_rp2040.menu.freq.133=133 MHz -dfrobot_beetle_rp2040.menu.freq.133.build.f_cpu=133000000L +dfrobot_beetle_rp2040.menu.freq.125=125 MHz +dfrobot_beetle_rp2040.menu.freq.125.build.f_cpu=125000000L dfrobot_beetle_rp2040.menu.freq.50=50 MHz dfrobot_beetle_rp2040.menu.freq.50.build.f_cpu=50000000L dfrobot_beetle_rp2040.menu.freq.100=100 MHz dfrobot_beetle_rp2040.menu.freq.100.build.f_cpu=100000000L -dfrobot_beetle_rp2040.menu.freq.125=125 MHz -dfrobot_beetle_rp2040.menu.freq.125.build.f_cpu=125000000L +dfrobot_beetle_rp2040.menu.freq.133=133 MHz +dfrobot_beetle_rp2040.menu.freq.133.build.f_cpu=133000000L dfrobot_beetle_rp2040.menu.freq.150=150 MHz (Overclock) dfrobot_beetle_rp2040.menu.freq.150.build.f_cpu=150000000L dfrobot_beetle_rp2040.menu.freq.175=175 MHz (Overclock) @@ -5795,14 +5795,14 @@ dfrobot_beetle_rp2040picoprobe.menu.flash.2097152_1048576.build.flash_length=104 dfrobot_beetle_rp2040picoprobe.menu.flash.2097152_1048576.build.eeprom_start=270528512 dfrobot_beetle_rp2040picoprobe.menu.flash.2097152_1048576.build.fs_start=269479936 dfrobot_beetle_rp2040picoprobe.menu.flash.2097152_1048576.build.fs_end=270528512 -dfrobot_beetle_rp2040picoprobe.menu.freq.133=133 MHz -dfrobot_beetle_rp2040picoprobe.menu.freq.133.build.f_cpu=133000000L +dfrobot_beetle_rp2040picoprobe.menu.freq.125=125 MHz +dfrobot_beetle_rp2040picoprobe.menu.freq.125.build.f_cpu=125000000L dfrobot_beetle_rp2040picoprobe.menu.freq.50=50 MHz dfrobot_beetle_rp2040picoprobe.menu.freq.50.build.f_cpu=50000000L dfrobot_beetle_rp2040picoprobe.menu.freq.100=100 MHz dfrobot_beetle_rp2040picoprobe.menu.freq.100.build.f_cpu=100000000L -dfrobot_beetle_rp2040picoprobe.menu.freq.125=125 MHz -dfrobot_beetle_rp2040picoprobe.menu.freq.125.build.f_cpu=125000000L +dfrobot_beetle_rp2040picoprobe.menu.freq.133=133 MHz +dfrobot_beetle_rp2040picoprobe.menu.freq.133.build.f_cpu=133000000L dfrobot_beetle_rp2040picoprobe.menu.freq.150=150 MHz (Overclock) dfrobot_beetle_rp2040picoprobe.menu.freq.150.build.f_cpu=150000000L dfrobot_beetle_rp2040picoprobe.menu.freq.175=175 MHz (Overclock) @@ -5922,14 +5922,14 @@ dfrobot_beetle_rp2040picodebug.menu.flash.2097152_1048576.build.flash_length=104 dfrobot_beetle_rp2040picodebug.menu.flash.2097152_1048576.build.eeprom_start=270528512 dfrobot_beetle_rp2040picodebug.menu.flash.2097152_1048576.build.fs_start=269479936 dfrobot_beetle_rp2040picodebug.menu.flash.2097152_1048576.build.fs_end=270528512 -dfrobot_beetle_rp2040picodebug.menu.freq.133=133 MHz -dfrobot_beetle_rp2040picodebug.menu.freq.133.build.f_cpu=133000000L +dfrobot_beetle_rp2040picodebug.menu.freq.125=125 MHz +dfrobot_beetle_rp2040picodebug.menu.freq.125.build.f_cpu=125000000L dfrobot_beetle_rp2040picodebug.menu.freq.50=50 MHz dfrobot_beetle_rp2040picodebug.menu.freq.50.build.f_cpu=50000000L dfrobot_beetle_rp2040picodebug.menu.freq.100=100 MHz dfrobot_beetle_rp2040picodebug.menu.freq.100.build.f_cpu=100000000L -dfrobot_beetle_rp2040picodebug.menu.freq.125=125 MHz -dfrobot_beetle_rp2040picodebug.menu.freq.125.build.f_cpu=125000000L +dfrobot_beetle_rp2040picodebug.menu.freq.133=133 MHz +dfrobot_beetle_rp2040picodebug.menu.freq.133.build.f_cpu=133000000L dfrobot_beetle_rp2040picodebug.menu.freq.150=150 MHz (Overclock) dfrobot_beetle_rp2040picodebug.menu.freq.150.build.f_cpu=150000000L dfrobot_beetle_rp2040picodebug.menu.freq.175=175 MHz (Overclock) @@ -6083,14 +6083,14 @@ challenger_2040_lora.menu.flash.8388608_7340032.build.flash_length=1044480 challenger_2040_lora.menu.flash.8388608_7340032.build.eeprom_start=276819968 challenger_2040_lora.menu.flash.8388608_7340032.build.fs_start=269479936 challenger_2040_lora.menu.flash.8388608_7340032.build.fs_end=276819968 -challenger_2040_lora.menu.freq.133=133 MHz -challenger_2040_lora.menu.freq.133.build.f_cpu=133000000L +challenger_2040_lora.menu.freq.125=125 MHz +challenger_2040_lora.menu.freq.125.build.f_cpu=125000000L challenger_2040_lora.menu.freq.50=50 MHz challenger_2040_lora.menu.freq.50.build.f_cpu=50000000L challenger_2040_lora.menu.freq.100=100 MHz challenger_2040_lora.menu.freq.100.build.f_cpu=100000000L -challenger_2040_lora.menu.freq.125=125 MHz -challenger_2040_lora.menu.freq.125.build.f_cpu=125000000L +challenger_2040_lora.menu.freq.133=133 MHz +challenger_2040_lora.menu.freq.133.build.f_cpu=133000000L challenger_2040_lora.menu.freq.150=150 MHz (Overclock) challenger_2040_lora.menu.freq.150.build.f_cpu=150000000L challenger_2040_lora.menu.freq.175=175 MHz (Overclock) @@ -6246,14 +6246,14 @@ challenger_2040_lorapicoprobe.menu.flash.8388608_7340032.build.flash_length=1044 challenger_2040_lorapicoprobe.menu.flash.8388608_7340032.build.eeprom_start=276819968 challenger_2040_lorapicoprobe.menu.flash.8388608_7340032.build.fs_start=269479936 challenger_2040_lorapicoprobe.menu.flash.8388608_7340032.build.fs_end=276819968 -challenger_2040_lorapicoprobe.menu.freq.133=133 MHz -challenger_2040_lorapicoprobe.menu.freq.133.build.f_cpu=133000000L +challenger_2040_lorapicoprobe.menu.freq.125=125 MHz +challenger_2040_lorapicoprobe.menu.freq.125.build.f_cpu=125000000L challenger_2040_lorapicoprobe.menu.freq.50=50 MHz challenger_2040_lorapicoprobe.menu.freq.50.build.f_cpu=50000000L challenger_2040_lorapicoprobe.menu.freq.100=100 MHz challenger_2040_lorapicoprobe.menu.freq.100.build.f_cpu=100000000L -challenger_2040_lorapicoprobe.menu.freq.125=125 MHz -challenger_2040_lorapicoprobe.menu.freq.125.build.f_cpu=125000000L +challenger_2040_lorapicoprobe.menu.freq.133=133 MHz +challenger_2040_lorapicoprobe.menu.freq.133.build.f_cpu=133000000L challenger_2040_lorapicoprobe.menu.freq.150=150 MHz (Overclock) challenger_2040_lorapicoprobe.menu.freq.150.build.f_cpu=150000000L challenger_2040_lorapicoprobe.menu.freq.175=175 MHz (Overclock) @@ -6409,14 +6409,14 @@ challenger_2040_lorapicodebug.menu.flash.8388608_7340032.build.flash_length=1044 challenger_2040_lorapicodebug.menu.flash.8388608_7340032.build.eeprom_start=276819968 challenger_2040_lorapicodebug.menu.flash.8388608_7340032.build.fs_start=269479936 challenger_2040_lorapicodebug.menu.flash.8388608_7340032.build.fs_end=276819968 -challenger_2040_lorapicodebug.menu.freq.133=133 MHz -challenger_2040_lorapicodebug.menu.freq.133.build.f_cpu=133000000L +challenger_2040_lorapicodebug.menu.freq.125=125 MHz +challenger_2040_lorapicodebug.menu.freq.125.build.f_cpu=125000000L challenger_2040_lorapicodebug.menu.freq.50=50 MHz challenger_2040_lorapicodebug.menu.freq.50.build.f_cpu=50000000L challenger_2040_lorapicodebug.menu.freq.100=100 MHz challenger_2040_lorapicodebug.menu.freq.100.build.f_cpu=100000000L -challenger_2040_lorapicodebug.menu.freq.125=125 MHz -challenger_2040_lorapicodebug.menu.freq.125.build.f_cpu=125000000L +challenger_2040_lorapicodebug.menu.freq.133=133 MHz +challenger_2040_lorapicodebug.menu.freq.133.build.f_cpu=133000000L challenger_2040_lorapicodebug.menu.freq.150=150 MHz (Overclock) challenger_2040_lorapicodebug.menu.freq.150.build.f_cpu=150000000L challenger_2040_lorapicodebug.menu.freq.175=175 MHz (Overclock) @@ -6570,14 +6570,14 @@ challenger_2040_wifi.menu.flash.8388608_7340032.build.flash_length=1044480 challenger_2040_wifi.menu.flash.8388608_7340032.build.eeprom_start=276819968 challenger_2040_wifi.menu.flash.8388608_7340032.build.fs_start=269479936 challenger_2040_wifi.menu.flash.8388608_7340032.build.fs_end=276819968 -challenger_2040_wifi.menu.freq.133=133 MHz -challenger_2040_wifi.menu.freq.133.build.f_cpu=133000000L +challenger_2040_wifi.menu.freq.125=125 MHz +challenger_2040_wifi.menu.freq.125.build.f_cpu=125000000L challenger_2040_wifi.menu.freq.50=50 MHz challenger_2040_wifi.menu.freq.50.build.f_cpu=50000000L challenger_2040_wifi.menu.freq.100=100 MHz challenger_2040_wifi.menu.freq.100.build.f_cpu=100000000L -challenger_2040_wifi.menu.freq.125=125 MHz -challenger_2040_wifi.menu.freq.125.build.f_cpu=125000000L +challenger_2040_wifi.menu.freq.133=133 MHz +challenger_2040_wifi.menu.freq.133.build.f_cpu=133000000L challenger_2040_wifi.menu.freq.150=150 MHz (Overclock) challenger_2040_wifi.menu.freq.150.build.f_cpu=150000000L challenger_2040_wifi.menu.freq.175=175 MHz (Overclock) @@ -6733,14 +6733,14 @@ challenger_2040_wifipicoprobe.menu.flash.8388608_7340032.build.flash_length=1044 challenger_2040_wifipicoprobe.menu.flash.8388608_7340032.build.eeprom_start=276819968 challenger_2040_wifipicoprobe.menu.flash.8388608_7340032.build.fs_start=269479936 challenger_2040_wifipicoprobe.menu.flash.8388608_7340032.build.fs_end=276819968 -challenger_2040_wifipicoprobe.menu.freq.133=133 MHz -challenger_2040_wifipicoprobe.menu.freq.133.build.f_cpu=133000000L +challenger_2040_wifipicoprobe.menu.freq.125=125 MHz +challenger_2040_wifipicoprobe.menu.freq.125.build.f_cpu=125000000L challenger_2040_wifipicoprobe.menu.freq.50=50 MHz challenger_2040_wifipicoprobe.menu.freq.50.build.f_cpu=50000000L challenger_2040_wifipicoprobe.menu.freq.100=100 MHz challenger_2040_wifipicoprobe.menu.freq.100.build.f_cpu=100000000L -challenger_2040_wifipicoprobe.menu.freq.125=125 MHz -challenger_2040_wifipicoprobe.menu.freq.125.build.f_cpu=125000000L +challenger_2040_wifipicoprobe.menu.freq.133=133 MHz +challenger_2040_wifipicoprobe.menu.freq.133.build.f_cpu=133000000L challenger_2040_wifipicoprobe.menu.freq.150=150 MHz (Overclock) challenger_2040_wifipicoprobe.menu.freq.150.build.f_cpu=150000000L challenger_2040_wifipicoprobe.menu.freq.175=175 MHz (Overclock) @@ -6896,14 +6896,14 @@ challenger_2040_wifipicodebug.menu.flash.8388608_7340032.build.flash_length=1044 challenger_2040_wifipicodebug.menu.flash.8388608_7340032.build.eeprom_start=276819968 challenger_2040_wifipicodebug.menu.flash.8388608_7340032.build.fs_start=269479936 challenger_2040_wifipicodebug.menu.flash.8388608_7340032.build.fs_end=276819968 -challenger_2040_wifipicodebug.menu.freq.133=133 MHz -challenger_2040_wifipicodebug.menu.freq.133.build.f_cpu=133000000L +challenger_2040_wifipicodebug.menu.freq.125=125 MHz +challenger_2040_wifipicodebug.menu.freq.125.build.f_cpu=125000000L challenger_2040_wifipicodebug.menu.freq.50=50 MHz challenger_2040_wifipicodebug.menu.freq.50.build.f_cpu=50000000L challenger_2040_wifipicodebug.menu.freq.100=100 MHz challenger_2040_wifipicodebug.menu.freq.100.build.f_cpu=100000000L -challenger_2040_wifipicodebug.menu.freq.125=125 MHz -challenger_2040_wifipicodebug.menu.freq.125.build.f_cpu=125000000L +challenger_2040_wifipicodebug.menu.freq.133=133 MHz +challenger_2040_wifipicodebug.menu.freq.133.build.f_cpu=133000000L challenger_2040_wifipicodebug.menu.freq.150=150 MHz (Overclock) challenger_2040_wifipicodebug.menu.freq.150.build.f_cpu=150000000L challenger_2040_wifipicodebug.menu.freq.175=175 MHz (Overclock) @@ -7057,14 +7057,14 @@ challenger_2040_lte.menu.flash.8388608_7340032.build.flash_length=1044480 challenger_2040_lte.menu.flash.8388608_7340032.build.eeprom_start=276819968 challenger_2040_lte.menu.flash.8388608_7340032.build.fs_start=269479936 challenger_2040_lte.menu.flash.8388608_7340032.build.fs_end=276819968 -challenger_2040_lte.menu.freq.133=133 MHz -challenger_2040_lte.menu.freq.133.build.f_cpu=133000000L +challenger_2040_lte.menu.freq.125=125 MHz +challenger_2040_lte.menu.freq.125.build.f_cpu=125000000L challenger_2040_lte.menu.freq.50=50 MHz challenger_2040_lte.menu.freq.50.build.f_cpu=50000000L challenger_2040_lte.menu.freq.100=100 MHz challenger_2040_lte.menu.freq.100.build.f_cpu=100000000L -challenger_2040_lte.menu.freq.125=125 MHz -challenger_2040_lte.menu.freq.125.build.f_cpu=125000000L +challenger_2040_lte.menu.freq.133=133 MHz +challenger_2040_lte.menu.freq.133.build.f_cpu=133000000L challenger_2040_lte.menu.freq.150=150 MHz (Overclock) challenger_2040_lte.menu.freq.150.build.f_cpu=150000000L challenger_2040_lte.menu.freq.175=175 MHz (Overclock) @@ -7220,14 +7220,14 @@ challenger_2040_ltepicoprobe.menu.flash.8388608_7340032.build.flash_length=10444 challenger_2040_ltepicoprobe.menu.flash.8388608_7340032.build.eeprom_start=276819968 challenger_2040_ltepicoprobe.menu.flash.8388608_7340032.build.fs_start=269479936 challenger_2040_ltepicoprobe.menu.flash.8388608_7340032.build.fs_end=276819968 -challenger_2040_ltepicoprobe.menu.freq.133=133 MHz -challenger_2040_ltepicoprobe.menu.freq.133.build.f_cpu=133000000L +challenger_2040_ltepicoprobe.menu.freq.125=125 MHz +challenger_2040_ltepicoprobe.menu.freq.125.build.f_cpu=125000000L challenger_2040_ltepicoprobe.menu.freq.50=50 MHz challenger_2040_ltepicoprobe.menu.freq.50.build.f_cpu=50000000L challenger_2040_ltepicoprobe.menu.freq.100=100 MHz challenger_2040_ltepicoprobe.menu.freq.100.build.f_cpu=100000000L -challenger_2040_ltepicoprobe.menu.freq.125=125 MHz -challenger_2040_ltepicoprobe.menu.freq.125.build.f_cpu=125000000L +challenger_2040_ltepicoprobe.menu.freq.133=133 MHz +challenger_2040_ltepicoprobe.menu.freq.133.build.f_cpu=133000000L challenger_2040_ltepicoprobe.menu.freq.150=150 MHz (Overclock) challenger_2040_ltepicoprobe.menu.freq.150.build.f_cpu=150000000L challenger_2040_ltepicoprobe.menu.freq.175=175 MHz (Overclock) @@ -7383,14 +7383,14 @@ challenger_2040_ltepicodebug.menu.flash.8388608_7340032.build.flash_length=10444 challenger_2040_ltepicodebug.menu.flash.8388608_7340032.build.eeprom_start=276819968 challenger_2040_ltepicodebug.menu.flash.8388608_7340032.build.fs_start=269479936 challenger_2040_ltepicodebug.menu.flash.8388608_7340032.build.fs_end=276819968 -challenger_2040_ltepicodebug.menu.freq.133=133 MHz -challenger_2040_ltepicodebug.menu.freq.133.build.f_cpu=133000000L +challenger_2040_ltepicodebug.menu.freq.125=125 MHz +challenger_2040_ltepicodebug.menu.freq.125.build.f_cpu=125000000L challenger_2040_ltepicodebug.menu.freq.50=50 MHz challenger_2040_ltepicodebug.menu.freq.50.build.f_cpu=50000000L challenger_2040_ltepicodebug.menu.freq.100=100 MHz challenger_2040_ltepicodebug.menu.freq.100.build.f_cpu=100000000L -challenger_2040_ltepicodebug.menu.freq.125=125 MHz -challenger_2040_ltepicodebug.menu.freq.125.build.f_cpu=125000000L +challenger_2040_ltepicodebug.menu.freq.133=133 MHz +challenger_2040_ltepicodebug.menu.freq.133.build.f_cpu=133000000L challenger_2040_ltepicodebug.menu.freq.150=150 MHz (Overclock) challenger_2040_ltepicodebug.menu.freq.150.build.f_cpu=150000000L challenger_2040_ltepicodebug.menu.freq.175=175 MHz (Overclock) @@ -7544,14 +7544,14 @@ challenger_nb_2040_wifi.menu.flash.8388608_7340032.build.flash_length=1044480 challenger_nb_2040_wifi.menu.flash.8388608_7340032.build.eeprom_start=276819968 challenger_nb_2040_wifi.menu.flash.8388608_7340032.build.fs_start=269479936 challenger_nb_2040_wifi.menu.flash.8388608_7340032.build.fs_end=276819968 -challenger_nb_2040_wifi.menu.freq.133=133 MHz -challenger_nb_2040_wifi.menu.freq.133.build.f_cpu=133000000L +challenger_nb_2040_wifi.menu.freq.125=125 MHz +challenger_nb_2040_wifi.menu.freq.125.build.f_cpu=125000000L challenger_nb_2040_wifi.menu.freq.50=50 MHz challenger_nb_2040_wifi.menu.freq.50.build.f_cpu=50000000L challenger_nb_2040_wifi.menu.freq.100=100 MHz challenger_nb_2040_wifi.menu.freq.100.build.f_cpu=100000000L -challenger_nb_2040_wifi.menu.freq.125=125 MHz -challenger_nb_2040_wifi.menu.freq.125.build.f_cpu=125000000L +challenger_nb_2040_wifi.menu.freq.133=133 MHz +challenger_nb_2040_wifi.menu.freq.133.build.f_cpu=133000000L challenger_nb_2040_wifi.menu.freq.150=150 MHz (Overclock) challenger_nb_2040_wifi.menu.freq.150.build.f_cpu=150000000L challenger_nb_2040_wifi.menu.freq.175=175 MHz (Overclock) @@ -7707,14 +7707,14 @@ challenger_nb_2040_wifipicoprobe.menu.flash.8388608_7340032.build.flash_length=1 challenger_nb_2040_wifipicoprobe.menu.flash.8388608_7340032.build.eeprom_start=276819968 challenger_nb_2040_wifipicoprobe.menu.flash.8388608_7340032.build.fs_start=269479936 challenger_nb_2040_wifipicoprobe.menu.flash.8388608_7340032.build.fs_end=276819968 -challenger_nb_2040_wifipicoprobe.menu.freq.133=133 MHz -challenger_nb_2040_wifipicoprobe.menu.freq.133.build.f_cpu=133000000L +challenger_nb_2040_wifipicoprobe.menu.freq.125=125 MHz +challenger_nb_2040_wifipicoprobe.menu.freq.125.build.f_cpu=125000000L challenger_nb_2040_wifipicoprobe.menu.freq.50=50 MHz challenger_nb_2040_wifipicoprobe.menu.freq.50.build.f_cpu=50000000L challenger_nb_2040_wifipicoprobe.menu.freq.100=100 MHz challenger_nb_2040_wifipicoprobe.menu.freq.100.build.f_cpu=100000000L -challenger_nb_2040_wifipicoprobe.menu.freq.125=125 MHz -challenger_nb_2040_wifipicoprobe.menu.freq.125.build.f_cpu=125000000L +challenger_nb_2040_wifipicoprobe.menu.freq.133=133 MHz +challenger_nb_2040_wifipicoprobe.menu.freq.133.build.f_cpu=133000000L challenger_nb_2040_wifipicoprobe.menu.freq.150=150 MHz (Overclock) challenger_nb_2040_wifipicoprobe.menu.freq.150.build.f_cpu=150000000L challenger_nb_2040_wifipicoprobe.menu.freq.175=175 MHz (Overclock) @@ -7870,14 +7870,14 @@ challenger_nb_2040_wifipicodebug.menu.flash.8388608_7340032.build.flash_length=1 challenger_nb_2040_wifipicodebug.menu.flash.8388608_7340032.build.eeprom_start=276819968 challenger_nb_2040_wifipicodebug.menu.flash.8388608_7340032.build.fs_start=269479936 challenger_nb_2040_wifipicodebug.menu.flash.8388608_7340032.build.fs_end=276819968 -challenger_nb_2040_wifipicodebug.menu.freq.133=133 MHz -challenger_nb_2040_wifipicodebug.menu.freq.133.build.f_cpu=133000000L +challenger_nb_2040_wifipicodebug.menu.freq.125=125 MHz +challenger_nb_2040_wifipicodebug.menu.freq.125.build.f_cpu=125000000L challenger_nb_2040_wifipicodebug.menu.freq.50=50 MHz challenger_nb_2040_wifipicodebug.menu.freq.50.build.f_cpu=50000000L challenger_nb_2040_wifipicodebug.menu.freq.100=100 MHz challenger_nb_2040_wifipicodebug.menu.freq.100.build.f_cpu=100000000L -challenger_nb_2040_wifipicodebug.menu.freq.125=125 MHz -challenger_nb_2040_wifipicodebug.menu.freq.125.build.f_cpu=125000000L +challenger_nb_2040_wifipicodebug.menu.freq.133=133 MHz +challenger_nb_2040_wifipicodebug.menu.freq.133.build.f_cpu=133000000L challenger_nb_2040_wifipicodebug.menu.freq.150=150 MHz (Overclock) challenger_nb_2040_wifipicodebug.menu.freq.150.build.f_cpu=150000000L challenger_nb_2040_wifipicodebug.menu.freq.175=175 MHz (Overclock) @@ -8031,14 +8031,14 @@ ilabs_rpico32.menu.flash.8388608_7340032.build.flash_length=1044480 ilabs_rpico32.menu.flash.8388608_7340032.build.eeprom_start=276819968 ilabs_rpico32.menu.flash.8388608_7340032.build.fs_start=269479936 ilabs_rpico32.menu.flash.8388608_7340032.build.fs_end=276819968 -ilabs_rpico32.menu.freq.133=133 MHz -ilabs_rpico32.menu.freq.133.build.f_cpu=133000000L +ilabs_rpico32.menu.freq.125=125 MHz +ilabs_rpico32.menu.freq.125.build.f_cpu=125000000L ilabs_rpico32.menu.freq.50=50 MHz ilabs_rpico32.menu.freq.50.build.f_cpu=50000000L ilabs_rpico32.menu.freq.100=100 MHz ilabs_rpico32.menu.freq.100.build.f_cpu=100000000L -ilabs_rpico32.menu.freq.125=125 MHz -ilabs_rpico32.menu.freq.125.build.f_cpu=125000000L +ilabs_rpico32.menu.freq.133=133 MHz +ilabs_rpico32.menu.freq.133.build.f_cpu=133000000L ilabs_rpico32.menu.freq.150=150 MHz (Overclock) ilabs_rpico32.menu.freq.150.build.f_cpu=150000000L ilabs_rpico32.menu.freq.175=175 MHz (Overclock) @@ -8194,14 +8194,14 @@ ilabs_rpico32picoprobe.menu.flash.8388608_7340032.build.flash_length=1044480 ilabs_rpico32picoprobe.menu.flash.8388608_7340032.build.eeprom_start=276819968 ilabs_rpico32picoprobe.menu.flash.8388608_7340032.build.fs_start=269479936 ilabs_rpico32picoprobe.menu.flash.8388608_7340032.build.fs_end=276819968 -ilabs_rpico32picoprobe.menu.freq.133=133 MHz -ilabs_rpico32picoprobe.menu.freq.133.build.f_cpu=133000000L +ilabs_rpico32picoprobe.menu.freq.125=125 MHz +ilabs_rpico32picoprobe.menu.freq.125.build.f_cpu=125000000L ilabs_rpico32picoprobe.menu.freq.50=50 MHz ilabs_rpico32picoprobe.menu.freq.50.build.f_cpu=50000000L ilabs_rpico32picoprobe.menu.freq.100=100 MHz ilabs_rpico32picoprobe.menu.freq.100.build.f_cpu=100000000L -ilabs_rpico32picoprobe.menu.freq.125=125 MHz -ilabs_rpico32picoprobe.menu.freq.125.build.f_cpu=125000000L +ilabs_rpico32picoprobe.menu.freq.133=133 MHz +ilabs_rpico32picoprobe.menu.freq.133.build.f_cpu=133000000L ilabs_rpico32picoprobe.menu.freq.150=150 MHz (Overclock) ilabs_rpico32picoprobe.menu.freq.150.build.f_cpu=150000000L ilabs_rpico32picoprobe.menu.freq.175=175 MHz (Overclock) @@ -8357,14 +8357,14 @@ ilabs_rpico32picodebug.menu.flash.8388608_7340032.build.flash_length=1044480 ilabs_rpico32picodebug.menu.flash.8388608_7340032.build.eeprom_start=276819968 ilabs_rpico32picodebug.menu.flash.8388608_7340032.build.fs_start=269479936 ilabs_rpico32picodebug.menu.flash.8388608_7340032.build.fs_end=276819968 -ilabs_rpico32picodebug.menu.freq.133=133 MHz -ilabs_rpico32picodebug.menu.freq.133.build.f_cpu=133000000L +ilabs_rpico32picodebug.menu.freq.125=125 MHz +ilabs_rpico32picodebug.menu.freq.125.build.f_cpu=125000000L ilabs_rpico32picodebug.menu.freq.50=50 MHz ilabs_rpico32picodebug.menu.freq.50.build.f_cpu=50000000L ilabs_rpico32picodebug.menu.freq.100=100 MHz ilabs_rpico32picodebug.menu.freq.100.build.f_cpu=100000000L -ilabs_rpico32picodebug.menu.freq.125=125 MHz -ilabs_rpico32picodebug.menu.freq.125.build.f_cpu=125000000L +ilabs_rpico32picodebug.menu.freq.133=133 MHz +ilabs_rpico32picodebug.menu.freq.133.build.f_cpu=133000000L ilabs_rpico32picodebug.menu.freq.150=150 MHz (Overclock) ilabs_rpico32picodebug.menu.freq.150.build.f_cpu=150000000L ilabs_rpico32picodebug.menu.freq.175=175 MHz (Overclock) @@ -8566,14 +8566,14 @@ melopero_shake_rp2040.menu.flash.16777216_15728640.build.flash_length=1044480 melopero_shake_rp2040.menu.flash.16777216_15728640.build.eeprom_start=285208576 melopero_shake_rp2040.menu.flash.16777216_15728640.build.fs_start=269479936 melopero_shake_rp2040.menu.flash.16777216_15728640.build.fs_end=285208576 -melopero_shake_rp2040.menu.freq.133=133 MHz -melopero_shake_rp2040.menu.freq.133.build.f_cpu=133000000L +melopero_shake_rp2040.menu.freq.125=125 MHz +melopero_shake_rp2040.menu.freq.125.build.f_cpu=125000000L melopero_shake_rp2040.menu.freq.50=50 MHz melopero_shake_rp2040.menu.freq.50.build.f_cpu=50000000L melopero_shake_rp2040.menu.freq.100=100 MHz melopero_shake_rp2040.menu.freq.100.build.f_cpu=100000000L -melopero_shake_rp2040.menu.freq.125=125 MHz -melopero_shake_rp2040.menu.freq.125.build.f_cpu=125000000L +melopero_shake_rp2040.menu.freq.133=133 MHz +melopero_shake_rp2040.menu.freq.133.build.f_cpu=133000000L melopero_shake_rp2040.menu.freq.150=150 MHz (Overclock) melopero_shake_rp2040.menu.freq.150.build.f_cpu=150000000L melopero_shake_rp2040.menu.freq.175=175 MHz (Overclock) @@ -8777,14 +8777,14 @@ melopero_shake_rp2040picoprobe.menu.flash.16777216_15728640.build.flash_length=1 melopero_shake_rp2040picoprobe.menu.flash.16777216_15728640.build.eeprom_start=285208576 melopero_shake_rp2040picoprobe.menu.flash.16777216_15728640.build.fs_start=269479936 melopero_shake_rp2040picoprobe.menu.flash.16777216_15728640.build.fs_end=285208576 -melopero_shake_rp2040picoprobe.menu.freq.133=133 MHz -melopero_shake_rp2040picoprobe.menu.freq.133.build.f_cpu=133000000L +melopero_shake_rp2040picoprobe.menu.freq.125=125 MHz +melopero_shake_rp2040picoprobe.menu.freq.125.build.f_cpu=125000000L melopero_shake_rp2040picoprobe.menu.freq.50=50 MHz melopero_shake_rp2040picoprobe.menu.freq.50.build.f_cpu=50000000L melopero_shake_rp2040picoprobe.menu.freq.100=100 MHz melopero_shake_rp2040picoprobe.menu.freq.100.build.f_cpu=100000000L -melopero_shake_rp2040picoprobe.menu.freq.125=125 MHz -melopero_shake_rp2040picoprobe.menu.freq.125.build.f_cpu=125000000L +melopero_shake_rp2040picoprobe.menu.freq.133=133 MHz +melopero_shake_rp2040picoprobe.menu.freq.133.build.f_cpu=133000000L melopero_shake_rp2040picoprobe.menu.freq.150=150 MHz (Overclock) melopero_shake_rp2040picoprobe.menu.freq.150.build.f_cpu=150000000L melopero_shake_rp2040picoprobe.menu.freq.175=175 MHz (Overclock) @@ -8988,14 +8988,14 @@ melopero_shake_rp2040picodebug.menu.flash.16777216_15728640.build.flash_length=1 melopero_shake_rp2040picodebug.menu.flash.16777216_15728640.build.eeprom_start=285208576 melopero_shake_rp2040picodebug.menu.flash.16777216_15728640.build.fs_start=269479936 melopero_shake_rp2040picodebug.menu.flash.16777216_15728640.build.fs_end=285208576 -melopero_shake_rp2040picodebug.menu.freq.133=133 MHz -melopero_shake_rp2040picodebug.menu.freq.133.build.f_cpu=133000000L +melopero_shake_rp2040picodebug.menu.freq.125=125 MHz +melopero_shake_rp2040picodebug.menu.freq.125.build.f_cpu=125000000L melopero_shake_rp2040picodebug.menu.freq.50=50 MHz melopero_shake_rp2040picodebug.menu.freq.50.build.f_cpu=50000000L melopero_shake_rp2040picodebug.menu.freq.100=100 MHz melopero_shake_rp2040picodebug.menu.freq.100.build.f_cpu=100000000L -melopero_shake_rp2040picodebug.menu.freq.125=125 MHz -melopero_shake_rp2040picodebug.menu.freq.125.build.f_cpu=125000000L +melopero_shake_rp2040picodebug.menu.freq.133=133 MHz +melopero_shake_rp2040picodebug.menu.freq.133.build.f_cpu=133000000L melopero_shake_rp2040picodebug.menu.freq.150=150 MHz (Overclock) melopero_shake_rp2040picodebug.menu.freq.150.build.f_cpu=150000000L melopero_shake_rp2040picodebug.menu.freq.175=175 MHz (Overclock) @@ -9149,14 +9149,14 @@ solderparty_rp2040_stamp.menu.flash.8388608_7340032.build.flash_length=1044480 solderparty_rp2040_stamp.menu.flash.8388608_7340032.build.eeprom_start=276819968 solderparty_rp2040_stamp.menu.flash.8388608_7340032.build.fs_start=269479936 solderparty_rp2040_stamp.menu.flash.8388608_7340032.build.fs_end=276819968 -solderparty_rp2040_stamp.menu.freq.133=133 MHz -solderparty_rp2040_stamp.menu.freq.133.build.f_cpu=133000000L +solderparty_rp2040_stamp.menu.freq.125=125 MHz +solderparty_rp2040_stamp.menu.freq.125.build.f_cpu=125000000L solderparty_rp2040_stamp.menu.freq.50=50 MHz solderparty_rp2040_stamp.menu.freq.50.build.f_cpu=50000000L solderparty_rp2040_stamp.menu.freq.100=100 MHz solderparty_rp2040_stamp.menu.freq.100.build.f_cpu=100000000L -solderparty_rp2040_stamp.menu.freq.125=125 MHz -solderparty_rp2040_stamp.menu.freq.125.build.f_cpu=125000000L +solderparty_rp2040_stamp.menu.freq.133=133 MHz +solderparty_rp2040_stamp.menu.freq.133.build.f_cpu=133000000L solderparty_rp2040_stamp.menu.freq.150=150 MHz (Overclock) solderparty_rp2040_stamp.menu.freq.150.build.f_cpu=150000000L solderparty_rp2040_stamp.menu.freq.175=175 MHz (Overclock) @@ -9312,14 +9312,14 @@ solderparty_rp2040_stamppicoprobe.menu.flash.8388608_7340032.build.flash_length= solderparty_rp2040_stamppicoprobe.menu.flash.8388608_7340032.build.eeprom_start=276819968 solderparty_rp2040_stamppicoprobe.menu.flash.8388608_7340032.build.fs_start=269479936 solderparty_rp2040_stamppicoprobe.menu.flash.8388608_7340032.build.fs_end=276819968 -solderparty_rp2040_stamppicoprobe.menu.freq.133=133 MHz -solderparty_rp2040_stamppicoprobe.menu.freq.133.build.f_cpu=133000000L +solderparty_rp2040_stamppicoprobe.menu.freq.125=125 MHz +solderparty_rp2040_stamppicoprobe.menu.freq.125.build.f_cpu=125000000L solderparty_rp2040_stamppicoprobe.menu.freq.50=50 MHz solderparty_rp2040_stamppicoprobe.menu.freq.50.build.f_cpu=50000000L solderparty_rp2040_stamppicoprobe.menu.freq.100=100 MHz solderparty_rp2040_stamppicoprobe.menu.freq.100.build.f_cpu=100000000L -solderparty_rp2040_stamppicoprobe.menu.freq.125=125 MHz -solderparty_rp2040_stamppicoprobe.menu.freq.125.build.f_cpu=125000000L +solderparty_rp2040_stamppicoprobe.menu.freq.133=133 MHz +solderparty_rp2040_stamppicoprobe.menu.freq.133.build.f_cpu=133000000L solderparty_rp2040_stamppicoprobe.menu.freq.150=150 MHz (Overclock) solderparty_rp2040_stamppicoprobe.menu.freq.150.build.f_cpu=150000000L solderparty_rp2040_stamppicoprobe.menu.freq.175=175 MHz (Overclock) @@ -9475,14 +9475,14 @@ solderparty_rp2040_stamppicodebug.menu.flash.8388608_7340032.build.flash_length= solderparty_rp2040_stamppicodebug.menu.flash.8388608_7340032.build.eeprom_start=276819968 solderparty_rp2040_stamppicodebug.menu.flash.8388608_7340032.build.fs_start=269479936 solderparty_rp2040_stamppicodebug.menu.flash.8388608_7340032.build.fs_end=276819968 -solderparty_rp2040_stamppicodebug.menu.freq.133=133 MHz -solderparty_rp2040_stamppicodebug.menu.freq.133.build.f_cpu=133000000L +solderparty_rp2040_stamppicodebug.menu.freq.125=125 MHz +solderparty_rp2040_stamppicodebug.menu.freq.125.build.f_cpu=125000000L solderparty_rp2040_stamppicodebug.menu.freq.50=50 MHz solderparty_rp2040_stamppicodebug.menu.freq.50.build.f_cpu=50000000L solderparty_rp2040_stamppicodebug.menu.freq.100=100 MHz solderparty_rp2040_stamppicodebug.menu.freq.100.build.f_cpu=100000000L -solderparty_rp2040_stamppicodebug.menu.freq.125=125 MHz -solderparty_rp2040_stamppicodebug.menu.freq.125.build.f_cpu=125000000L +solderparty_rp2040_stamppicodebug.menu.freq.133=133 MHz +solderparty_rp2040_stamppicodebug.menu.freq.133.build.f_cpu=133000000L solderparty_rp2040_stamppicodebug.menu.freq.150=150 MHz (Overclock) solderparty_rp2040_stamppicodebug.menu.freq.150.build.f_cpu=150000000L solderparty_rp2040_stamppicodebug.menu.freq.175=175 MHz (Overclock) @@ -9684,14 +9684,14 @@ sparkfun_promicrorp2040.menu.flash.16777216_15728640.build.flash_length=1044480 sparkfun_promicrorp2040.menu.flash.16777216_15728640.build.eeprom_start=285208576 sparkfun_promicrorp2040.menu.flash.16777216_15728640.build.fs_start=269479936 sparkfun_promicrorp2040.menu.flash.16777216_15728640.build.fs_end=285208576 -sparkfun_promicrorp2040.menu.freq.133=133 MHz -sparkfun_promicrorp2040.menu.freq.133.build.f_cpu=133000000L +sparkfun_promicrorp2040.menu.freq.125=125 MHz +sparkfun_promicrorp2040.menu.freq.125.build.f_cpu=125000000L sparkfun_promicrorp2040.menu.freq.50=50 MHz sparkfun_promicrorp2040.menu.freq.50.build.f_cpu=50000000L sparkfun_promicrorp2040.menu.freq.100=100 MHz sparkfun_promicrorp2040.menu.freq.100.build.f_cpu=100000000L -sparkfun_promicrorp2040.menu.freq.125=125 MHz -sparkfun_promicrorp2040.menu.freq.125.build.f_cpu=125000000L +sparkfun_promicrorp2040.menu.freq.133=133 MHz +sparkfun_promicrorp2040.menu.freq.133.build.f_cpu=133000000L sparkfun_promicrorp2040.menu.freq.150=150 MHz (Overclock) sparkfun_promicrorp2040.menu.freq.150.build.f_cpu=150000000L sparkfun_promicrorp2040.menu.freq.175=175 MHz (Overclock) @@ -9895,14 +9895,14 @@ sparkfun_promicrorp2040picoprobe.menu.flash.16777216_15728640.build.flash_length sparkfun_promicrorp2040picoprobe.menu.flash.16777216_15728640.build.eeprom_start=285208576 sparkfun_promicrorp2040picoprobe.menu.flash.16777216_15728640.build.fs_start=269479936 sparkfun_promicrorp2040picoprobe.menu.flash.16777216_15728640.build.fs_end=285208576 -sparkfun_promicrorp2040picoprobe.menu.freq.133=133 MHz -sparkfun_promicrorp2040picoprobe.menu.freq.133.build.f_cpu=133000000L +sparkfun_promicrorp2040picoprobe.menu.freq.125=125 MHz +sparkfun_promicrorp2040picoprobe.menu.freq.125.build.f_cpu=125000000L sparkfun_promicrorp2040picoprobe.menu.freq.50=50 MHz sparkfun_promicrorp2040picoprobe.menu.freq.50.build.f_cpu=50000000L sparkfun_promicrorp2040picoprobe.menu.freq.100=100 MHz sparkfun_promicrorp2040picoprobe.menu.freq.100.build.f_cpu=100000000L -sparkfun_promicrorp2040picoprobe.menu.freq.125=125 MHz -sparkfun_promicrorp2040picoprobe.menu.freq.125.build.f_cpu=125000000L +sparkfun_promicrorp2040picoprobe.menu.freq.133=133 MHz +sparkfun_promicrorp2040picoprobe.menu.freq.133.build.f_cpu=133000000L sparkfun_promicrorp2040picoprobe.menu.freq.150=150 MHz (Overclock) sparkfun_promicrorp2040picoprobe.menu.freq.150.build.f_cpu=150000000L sparkfun_promicrorp2040picoprobe.menu.freq.175=175 MHz (Overclock) @@ -10106,14 +10106,14 @@ sparkfun_promicrorp2040picodebug.menu.flash.16777216_15728640.build.flash_length sparkfun_promicrorp2040picodebug.menu.flash.16777216_15728640.build.eeprom_start=285208576 sparkfun_promicrorp2040picodebug.menu.flash.16777216_15728640.build.fs_start=269479936 sparkfun_promicrorp2040picodebug.menu.flash.16777216_15728640.build.fs_end=285208576 -sparkfun_promicrorp2040picodebug.menu.freq.133=133 MHz -sparkfun_promicrorp2040picodebug.menu.freq.133.build.f_cpu=133000000L +sparkfun_promicrorp2040picodebug.menu.freq.125=125 MHz +sparkfun_promicrorp2040picodebug.menu.freq.125.build.f_cpu=125000000L sparkfun_promicrorp2040picodebug.menu.freq.50=50 MHz sparkfun_promicrorp2040picodebug.menu.freq.50.build.f_cpu=50000000L sparkfun_promicrorp2040picodebug.menu.freq.100=100 MHz sparkfun_promicrorp2040picodebug.menu.freq.100.build.f_cpu=100000000L -sparkfun_promicrorp2040picodebug.menu.freq.125=125 MHz -sparkfun_promicrorp2040picodebug.menu.freq.125.build.f_cpu=125000000L +sparkfun_promicrorp2040picodebug.menu.freq.133=133 MHz +sparkfun_promicrorp2040picodebug.menu.freq.133.build.f_cpu=133000000L sparkfun_promicrorp2040picodebug.menu.freq.150=150 MHz (Overclock) sparkfun_promicrorp2040picodebug.menu.freq.150.build.f_cpu=150000000L sparkfun_promicrorp2040picodebug.menu.freq.175=175 MHz (Overclock) @@ -10231,14 +10231,14 @@ upesy_rp2040_devkit.menu.flash.2097152_1048576.build.flash_length=1044480 upesy_rp2040_devkit.menu.flash.2097152_1048576.build.eeprom_start=270528512 upesy_rp2040_devkit.menu.flash.2097152_1048576.build.fs_start=269479936 upesy_rp2040_devkit.menu.flash.2097152_1048576.build.fs_end=270528512 -upesy_rp2040_devkit.menu.freq.133=133 MHz -upesy_rp2040_devkit.menu.freq.133.build.f_cpu=133000000L +upesy_rp2040_devkit.menu.freq.125=125 MHz +upesy_rp2040_devkit.menu.freq.125.build.f_cpu=125000000L upesy_rp2040_devkit.menu.freq.50=50 MHz upesy_rp2040_devkit.menu.freq.50.build.f_cpu=50000000L upesy_rp2040_devkit.menu.freq.100=100 MHz upesy_rp2040_devkit.menu.freq.100.build.f_cpu=100000000L -upesy_rp2040_devkit.menu.freq.125=125 MHz -upesy_rp2040_devkit.menu.freq.125.build.f_cpu=125000000L +upesy_rp2040_devkit.menu.freq.133=133 MHz +upesy_rp2040_devkit.menu.freq.133.build.f_cpu=133000000L upesy_rp2040_devkit.menu.freq.150=150 MHz (Overclock) upesy_rp2040_devkit.menu.freq.150.build.f_cpu=150000000L upesy_rp2040_devkit.menu.freq.175=175 MHz (Overclock) @@ -10358,14 +10358,14 @@ upesy_rp2040_devkitpicoprobe.menu.flash.2097152_1048576.build.flash_length=10444 upesy_rp2040_devkitpicoprobe.menu.flash.2097152_1048576.build.eeprom_start=270528512 upesy_rp2040_devkitpicoprobe.menu.flash.2097152_1048576.build.fs_start=269479936 upesy_rp2040_devkitpicoprobe.menu.flash.2097152_1048576.build.fs_end=270528512 -upesy_rp2040_devkitpicoprobe.menu.freq.133=133 MHz -upesy_rp2040_devkitpicoprobe.menu.freq.133.build.f_cpu=133000000L +upesy_rp2040_devkitpicoprobe.menu.freq.125=125 MHz +upesy_rp2040_devkitpicoprobe.menu.freq.125.build.f_cpu=125000000L upesy_rp2040_devkitpicoprobe.menu.freq.50=50 MHz upesy_rp2040_devkitpicoprobe.menu.freq.50.build.f_cpu=50000000L upesy_rp2040_devkitpicoprobe.menu.freq.100=100 MHz upesy_rp2040_devkitpicoprobe.menu.freq.100.build.f_cpu=100000000L -upesy_rp2040_devkitpicoprobe.menu.freq.125=125 MHz -upesy_rp2040_devkitpicoprobe.menu.freq.125.build.f_cpu=125000000L +upesy_rp2040_devkitpicoprobe.menu.freq.133=133 MHz +upesy_rp2040_devkitpicoprobe.menu.freq.133.build.f_cpu=133000000L upesy_rp2040_devkitpicoprobe.menu.freq.150=150 MHz (Overclock) upesy_rp2040_devkitpicoprobe.menu.freq.150.build.f_cpu=150000000L upesy_rp2040_devkitpicoprobe.menu.freq.175=175 MHz (Overclock) @@ -10485,14 +10485,14 @@ upesy_rp2040_devkitpicodebug.menu.flash.2097152_1048576.build.flash_length=10444 upesy_rp2040_devkitpicodebug.menu.flash.2097152_1048576.build.eeprom_start=270528512 upesy_rp2040_devkitpicodebug.menu.flash.2097152_1048576.build.fs_start=269479936 upesy_rp2040_devkitpicodebug.menu.flash.2097152_1048576.build.fs_end=270528512 -upesy_rp2040_devkitpicodebug.menu.freq.133=133 MHz -upesy_rp2040_devkitpicodebug.menu.freq.133.build.f_cpu=133000000L +upesy_rp2040_devkitpicodebug.menu.freq.125=125 MHz +upesy_rp2040_devkitpicodebug.menu.freq.125.build.f_cpu=125000000L upesy_rp2040_devkitpicodebug.menu.freq.50=50 MHz upesy_rp2040_devkitpicodebug.menu.freq.50.build.f_cpu=50000000L upesy_rp2040_devkitpicodebug.menu.freq.100=100 MHz upesy_rp2040_devkitpicodebug.menu.freq.100.build.f_cpu=100000000L -upesy_rp2040_devkitpicodebug.menu.freq.125=125 MHz -upesy_rp2040_devkitpicodebug.menu.freq.125.build.f_cpu=125000000L +upesy_rp2040_devkitpicodebug.menu.freq.133=133 MHz +upesy_rp2040_devkitpicodebug.menu.freq.133.build.f_cpu=133000000L upesy_rp2040_devkitpicodebug.menu.freq.150=150 MHz (Overclock) upesy_rp2040_devkitpicodebug.menu.freq.150.build.f_cpu=150000000L upesy_rp2040_devkitpicodebug.menu.freq.175=175 MHz (Overclock) @@ -10610,14 +10610,14 @@ wiznet_5100s_evb_pico.menu.flash.2097152_1048576.build.flash_length=1044480 wiznet_5100s_evb_pico.menu.flash.2097152_1048576.build.eeprom_start=270528512 wiznet_5100s_evb_pico.menu.flash.2097152_1048576.build.fs_start=269479936 wiznet_5100s_evb_pico.menu.flash.2097152_1048576.build.fs_end=270528512 -wiznet_5100s_evb_pico.menu.freq.133=133 MHz -wiznet_5100s_evb_pico.menu.freq.133.build.f_cpu=133000000L +wiznet_5100s_evb_pico.menu.freq.125=125 MHz +wiznet_5100s_evb_pico.menu.freq.125.build.f_cpu=125000000L wiznet_5100s_evb_pico.menu.freq.50=50 MHz wiznet_5100s_evb_pico.menu.freq.50.build.f_cpu=50000000L wiznet_5100s_evb_pico.menu.freq.100=100 MHz wiznet_5100s_evb_pico.menu.freq.100.build.f_cpu=100000000L -wiznet_5100s_evb_pico.menu.freq.125=125 MHz -wiznet_5100s_evb_pico.menu.freq.125.build.f_cpu=125000000L +wiznet_5100s_evb_pico.menu.freq.133=133 MHz +wiznet_5100s_evb_pico.menu.freq.133.build.f_cpu=133000000L wiznet_5100s_evb_pico.menu.freq.150=150 MHz (Overclock) wiznet_5100s_evb_pico.menu.freq.150.build.f_cpu=150000000L wiznet_5100s_evb_pico.menu.freq.175=175 MHz (Overclock) @@ -10737,14 +10737,14 @@ wiznet_5100s_evb_picopicoprobe.menu.flash.2097152_1048576.build.flash_length=104 wiznet_5100s_evb_picopicoprobe.menu.flash.2097152_1048576.build.eeprom_start=270528512 wiznet_5100s_evb_picopicoprobe.menu.flash.2097152_1048576.build.fs_start=269479936 wiznet_5100s_evb_picopicoprobe.menu.flash.2097152_1048576.build.fs_end=270528512 -wiznet_5100s_evb_picopicoprobe.menu.freq.133=133 MHz -wiznet_5100s_evb_picopicoprobe.menu.freq.133.build.f_cpu=133000000L +wiznet_5100s_evb_picopicoprobe.menu.freq.125=125 MHz +wiznet_5100s_evb_picopicoprobe.menu.freq.125.build.f_cpu=125000000L wiznet_5100s_evb_picopicoprobe.menu.freq.50=50 MHz wiznet_5100s_evb_picopicoprobe.menu.freq.50.build.f_cpu=50000000L wiznet_5100s_evb_picopicoprobe.menu.freq.100=100 MHz wiznet_5100s_evb_picopicoprobe.menu.freq.100.build.f_cpu=100000000L -wiznet_5100s_evb_picopicoprobe.menu.freq.125=125 MHz -wiznet_5100s_evb_picopicoprobe.menu.freq.125.build.f_cpu=125000000L +wiznet_5100s_evb_picopicoprobe.menu.freq.133=133 MHz +wiznet_5100s_evb_picopicoprobe.menu.freq.133.build.f_cpu=133000000L wiznet_5100s_evb_picopicoprobe.menu.freq.150=150 MHz (Overclock) wiznet_5100s_evb_picopicoprobe.menu.freq.150.build.f_cpu=150000000L wiznet_5100s_evb_picopicoprobe.menu.freq.175=175 MHz (Overclock) @@ -10864,14 +10864,14 @@ wiznet_5100s_evb_picopicodebug.menu.flash.2097152_1048576.build.flash_length=104 wiznet_5100s_evb_picopicodebug.menu.flash.2097152_1048576.build.eeprom_start=270528512 wiznet_5100s_evb_picopicodebug.menu.flash.2097152_1048576.build.fs_start=269479936 wiznet_5100s_evb_picopicodebug.menu.flash.2097152_1048576.build.fs_end=270528512 -wiznet_5100s_evb_picopicodebug.menu.freq.133=133 MHz -wiznet_5100s_evb_picopicodebug.menu.freq.133.build.f_cpu=133000000L +wiznet_5100s_evb_picopicodebug.menu.freq.125=125 MHz +wiznet_5100s_evb_picopicodebug.menu.freq.125.build.f_cpu=125000000L wiznet_5100s_evb_picopicodebug.menu.freq.50=50 MHz wiznet_5100s_evb_picopicodebug.menu.freq.50.build.f_cpu=50000000L wiznet_5100s_evb_picopicodebug.menu.freq.100=100 MHz wiznet_5100s_evb_picopicodebug.menu.freq.100.build.f_cpu=100000000L -wiznet_5100s_evb_picopicodebug.menu.freq.125=125 MHz -wiznet_5100s_evb_picopicodebug.menu.freq.125.build.f_cpu=125000000L +wiznet_5100s_evb_picopicodebug.menu.freq.133=133 MHz +wiznet_5100s_evb_picopicodebug.menu.freq.133.build.f_cpu=133000000L wiznet_5100s_evb_picopicodebug.menu.freq.150=150 MHz (Overclock) wiznet_5100s_evb_picopicodebug.menu.freq.150.build.f_cpu=150000000L wiznet_5100s_evb_picopicodebug.menu.freq.175=175 MHz (Overclock) @@ -11001,14 +11001,14 @@ generic.menu.flash.16777216_8388608.build.flash_length=8384512 generic.menu.flash.16777216_8388608.build.eeprom_start=285208576 generic.menu.flash.16777216_8388608.build.fs_start=276819968 generic.menu.flash.16777216_8388608.build.fs_end=285208576 -generic.menu.freq.133=133 MHz -generic.menu.freq.133.build.f_cpu=133000000L +generic.menu.freq.125=125 MHz +generic.menu.freq.125.build.f_cpu=125000000L generic.menu.freq.50=50 MHz generic.menu.freq.50.build.f_cpu=50000000L generic.menu.freq.100=100 MHz generic.menu.freq.100.build.f_cpu=100000000L -generic.menu.freq.125=125 MHz -generic.menu.freq.125.build.f_cpu=125000000L +generic.menu.freq.133=133 MHz +generic.menu.freq.133.build.f_cpu=133000000L generic.menu.freq.150=150 MHz (Overclock) generic.menu.freq.150.build.f_cpu=150000000L generic.menu.freq.175=175 MHz (Overclock) @@ -11156,14 +11156,14 @@ genericpicoprobe.menu.flash.16777216_8388608.build.flash_length=8384512 genericpicoprobe.menu.flash.16777216_8388608.build.eeprom_start=285208576 genericpicoprobe.menu.flash.16777216_8388608.build.fs_start=276819968 genericpicoprobe.menu.flash.16777216_8388608.build.fs_end=285208576 -genericpicoprobe.menu.freq.133=133 MHz -genericpicoprobe.menu.freq.133.build.f_cpu=133000000L +genericpicoprobe.menu.freq.125=125 MHz +genericpicoprobe.menu.freq.125.build.f_cpu=125000000L genericpicoprobe.menu.freq.50=50 MHz genericpicoprobe.menu.freq.50.build.f_cpu=50000000L genericpicoprobe.menu.freq.100=100 MHz genericpicoprobe.menu.freq.100.build.f_cpu=100000000L -genericpicoprobe.menu.freq.125=125 MHz -genericpicoprobe.menu.freq.125.build.f_cpu=125000000L +genericpicoprobe.menu.freq.133=133 MHz +genericpicoprobe.menu.freq.133.build.f_cpu=133000000L genericpicoprobe.menu.freq.150=150 MHz (Overclock) genericpicoprobe.menu.freq.150.build.f_cpu=150000000L genericpicoprobe.menu.freq.175=175 MHz (Overclock) @@ -11311,14 +11311,14 @@ genericpicodebug.menu.flash.16777216_8388608.build.flash_length=8384512 genericpicodebug.menu.flash.16777216_8388608.build.eeprom_start=285208576 genericpicodebug.menu.flash.16777216_8388608.build.fs_start=276819968 genericpicodebug.menu.flash.16777216_8388608.build.fs_end=285208576 -genericpicodebug.menu.freq.133=133 MHz -genericpicodebug.menu.freq.133.build.f_cpu=133000000L +genericpicodebug.menu.freq.125=125 MHz +genericpicodebug.menu.freq.125.build.f_cpu=125000000L genericpicodebug.menu.freq.50=50 MHz genericpicodebug.menu.freq.50.build.f_cpu=50000000L genericpicodebug.menu.freq.100=100 MHz genericpicodebug.menu.freq.100.build.f_cpu=100000000L -genericpicodebug.menu.freq.125=125 MHz -genericpicodebug.menu.freq.125.build.f_cpu=125000000L +genericpicodebug.menu.freq.133=133 MHz +genericpicodebug.menu.freq.133.build.f_cpu=133000000L genericpicodebug.menu.freq.150=150 MHz (Overclock) genericpicodebug.menu.freq.150.build.f_cpu=150000000L genericpicodebug.menu.freq.175=175 MHz (Overclock) diff --git a/tools/makeboards.py b/tools/makeboards.py index e49da304..a887e325 100755 --- a/tools/makeboards.py +++ b/tools/makeboards.py @@ -32,7 +32,7 @@ def BuildDebugLevel(name): print("%s.menu.dbglvl.%s.build.debug_level=%s" % (name, l[0], l[1])) def BuildFreq(name): - for f in [ 133, 50, 100, 125, 150, 175, 200, 225, 250, 275, 300]: + for f in [ 125, 50, 100, 133, 150, 175, 200, 225, 250, 275, 300]: warn = "" if f > 133: warn = " (Overclock)" print("%s.menu.freq.%s=%s MHz%s" % (name, f, f, warn)) -- 2.54.0 From bd3e9a17ae9ae0587ec518caa9e4ee01a552ffb9 Mon Sep 17 00:00:00 2001 From: "Earle F. Philhower, III" Date: Sun, 24 Apr 2022 20:39:53 -0700 Subject: [PATCH 22/22] Update README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d5c625a8..1aa80f18 100644 --- a/README.md +++ b/README.md @@ -171,6 +171,7 @@ If you want to contribute or have bugfixes, drop me a note at