Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
6735743
Add nanoFramework.Hardware.Rp2040 PIO native assembly
begeistert Jun 25, 2026
1282a80
Bump-allocate PIO instruction memory, relocate JMP
begeistert Jun 25, 2026
1cc4be2
Add pio_gpio_init and set_consecutive_pindirs interop
begeistert Jun 25, 2026
1de0417
Wire the PIO native interop into RP_PICO2_RP2350
begeistert Jun 25, 2026
3c91fd6
Bring the PIO block out of reset before configuring it
begeistert Jun 25, 2026
b3f64e3
RP2040 PIO: FifoJoin/GpioBase, real SM/program allocation, FIFO ops, …
begeistert Jun 26, 2026
68b0a75
Fix PIO interop: SM-index bounds, ISR critical section, Pico W vector…
begeistert Jun 26, 2026
eaf988b
RP2040 PIO: RP2350 IRQ, Pico W guard, cooperative FIFO wait, status/l…
begeistert Jun 26, 2026
976167b
Rename interop assembly nanoFramework.Hardware.Rp2040 -> nanoFramewor…
begeistert Jun 26, 2026
84feca9
Bound the TX-FIFO drain loop with the same timeout guard as Put/Get
begeistert Jun 26, 2026
a5380ae
PIO: regenerate native interop for the managed event/Dispose addition…
begeistert Jun 26, 2026
9ef9b54
PIO: guard PioIrqVector behind !RP_PIO_REQUIRED so the Pico W build i…
begeistert Jun 26, 2026
1bee7dd
PIO: fix leftover Hardware.Rp2040 display labels after the Rpi rename
begeistert Jun 26, 2026
9a2d8e1
PIO: standard license headers, fix file encoding, drop redundant CMak…
begeistert Jun 26, 2026
fd5d3e3
PIO: make nanoFramework.Hardware.Rpi a core library (skip the Interop…
begeistert Jun 26, 2026
3565d25
PIO: harden native input validation and decouple the PIO reset release
begeistert Jun 26, 2026
ec7f42b
Rename the native assembly to nanoFramework.Hardware.Pico
begeistert Jun 26, 2026
50447df
Update the build glue for the Pico rename
begeistert Jun 26, 2026
5627bc6
Harden PIO native input validation
begeistert Jun 26, 2026
c6f9048
Document PIO support on the Pico targets
begeistert Jun 26, 2026
850073f
Fix DrainTxFifo to drain the whole TX FIFO
begeistert Jun 26, 2026
c06a191
Fix RP2350 GPIO 32-47 aliasing in SetConsecutivePinDirs
begeistert Jun 26, 2026
fe75957
Regenerate native interop table for the FromEncoded metadata overload
begeistert Jun 26, 2026
b885c6f
Prototype: DMA-backed bulk PIO read for PioStateMachine.Read
begeistert Jun 29, 2026
34dee4f
Update Pico target README PIO examples for the renamed managed enums
begeistert Jun 29, 2026
7819b8b
Implement PIO NativeRead with a native CLR thread-yield (WaitEvents)
begeistert Jul 1, 2026
6b4fc07
Implement PIO NativeWrite (TX mirror of NativeRead)
begeistert Jul 1, 2026
1fb0893
Trim NativeRead/NativeWrite comments per review
begeistert Jul 1, 2026
4f32d28
Name the FSTAT status bits in the PIO state-machine native
begeistert Jul 11, 2026
3e1d438
Delete the double new lines generated by the stub generator
begeistert Jul 24, 2026
c36f378
Clean up PIO native code for type safety and style consistency
begeistert Jul 24, 2026
497ec23
Code style fixes
nfbot Jul 24, 2026
db9ee10
Merge pull request #1 from nanoframework/nfbot/clang-format-fix/a515b…
begeistert Jul 24, 2026
d569478
Merge remote-tracking branch 'fork/feat/rp2040-pio-hardware' into fea…
begeistert Jul 24, 2026
ef57fcf
Enhance PIO native code style and readability
begeistert Jul 24, 2026
56568f8
Refactor PIO native code for robustness and readability
begeistert Jul 25, 2026
c7afd20
Pico.PIO: Remove deprecated IRQ driver and handlers
begeistert Jul 25, 2026
7c18610
Pico.PIO: Add validation macros and remove legacy reset helper
begeistert Jul 25, 2026
e2d2f77
Pico.PIO: Refactor native methods for common PIO HAL interaction
begeistert Jul 25, 2026
4007ab3
Pico.PIO: Implement managed IRQ eventing
begeistert Jul 25, 2026
ac05552
Pico.PIO: Update assembly checksum
begeistert Jul 25, 2026
2275aa0
Merge branch 'main' into feat/rp2040-pio-hardware
begeistert Jul 25, 2026
5bf0f3b
Remove obsolete PioIrqDriver components
begeistert Jul 25, 2026
ad1df21
Rename PIO event definitions to PICO_PIO
begeistert Jul 25, 2026
1327a40
Correctly extract state machine IRQ flags
begeistert Jul 25, 2026
dea9b6b
Add VALIDATE_NOT_DISPOSED macro for nanoframework.Hardware.Pico
begeistert Jul 26, 2026
c2f0a07
Remove unused PioFromIndex helper function
begeistert Jul 26, 2026
69c857a
Add PioInterruptFlags enum
begeistert Jul 26, 2026
a1dac75
Standardize method argument handling and add disposal checks for nano…
begeistert Jul 26, 2026
5f32931
Improve pin configuration validation in NativeSetPinsConfig for Pico
begeistert Jul 26, 2026
19b27c9
Allow floating-point clock divisor for PIO state machine
begeistert Jul 26, 2026
907d719
Add robust parameter validation to DMA Read/Write methods for Pico
begeistert Jul 26, 2026
90e1f42
Update nanoFramework.Hardware.Pico native assembly GUID
begeistert Jul 26, 2026
36ee8f5
Refactor PIO native methods to instance members
begeistert Jul 26, 2026
5268b10
Refactor PIO state machine native methods to instance members
begeistert Jul 26, 2026
28fc628
Add PIO Low-Level Driver for RP2040 and RP2350 targets
begeistert Jul 26, 2026
76d806a
Refactor PIO DMA channel disable logic
begeistert Jul 26, 2026
2ca62c6
Rewrite the PIO binding on top of the ChibiOS RP low level drivers
begeistert Jul 27, 2026
190a03d
Build the Pico binding at -O0 in Debug so gdb can inspect it
begeistert Jul 27, 2026
5ecb386
Park the blocking FIFO calls instead of spinning, and claim state mac…
begeistert Jul 27, 2026
8256fce
Remove the changes from hardware.Pico to debug
begeistert Jul 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion CMake/Modules/FindNF_NativeAssemblies.cmake
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#
#
# Copyright (c) .NET Foundation and Contributors
# See LICENSE file in the project root for full license information.
#
Expand Down Expand Up @@ -42,6 +42,7 @@ option(API_nanoFramework.Networking.Thread "option for nanoFramewor

# Stm32 only
option(API_Hardware.Stm32 "option for Hardware.Stm32")
option(API_Hardware.Pico "option for Hardware.Pico")

# TI CC13xxCC26xx
option(API_nanoFramework.TI.EasyLink "option for nanoFramework.TI.EasyLink API")
Expand Down Expand Up @@ -270,6 +271,12 @@ if(API_Hardware.Stm32)
PerformSettingsForApiEntry("nanoFramework.Hardware.Stm32")
endif()

# Hardware.Pico
if(API_Hardware.Pico)
##### API name here (doted name)
PerformSettingsForApiEntry("nanoFramework.Hardware.Pico")
endif()

# nanoFramework.Device.Can
if(API_nanoFramework.Device.Can)
##### API name here (doted name)
Expand Down
46 changes: 46 additions & 0 deletions CMake/Modules/FindnanoFramework.Hardware.Pico.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#
# Copyright (c) .NET Foundation and Contributors
# See LICENSE file in the project root for full license information.
#


# native code directory
set(BASE_PATH_FOR_THIS_MODULE "${BASE_PATH_FOR_CLASS_LIBRARIES_MODULES}/nanoFramework.Hardware.Pico")


# set include directories
list(APPEND nanoFramework.Hardware.Pico_INCLUDE_DIRS "${BASE_PATH_FOR_THIS_MODULE}")


# source files
set(nanoFramework.Hardware.Pico_SRCS

nanoFramework_hardware_pico_native.cpp
nanoFramework_hardware_pico_native_nanoFramework_Hardware_Pico_Pio_Pio.cpp
nanoFramework_hardware_pico_native_nanoFramework_Hardware_Pico_Pio_PioBlock.cpp
nanoFramework_hardware_pico_native_nanoFramework_Hardware_Pico_Pio_PioStateMachine.cpp
)

foreach(SRC_FILE ${nanoFramework.Hardware.Pico_SRCS})

set(nanoFramework.Hardware.Pico_SRC_FILE SRC_FILE-NOTFOUND)

find_file(nanoFramework.Hardware.Pico_SRC_FILE ${SRC_FILE}
PATHS
${BASE_PATH_FOR_THIS_MODULE}

CMAKE_FIND_ROOT_PATH_BOTH
)

if (BUILD_VERBOSE)
message("${SRC_FILE} >> ${nanoFramework.Hardware.Pico_SRC_FILE}")
endif()

list(APPEND nanoFramework.Hardware.Pico_SOURCES ${nanoFramework.Hardware.Pico_SRC_FILE})

endforeach()


include(FindPackageHandleStandardArgs)

FIND_PACKAGE_HANDLE_STANDARD_ARGS(nanoFramework.Hardware.Pico DEFAULT_MSG nanoFramework.Hardware.Pico_INCLUDE_DIRS nanoFramework.Hardware.Pico_SOURCES)
1 change: 1 addition & 0 deletions CMake/Modules/NF_Kconfig.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ set(_NF_KCONFIG_API_MAP

# Platform-specific APIs
"API_HARDWARE_STM32|API_Hardware.Stm32"
"API_HARDWARE_PICO|API_Hardware.Pico"
"API_HARDWARE_ESP32|API_Hardware.Esp32"
"API_NANOFRAMEWORK_HARDWARE_ESP32_RMT|API_nanoFramework.Hardware.Esp32.Rmt"
"API_NANOFRAMEWORK_HARDWARE_TI|API_nanoFramework.Hardware.TI"
Expand Down
5 changes: 5 additions & 0 deletions Kconfig.apis
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,11 @@ config API_HARDWARE_STM32
depends on RTOS_CHIBIOS
default n

config API_HARDWARE_PICO
bool "Hardware.Pico"
depends on RTOS_CHIBIOS
default n

config API_HARDWARE_ESP32
bool "Hardware.Esp32"
depends on RTOS_ESP32
Expand Down
5 changes: 5 additions & 0 deletions src/CLR/Core/Hardware/Hardware.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,11 @@ void CLR_HW_Hardware::ProcessActivity()
eventsCLR |= Event_StorageIo;
}

if (events & SYSTEM_EVENT_FLAG_PICOPIO)
{
eventsCLR |= Event_PicoPio;
}

if (events & SYSTEM_EVENT_FLAG_RADIO)
{
eventsCLR |= Event_Radio;
Expand Down
10 changes: 5 additions & 5 deletions src/CLR/Include/nanoCLR_Hardware.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@ struct CLR_HW_Hardware
static const CLR_UINT32 c_Default_PowerLevel = PowerLevel__Sleep;
static const CLR_UINT32 c_Default_WakeupEvents =
SYSTEM_EVENT_FLAG_COM_IN | SYSTEM_EVENT_FLAG_COM_OUT | SYSTEM_EVENT_FLAG_STORAGE_IO |
SYSTEM_EVENT_FLAG_SYSTEM_TIMER | SYSTEM_EVENT_FLAG_USB_IN | SYSTEM_EVENT_FLAG_USB_OUT |
SYSTEM_EVENT_FLAG_SPI_MASTER | SYSTEM_EVENT_FLAG_I2C_MASTER | SYSTEM_EVENT_FLAG_I2C_SLAVE |
SYSTEM_EVENT_HW_INTERRUPT | SYSTEM_EVENT_FLAG_SOCKET | SYSTEM_EVENT_FLAG_DEBUGGER_ACTIVITY |
SYSTEM_EVENT_FLAG_MESSAGING_ACTIVITY | SYSTEM_EVENT_FLAG_ONEWIRE_MASTER | SYSTEM_EVENT_FLAG_RADIO |
SYSTEM_EVENT_FLAG_WIFI_STATION | SYSTEM_EVENT_FLAG_BLUETOOTH;
SYSTEM_EVENT_FLAG_PICOPIO | SYSTEM_EVENT_FLAG_SYSTEM_TIMER | SYSTEM_EVENT_FLAG_USB_IN |
SYSTEM_EVENT_FLAG_USB_OUT | SYSTEM_EVENT_FLAG_SPI_MASTER | SYSTEM_EVENT_FLAG_I2C_MASTER |
SYSTEM_EVENT_FLAG_I2C_SLAVE | SYSTEM_EVENT_HW_INTERRUPT | SYSTEM_EVENT_FLAG_SOCKET |
SYSTEM_EVENT_FLAG_DEBUGGER_ACTIVITY | SYSTEM_EVENT_FLAG_MESSAGING_ACTIVITY | SYSTEM_EVENT_FLAG_ONEWIRE_MASTER |
SYSTEM_EVENT_FLAG_RADIO | SYSTEM_EVENT_FLAG_WIFI_STATION | SYSTEM_EVENT_FLAG_BLUETOOTH;

//--//

Expand Down
1 change: 1 addition & 0 deletions src/CLR/Include/nanoCLR_Runtime.h
Original file line number Diff line number Diff line change
Expand Up @@ -3441,6 +3441,7 @@ typedef enum Events
Event_SerialPortIn = 0x00000002,
Event_SerialPortOut = 0x00000004,
Event_EndPoint = 0x00000008,
Event_PicoPio = 0x00000010,
Event_StorageIo = 0x00000020,
Event_I2cMaster = 0x00000080,
Event_SpiMaster = 0x00000100,
Expand Down
2 changes: 2 additions & 0 deletions src/HAL/Include/nanoHAL_v2.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ typedef enum SLEEP_LEVEL
#define SYSTEM_EVENT_FLAG_COM_IN 0x00000001
#define SYSTEM_EVENT_FLAG_COM_OUT 0x00000002
#define SYSTEM_EVENT_FLAG_STORAGE_IO 0x00000004
#define SYSTEM_EVENT_FLAG_PICOPIO 0x00000008
#define SYSTEM_EVENT_FLAG_SYSTEM_TIMER 0x00000010
#define SYSTEM_EVENT_FLAG_USB_IN 0x00000020
#define SYSTEM_EVENT_FLAG_USB_OUT 0x00000040
Expand Down Expand Up @@ -115,6 +116,7 @@ typedef enum SLEEP_LEVEL
#define EVENT_TOUCH 120
#define EVENT_GESTURE 130
#define EVENT_OPENTHREAD 140
#define EVENT_PICO_PIO 160

#define PAL_EVENT_TOUCH 0x1
#define PAL_EVENT_KEY 0x2
Expand Down
5 changes: 5 additions & 0 deletions targets/ChibiOS/PICO2_RP2350/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@ list(APPEND TARGET_CHIBIOS_COMMON_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/Target_Bl
list(APPEND TARGET_CHIBIOS_COMMON_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/target_stubs.cpp")
list(APPEND TARGET_CHIBIOS_COMMON_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/target_core1_stubs.c")

# PIO LLD sources
list(APPEND TARGET_CHIBIOS_NANOCLR_INCLUDE_DIRS "${chibios_SOURCE_DIR}/os/hal/ports/RP/LLD/PIOv1")
list(APPEND TARGET_CHIBIOS_NANOCLR_SOURCES "${chibios_SOURCE_DIR}/os/hal/ports/RP/LLD/PIOv1/rp_pio.c")

nf_setup_target_build(
HAS_NANOBOOTER

Expand All @@ -31,6 +35,7 @@ nf_setup_target_build(

CLR_EXTRA_COMPILE_DEFINITIONS
-DRUNTIME_MEMORY_PROFILE__small=1
-DRP_PIO_REQUIRED=1
# RP flash is XIP-mapped and shared with code execution; this flag enables
# runtime handling that avoids USB/WP activity while XIP flash operations are in progress.
-DTARGET_XIP_FLASH_BLOCKS_USB=1
Expand Down
29 changes: 29 additions & 0 deletions targets/ChibiOS/PICO2_RP2350/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,34 @@ int raw = tempChannel.ReadValue();
- **Resolution:** 12-bit (0–4095)
- **Reference voltage:** 3.3V (internal)

### PIO (Programmable I/O)

The RP2350's **three PIO blocks** (4 state machines each) are exposed through the `nanoFramework.Hardware.Pico` library. Write small PIO programs with the inline `PioAssembler`, load them onto a block and run them on a state machine — useful for precise or custom protocols (WS2812, bit-banged SPI/UART, etc.) the fixed peripherals don't cover.

```csharp
using nanoFramework.Hardware.Pico.Pio;

// pull a word and drive its low bit onto the OUT pin
var asm = new PioAssembler();
PioLabel loop = asm.DefineLabel();
asm.MarkLabel(loop);
asm.Pull(ifEmpty: false, block: true);
asm.Out(DestinationOperand.Pins, 1);
asm.Jmp(PioCondition.Always, loop);
PioProgram program = asm.Build();

PioBlock pio = Pio.Get(0);
uint offset = pio.AddProgram(program);
PioStateMachine sm = pio.ClaimStateMachine();
sm.Init(offset, PioStateMachineConfig.FromProgram(program, (int)offset).OutPins(25, 1));
pio.InitGpio(25);
sm.SetConsecutivePinDirs(25, 1, true);
sm.Enabled = true;
sm.Put(1); // drive the on-board LED
```

> Provided by the `nanoFramework.Hardware.Pico` NuGet package. State machine interrupts surface as the managed `PioBlock.Interrupt` event.

## Pico Board Pinout Reference

```
Expand Down Expand Up @@ -182,6 +210,7 @@ Key CMake preset options (`CMakePresets.json`):
"API_System.Device.I2c": "ON",
"API_System.Device.Pwm": "ON",
"API_System.Device.Adc": "ON",
"API_Hardware.Pico": "ON",
"USE_RNG": "OFF"
}
```
1 change: 1 addition & 0 deletions targets/ChibiOS/PICO2_RP2350/defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ CONFIG_API_SYSTEM_IO_PORTS=y
CONFIG_API_NANOFRAMEWORK_RESOURCEMANAGER=y
CONFIG_API_NANOFRAMEWORK_SYSTEM_COLLECTIONS=y
CONFIG_API_NANOFRAMEWORK_SYSTEM_TEXT=y
CONFIG_API_HARDWARE_PICO=y
# CONFIG_CHIBIOS_CONTRIB_REQUIRED is not set
# CONFIG_CHIBIOS_SWO_OUTPUT is not set
# CONFIG_NF_BUILD_RTM is not set
Expand Down
1 change: 1 addition & 0 deletions targets/ChibiOS/PICO2_RP2350_W/defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ CONFIG_API_SYSTEM_DEVICE_WIFI=y
CONFIG_API_SYSTEM_IO_FILESYSTEM=y
CONFIG_API_SYSTEM_IO_PORTS=y
CONFIG_API_SYSTEM_NET=y
CONFIG_API_HARDWARE_PICO=y
CONFIG_API_NANOFRAMEWORK_RESOURCEMANAGER=y
CONFIG_API_NANOFRAMEWORK_SYSTEM_COLLECTIONS=y
CONFIG_API_NANOFRAMEWORK_SYSTEM_TEXT=y
Expand Down
6 changes: 6 additions & 0 deletions targets/ChibiOS/PICO_RP2040/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@ list(APPEND TARGET_CHIBIOS_COMMON_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/comm
list(APPEND TARGET_CHIBIOS_COMMON_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/Target_BlockStorage_RP2040FlashDriver.c")
list(APPEND TARGET_CHIBIOS_COMMON_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/target_stubs.cpp")


# PIO LLD sources
list(APPEND TARGET_CHIBIOS_NANOCLR_INCLUDE_DIRS "${chibios_SOURCE_DIR}/os/hal/ports/RP/LLD/PIOv1")
list(APPEND TARGET_CHIBIOS_NANOCLR_SOURCES "${chibios_SOURCE_DIR}/os/hal/ports/RP/LLD/PIOv1/rp_pio.c")

nf_setup_target_build(
HAS_NANOBOOTER

Expand All @@ -31,6 +36,7 @@ nf_setup_target_build(
CLR_EXTRA_COMPILE_DEFINITIONS
-DRUNTIME_MEMORY_PROFILE__small=1
-DTARGET_XIP_FLASH_BLOCKS_USB=1
-DRP_PIO_REQUIRED=1
LFS_CONFIG=lfs_config.h

BOOTER_EXTRA_LINKMAP_PROPERTIES
Expand Down
29 changes: 29 additions & 0 deletions targets/ChibiOS/PICO_RP2040/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,34 @@ int raw = tempChannel.ReadValue();
- **Resolution:** 12-bit (0–4095)
- **Reference voltage:** 3.3V (internal)

### PIO (Programmable I/O)

The RP2040's **two PIO blocks** (4 state machines each) are exposed through the `nanoFramework.Hardware.Pico` library. Write small PIO programs with the inline `PioAssembler`, load them onto a block and run them on a state machine — useful for precise or custom protocols (WS2812, bit-banged SPI/UART, etc.) the fixed peripherals don't cover.

```csharp
using nanoFramework.Hardware.Pico.Pio;

// pull a word and drive its low bit onto the OUT pin
var asm = new PioAssembler();
PioLabel loop = asm.DefineLabel();
asm.MarkLabel(loop);
asm.Pull(ifEmpty: false, block: true);
asm.Out(DestinationOperand.Pins, 1);
asm.Jmp(PioCondition.Always, loop);
PioProgram program = asm.Build();

PioBlock pio = Pio.Get(0);
uint offset = pio.AddProgram(program);
PioStateMachine sm = pio.ClaimStateMachine();
sm.Init(offset, PioStateMachineConfig.FromProgram(program, (int)offset).OutPins(25, 1));
pio.InitGpio(25);
sm.SetConsecutivePinDirs(25, 1, true);
sm.Enabled = true;
sm.Put(1); // drive the on-board LED
```

> Provided by the `nanoFramework.Hardware.Pico` NuGet package. State machine interrupts surface as the managed `PioBlock.Interrupt` event.

## Pico Board Pinout Reference

```
Expand Down Expand Up @@ -185,6 +213,7 @@ Key CMake preset options (`CMakePresets.json`):
"API_System.Device.I2c": "ON",
"API_System.Device.Pwm": "ON",
"API_System.Device.Adc": "ON",
"API_Hardware.Pico": "ON",
"USE_RNG": "OFF"
}
```
1 change: 1 addition & 0 deletions targets/ChibiOS/PICO_RP2040_W/defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ CONFIG_API_SYSTEM_DEVICE_WIFI=y
CONFIG_API_SYSTEM_IO_FILESYSTEM=y
CONFIG_API_SYSTEM_IO_PORTS=y
CONFIG_API_SYSTEM_NET=y
CONFIG_API_HARDWARE_RP2040=y
CONFIG_API_NANOFRAMEWORK_RESOURCEMANAGER=y
CONFIG_API_NANOFRAMEWORK_SYSTEM_COLLECTIONS=y
CONFIG_API_NANOFRAMEWORK_SYSTEM_TEXT=y
Expand Down
Loading