Overview
This release allows multiple FreeRTOS tasks to perform WiFi/Ethernet ops
in parallel. It moves FreeRTOS from a library to the core itself, and adds a
single LWIP task which handles all wrapped LWIP calls. This means core 0
and core 1 and multiple tasks can use WiFiClient/WiFiServers.
To use FreeRTOS you noiw need to use a new menu item or a new define
in platform.ini, as documented in the RTD. Bluetooth is also supported
For bare-metal, this is a moderate release focusing on bug fixes in the
audio libraries. Now available/availableForWrite/write/read should
always return the number of bytes, not 32-bit frames. Previously
sometimes you got bytes, sometimes you got 32b frames, depending
on the device and call. Apps which worked around this will need
to undo those workarounds.
USB VID:PID will now always change depending on the peripherals
exposed. Before it would sometimes change or not because it
would set an individual bit in the PID per device. If that bit was
already a 1 then there would be no VID change. Now, the USB PID
will have be XOR'd, ensuring it changes. For Windows this may
require some Zadig work, but Linux and Mac should not see an
end user difference.
Bare metal (no OS) is still the default and fully supported.
FreeRTOS + WiFi/BT
- BREAKING: FreeRTOS as a define, allow full multithread/core TCP/IP (#3063)
- Make LWIP task priority configurable, document (#3100)
- Make LWIP debug also collect stats (#3099)
- Only make an EtherPoll task if we need to poll (#3098)
- Support Bluetooth under FreeRTOS (#3095)
- Move cyw43_driver override to SDKOverrides (#3093)
- Clean up unused FreeRTOS arch init code/vars (#3092)
- Clean up LWIP header, fix missing listen_backlog
USB PID:VID Update
- BREAKING: USB PID will vary depending on devices (#3091)
Audio I/O read/written/available bytes fixes
- BREAKING: PWMAudio availableForWrite report bytes (#3090)
- Fix I2S::read/write(buffer, cnt) to return bytes (#3086)
Libraries and Examples
New Boards
- Added GeeekPi RP2040 Plus (#3085)