| # 0.20.0 |
| |
| *November 19, 2025* |
| |
| ## 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-format` for 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()` |
| |
| ### 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()` and `tud_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 |
| |
| ## Contributors |
| |
| Thanks to everyone who contributed to this release: @adam-embedded, @ArcaneNibble, @c1570, @embedded-ideas, @gabChouin, @hathach, @HiFiPhile, @karlp, @ldube, @peppapighs, @poornadharshan13-rgb, @RigoLigoRLC, @tangpipi, @ToonVanEyck, @tswan22. |