0.20.0
General
-
New MCUs and Boards:
- Add STM32U3 device support (adjusted from STM32U0)
- Add nRF54H20 support with initial board configuration
- Rename board names: pca10056→nrf52840dk, pca10059→nrf52840dongle, pca10095→nrf5340dk
- Improve CMake: Move startup and linker files from board target to executable. Enhance target warning flags and fix various build warnings
-
Code Quality and Static Analysis:
- Add PVS-Studio static analysis to CI
- Add SonarQube scan support
- Add IAR C-Stat analysis capability
- Add
.clang-formatfor consistent code formatting - Fix numerous alerts and warnings found by static analysis tools
-
Documentation:
- Improve Getting Started documentation structure and flow
- Add naming conventions and buffer handling documentation
Controller Driver (DCD & HCD)
-
DWC2
- Fix incorrect handling of Zero-Length Packets (ZLP) in the DWC2 driver when receiving data (OUT transfers)
- Improve EP0 multi-packet logic
- Support EP0 with max packet size = 8
- For IN endpoint, write initial packet directly to FIFO and only use TXFE interrupt for subsequent packets
- Fix ISO with bInterval > 2 using incomplete IN interrupt handling.
- Fix compile issues when enabling both host and device
- Clear pending suspend interrupt after USB reset (enum end)
- Improve host closing endpoint and channel handling when device is unplugged
-
FSDEV (STM32)
- Fix AT32 USB interrupt remapping in
dcd_int_enable()
- Fix AT32 USB interrupt remapping in
-
OHCI
- Add initial LPC55 OHCI support
- Improve data cache support
Device Stack
-
USBD Core
- Support configurable EP0 buffer size CFG_TUD_ENDPOINT0_BUFSIZE
- Make dcd_edpt_iso_alloc/activate as default API for ISO endpoint
-
Audio
- Add UAC1 support
- Implement RX FIFO threshold adjustment with
tud_audio_get/set_ep_in_fifo_threshold()
-
CDC
- Migrate to endpoint stream API
-
HID
- Fix HID stylus descriptor
-
MIDI
- Migrate to endpoint stream API
- Add
tud_midi_n_packet_write_n()andtud_midi_n_packet_read_n()
-
MTP
- Fix incorrect MTP xact_len calculation
-
Video
- Add bufferless operation callback for dynamic frame generation with tud_video_prepare_payload_cb()
Host Stack
No changes
What's Changed
- remove dcd_esp32sx which is replaced by dwc2 by @hathach in https://github.com/hathach/tinyusb/pull/3282
- Fix HID stylus descriptor and hid_composite example by @HiFiPhile in https://github.com/hathach/tinyusb/pull/3280
- fix typo by @hathach in https://github.com/hathach/tinyusb/pull/3283
- fix incorrect MTP xact_len calculation by @RigoLigoRLC in https://github.com/hathach/tinyusb/pull/3284
- stm32h7rs: fix typo in makefile by @HiFiPhile in https://github.com/hathach/tinyusb/pull/3288
- added AGENTS.md by @hathach in https://github.com/hathach/tinyusb/pull/3289
- docs: fix .rst links to use Sphinx :doc: role for proper HTML generation by @Copilot in https://github.com/hathach/tinyusb/pull/3290
- dcd/dwc2: fix enumeration when EP0 size=8 by @HiFiPhile in https://github.com/hathach/tinyusb/pull/3279
- at32_fsdev: Fix dcd_int_enable when remapping the USB interrupt by @tangpipi in https://github.com/hathach/tinyusb/pull/3292
- increase timeout for mtp hil test by @hathach in https://github.com/hathach/tinyusb/pull/3297
- ESP32-S3 bulk transfer issues #3154 by @poornadharshan13-rgb in https://github.com/hathach/tinyusb/pull/3293
- Added stm32l496nucleo board support by @adam-embedded in https://github.com/hathach/tinyusb/pull/3220
- Add qodana CI checks by @qodana-cloud[bot] in https://github.com/hathach/tinyusb/pull/3300
- Revert "Add qodana CI checks" by @hathach in https://github.com/hathach/tinyusb/pull/3302
- add tools that provided freely to develop project by @hathach in https://github.com/hathach/tinyusb/pull/3304
- Initial nrf54h20 support by @hathach in https://github.com/hathach/tinyusb/pull/3299
- Refactor buildsystem and bsp by @hathach in https://github.com/hathach/tinyusb/pull/3306
- More cmake refactor by @hathach in https://github.com/hathach/tinyusb/pull/3316
- Static analysis by @hathach in https://github.com/hathach/tinyusb/pull/3318
- dcd/dwc2: fix suspend interrupt indefinitely disabled on AT32F405 by @peppapighs in https://github.com/hathach/tinyusb/pull/3319
- fix warnings by @hathach in https://github.com/hathach/tinyusb/pull/3320
- examples/device/*_freertos: expand stack size when needed by @karlp in https://github.com/hathach/tinyusb/pull/3271
- try to enable ohci for lpc55 but not working, probably clock issue by @hathach in https://github.com/hathach/tinyusb/pull/3294
- audio: Add UAC1.0 support by @HiFiPhile in https://github.com/hathach/tinyusb/pull/3270
- ohci: Implement support for d-cache operations by @ArcaneNibble in https://github.com/hathach/tinyusb/pull/3248
- Fix code alerts by @hathach in https://github.com/hathach/tinyusb/pull/3326
- fix compile issue with enabled both device and host stack for dwc2 by @hathach in https://github.com/hathach/tinyusb/pull/3333
- Add STM32U3 Device by @tswan22 in https://github.com/hathach/tinyusb/pull/3325
- audio: Implement support for variable EP in flow control fifo level by @gabChouin in https://github.com/hathach/tinyusb/pull/3321
- Fix more code alerts by @hathach in https://github.com/hathach/tinyusb/pull/3334
- Documentation improvements by @c1570 in https://github.com/hathach/tinyusb/pull/3278
- migrate midi_device to use edpt stream API by @hathach in https://github.com/hathach/tinyusb/pull/3337
- migrate cdc device to edpt stream API by @hathach in https://github.com/hathach/tinyusb/pull/3339
- Prevent tu_edpt_number() from returning an invalid endpoint number by @ldube in https://github.com/hathach/tinyusb/pull/3335
- Bufferless (on the fly) video data generation for the video device class by @embedded-ideas in https://github.com/hathach/tinyusb/pull/3322
- make dcd_edpt_iso_alloc/activate as default API for ISO endpoint by @hathach in https://github.com/hathach/tinyusb/pull/3345
- Fix link to Getting Started documentation by @ToonVanEyck in https://github.com/hathach/tinyusb/pull/3347
- dcd/dwc2: fix EP0 multi-packet transfer logic by @HiFiPhile in https://github.com/hathach/tinyusb/pull/3295
- dcd/dwc2: support ISO IN transfer when bInterval > 1 by @HiFiPhile in https://github.com/hathach/tinyusb/pull/3275
- osal/none: add nested count to spin lock by @HiFiPhile in https://github.com/hathach/tinyusb/pull/3151
- host/dwc2: cleanup transfer on device close by @HiFiPhile in https://github.com/hathach/tinyusb/pull/3076
- fix more alerts by @hathach in https://github.com/hathach/tinyusb/pull/3348
- release 0.20.0 by @hathach in https://github.com/hathach/tinyusb/pull/3349
- update changelog.rst by @hathach in https://github.com/hathach/tinyusb/pull/3350
New Contributors
- @RigoLigoRLC made their first contribution in https://github.com/hathach/tinyusb/pull/3284
- @tangpipi made their first contribution in https://github.com/hathach/tinyusb/pull/3292
- @poornadharshan13-rgb made their first contribution in https://github.com/hathach/tinyusb/pull/3293
- @adam-embedded made their first contribution in https://github.com/hathach/tinyusb/pull/3220
- @qodana-cloud[bot] made their first contribution in https://github.com/hathach/tinyusb/pull/3300
- @ArcaneNibble made their first contribution in https://github.com/hathach/tinyusb/pull/3248
- @tswan22 made their first contribution in https://github.com/hathach/tinyusb/pull/3325
- @c1570 made their first contribution in https://github.com/hathach/tinyusb/pull/3278
- @ldube made their first contribution in https://github.com/hathach/tinyusb/pull/3335
- @embedded-ideas made their first contribution in https://github.com/hathach/tinyusb/pull/3322
- @ToonVanEyck made their first contribution in https://github.com/hathach/tinyusb/pull/3347
Full Changelog: https://github.com/hathach/tinyusb/compare/0.19.0...0.20.0