Skip to content

Commit 331c263

Browse files
authored
Merge pull request #3276 from hathach/release-0.19.0
update for release 0.19.0
2 parents 6ce46da + 8d7e8a1 commit 331c263

File tree

7 files changed

+212
-8
lines changed

7 files changed

+212
-8
lines changed

CLAUDE.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,3 +67,12 @@ Before building, it's recommended to run pre-commit to ensure code quality:
6767
- hw/: Board support packages and MCU drivers
6868
- examples/: Reference examples for device/host/dual
6969
- test/: Unit tests and hardware integration tests
70+
71+
## Release Process
72+
To prepare a new release:
73+
1. Update the `version` variable in `tools/make_release.py` to the new version number
74+
2. Run the release script: `python tools/make_release.py`
75+
- This will update version numbers in `src/tusb_option.h`, `repository.yml`, and `library.json`
76+
- It will also regenerate documentation
77+
3. Update `docs/info/changelog.rst` with release notes
78+
4. Commit changes and create release tag

docs/info/changelog.rst

Lines changed: 192 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,198 @@
22
Changelog
33
*********
44

5+
0.19.0
6+
======
7+
8+
General
9+
-------
10+
11+
- New MCUs and Boards:
12+
13+
- Add ESP32-H4, ESP32-C5, ESP32-C61 support
14+
- Add STM32U0, STM32WBA, STM32N6
15+
- Add AT32F405, AT32F403A, AT32F415, AT32F423 support
16+
- Add CH32V305 support and CH32V20x USB host support
17+
- Add MCXA156 SDK 2.16 support and FRDM-MCXA156 board
18+
19+
API Changes
20+
-----------
21+
22+
- Core APIs
23+
- Add weak callbacks with new syntax for better compiler compatibility
24+
- Add ``tusb_deinit()`` to cleanup stack
25+
- Add time functions: ``tusb_time_millis_api()`` and ``tusb_time_delay_ms_api()``
26+
- Add ``osal_critical`` APIs for critical section handling
27+
- Introduce ``xfer_isr()`` callback for ISO transfer optimization in device classes
28+
29+
- Device APIs
30+
- CDC: Add notification support ``tud_cdc_configure()``, ``tud_cdc_n_notify_uart_state()``,
31+
``tud_cdc_n_notify_conn_speed_change()``, ``tud_cdc_notify_complete_cb()``
32+
- MSC: Add ``tud_msc_inquiry2_cb()`` with bufsize parameter, update ``tud_msc_async_io_done()``
33+
with ``in_isr`` parameter
34+
- Audio: Add ``tud_audio_n_mounted()`` and various FIFO access functions
35+
- MTP: Add ``tud_mtp_mounted()``, ``tud_mtp_data_send()``, ``tud_mtp_data_receive()``,
36+
``tud_mtp_response_send()``, ``tud_mtp_event_send()``
37+
38+
- Host APIs
39+
- Core: Add ``tuh_edpt_close()``, ``tuh_address_set()``, ``tuh_descriptor_get_device_local()``,
40+
``tuh_descriptor_get_string_langid()``, ``tuh_connected()``, ``tuh_bus_info_get()``
41+
- Add enumeration callbacks: ``tuh_enum_descriptor_device_cb()``,
42+
``tuh_enum_descriptor_configuration_cb()``
43+
- CDC: Add ``tuh_cdc_get_control_line_state_local()``, ``tuh_cdc_get/set_dtr/rts()``,
44+
``tuh_cdc_connect/disconnect()`` and sync versions of all control APIs
45+
- MIDI: Add ``tuh_midi_itf_get_info()``, ``tuh_midi_packet_read_n()``,
46+
``tuh_midi_packet_write_n()``, ``tuh_midi_read_available()``, ``tuh_midi_write_flush()``,
47+
``tuh_midi_descriptor_cb()``
48+
49+
Controller Driver (DCD & HCD)
50+
-----------------------------
51+
52+
- DWC2
53+
- Support DWC2 v4.30a with improved reset procedure
54+
- Fix core reset: wait for AHB idle before reset
55+
- Add STM32 DWC2 data cache support with proper alignment
56+
- Host improvements:
57+
- Fix disconnect detection and SOF flag handling
58+
- Fix HFIR timing off-by-one error
59+
- Retry IN token immediately for bInterval=1
60+
- Proper attach debouncing (200ms)
61+
- Fix all retry intervals
62+
- Resume OUT transfer when PING ACKed
63+
- Fix enumeration racing conditions
64+
- Refactor bitfields for better code generation
65+
66+
- FSDEV (STM32)
67+
- Fix AT32 compile issues after single-buffered endpoint changes
68+
- Add configurable single-buffered isochronous endpoints
69+
- Fix STM32H7 recurrent suspend ISR
70+
- Fix STM32L4 GPIOD clock enable for variants without GPIOD
71+
- Fix STM32 PHYC PLL stability wait
72+
- Improve PMA size handling for STM32U0
73+
74+
- EHCI
75+
- Fix removed QHD getting reused
76+
- Fix NXP USBPHY disconnection detection
77+
78+
- Chipidea/NXP
79+
- Fix race condition with spinlock
80+
- Improve iMXRT support: fix build, disable BOARD_ConfigMPU, fix attach debouncing on port1 highspeed
81+
- Fix iMXRT1064 and add to HIL test pool
82+
83+
- MAX3421E
84+
- Use spinlock for thread safety instead of atomic flag
85+
- Implement ``hcd_edpt_close()``
86+
87+
- RP2040
88+
- Fix audio ISO transfer: reset state before notifying stack
89+
- Fix CMake RTOS cache variable
90+
- Abort transfer if active in ``iso_activate()``
91+
92+
- SAMD
93+
- Add host controller driver support
94+
95+
Device Stack
96+
------------
97+
98+
- USBD Core
99+
- Introduce ``xfer_isr()`` callback for interrupt-time transfer handling
100+
- Add ``usbd_edpt_xfer_fifo()`` stub
101+
- Revert endpoint busy/claim status if ``xfer_isr()`` defers to ``xfer_cb()``
102+
103+
- Audio
104+
- Major simplification of UAC driver and alt settings management
105+
- Move ISO transfers into ``xfer_isr()`` for better performance
106+
- Remove FIFO mutex (single producer/consumer optimization)
107+
- Add implicit feedback support for data IN endpoints
108+
- Fix alignment issues
109+
- Update buffer macros with cache line size alignment
110+
111+
- CDC
112+
- Add notification support: ``CFG_TUD_CDC_NOTIFY``, ``tud_cdc_n_notify_conn_speed_change()``, ``tud_cdc_notify_complete_cb()``
113+
- Reduce default bInterval from 16ms to 1ms for better responsiveness
114+
- Rename ``tud_cdc_configure_fifo()`` to ``tud_cdc_configure()`` and add ``tx_overwritable_if_not_connected`` option
115+
- Fix web serial robustness with major overhaul and logic cleanup
116+
117+
- HID
118+
- Add Usage Page and Table for Power Devices (0x84 - 0x85)
119+
- Fix HID descriptor parser variable size and 4-byte item handling
120+
- Add consumer page configurations
121+
122+
- MIDI
123+
- Fix MIDI interface descriptor handling after audio streaming interface
124+
- Skip RX data with all zeroes
125+
126+
- MSC
127+
- Add async I/O support for MSC using ``tud_msc_async_io_done()``
128+
- Add ``tud_msc_inquiry2_cb()`` with bufsize for full inquiry response
129+
130+
- MTP
131+
- Add new Media Transfer Protocol (MTP) device class driver
132+
- Support MTP operations: GetDeviceInfo, SendObjectInfo, SendObject
133+
- Add MTP event support with ``tud_mtp_event_send()``
134+
- Implement filesystem example with callbacks
135+
- Add hardware-in-the-loop testing support
136+
137+
- NCM
138+
- Add USB NCM link state control support
139+
- Fix DHCP offer/ACK destination
140+
141+
- USBTMC
142+
- Add vendor-specific message support
143+
144+
- Vendor
145+
- Fix vendor device reset and open issues
146+
- Fix descriptor parsing for ``CFG_TUD_VENDOR > 1``
147+
- Fix vendor FIFO argument calculation
148+
149+
Host Stack
150+
----------
151+
152+
- USBH Core
153+
- Major enumeration improvements:
154+
- Fix enumeration racing conditions
155+
- Add proper attach debouncing with hub/rootport handling (200ms delay)
156+
- Reduce ``ENUM_DEBOUNCING_DELAY_MS`` to 200ms
157+
- Always get language ID, manufacturer, product, and serial strings during enumeration
158+
- Always get first 2 bytes of string descriptor to determine length (prevents buffer overflow)
159+
- Support devices with multiple configurations
160+
- Add ``tuh_enum_descriptor_device_cb()`` and ``tuh_enum_descriptor_configuration_cb()`` callbacks
161+
- Add ``tuh_descriptor_get_string_langid()`` API
162+
- Hub improvements:
163+
- Check status before getting first device descriptor
164+
- Properly handle port status and change detection
165+
- Queue status endpoint for detach/remove events
166+
- Fix hub status change endpoint handling
167+
- Fix endpoint management:
168+
- ``hcd_edpt_open()`` returns false if endpoint already opened
169+
- Add ``hcd_edpt_close()`` implementation
170+
- Abort pending transfers on close
171+
- Add roothub debouncing flag to ignore attach/remove during debouncing
172+
- Move address setting and bus info management to separate structures
173+
- Force removed devices in same bus info before setting address
174+
175+
- CDC Serial Host
176+
- Major refactor to generalize CDC serial drivers (FTDI, CP210x, CH34x, PL2303, ACM)
177+
- Add explicit ``sync()`` API with ``TU_API_SYNC()`` returning ``tusb_xfer_result_t``
178+
- Rename ``tuh_cdc_get_local_line_coding()`` to ``tuh_cdc_get_line_coding_local()``
179+
- Add ``tuh_cdc_get_control_line_state_local()``
180+
- Implement ``tuh_cdc_get/set_dtr/rts()`` as inline functions
181+
182+
- MIDI Host
183+
- Major API changes:
184+
- Rename ``tuh_midi_stream_flush()`` to ``tuh_midi_write_flush()``
185+
- Add ``tuh_midi_packet_read_n()`` and ``tuh_midi_packet_write_n()``
186+
- Add ``CFG_TUH_MIDI_STREAM_API`` to opt out of stream API
187+
- Change API to use index instead of device address (supports multiple MIDI per device)
188+
- Rename ``tuh_midi_get_num_rx/tx_cables()`` to ``tuh_midi_get_rx/tx_cable_count()``
189+
- Add ``tuh_midi_descriptor_cb()`` and ``tuh_midi_itf_get_info()``
190+
191+
- MSC Host
192+
- Continue async I/O improvements
193+
194+
- HID Host
195+
- Fix version string to actually show version
196+
5197
0.18.0
6198
======
7199

docs/reference/dependencies.rst

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ Dependencies
44

55
MCU low-level peripheral driver and external libraries for building TinyUSB examples
66

7-
======================================== ================================================================ ======================================== ======================================================================================================================================================================================================================================================================================================================================================
7+
======================================== ================================================================ ======================================== ======================================================================================================================================================================================================================================================================================================================================================================
88
Local Path Repo Commit Required by
9-
======================================== ================================================================ ======================================== ======================================================================================================================================================================================================================================================================================================================================================
9+
======================================== ================================================================ ======================================== ======================================================================================================================================================================================================================================================================================================================================================================
1010
hw/mcu/allwinner https://github.com/hathach/allwinner_driver.git 8e5e89e8e132c0fd90e72d5422e5d3d68232b756 fc100s
1111
hw/mcu/analog/msdk https://github.com/analogdevicesinc/msdk.git b20b398d3e5e2007594e54a74ba3d2a2e50ddd75 maxim
1212
hw/mcu/artery/at32f402_405 https://github.com/ArteryTek/AT32F402_405_Firmware_Library.git 4424515c2663e82438654e0947695295df2abdfe at32f402_405
@@ -31,6 +31,7 @@ hw/mcu/renesas/fsp https://github.com/renesas/fsp.git
3131
hw/mcu/renesas/rx https://github.com/kkitayam/rx_device.git 706b4e0cf485605c32351e2f90f5698267996023 rx
3232
hw/mcu/silabs/cmsis-dfp-efm32gg12b https://github.com/cmsis-packs/cmsis-dfp-efm32gg12b.git f1c31b7887669cb230b3ea63f9b56769078960bc efm32
3333
hw/mcu/sony/cxd56/spresense-exported-sdk https://github.com/sonydevworld/spresense-exported-sdk.git 2ec2a1538362696118dc3fdf56f33dacaf8f4067 spresense
34+
hw/mcu/st/cmsis-device-u0 https://github.com/STMicroelectronics/cmsis-device-u0.git e3a627c6a5bc4eb2388e1885a95cc155e1672253 stm32u0
3435
hw/mcu/st/cmsis-device-wba https://github.com/STMicroelectronics/cmsis-device-wba.git 647d8522e5fd15049e9a1cc30ed19d85e5911eaf stm32wba
3536
hw/mcu/st/cmsis_device_c0 https://github.com/STMicroelectronics/cmsis_device_c0.git 517611273f835ffe95318947647bc1408f69120d stm32c0
3637
hw/mcu/st/cmsis_device_f0 https://github.com/STMicroelectronics/cmsis_device_f0.git cbb5da5d48b4b5f2efacdc2f033be30f9d29889f stm32f0
@@ -70,6 +71,7 @@ hw/mcu/st/stm32l1xx_hal_driver https://github.com/STMicroelectronics/
7071
hw/mcu/st/stm32l4xx_hal_driver https://github.com/STMicroelectronics/stm32l4xx_hal_driver.git 3e039bbf62f54bbd834d578185521cff80596efe stm32l4
7172
hw/mcu/st/stm32l5xx_hal_driver https://github.com/STMicroelectronics/stm32l5xx_hal_driver.git 3340b9a597bcf75cc173345a90a74aa2a4a37510 stm32l5
7273
hw/mcu/st/stm32n6xx_hal_driver https://github.com/STMicroelectronics/stm32n6xx-hal-driver.git bc6c41f8f67d61b47af26695d0bf67762a000666 stm32n6
74+
hw/mcu/st/stm32u0xx_hal_driver https://github.com/STMicroelectronics/stm32u0xx-hal-driver.git cbfb5ac654256445237fd32b3587ac6a238d24f1 stm32u0
7375
hw/mcu/st/stm32u5xx_hal_driver https://github.com/STMicroelectronics/stm32u5xx_hal_driver.git 2c5e2568fbdb1900a13ca3b2901fdd302cac3444 stm32u5
7476
hw/mcu/st/stm32wbaxx_hal_driver https://github.com/STMicroelectronics/stm32wbaxx_hal_driver.git 9442fbb71f855ff2e64fbf662b7726beba511a24 stm32wba
7577
hw/mcu/st/stm32wbxx_hal_driver https://github.com/STMicroelectronics/stm32wbxx_hal_driver.git d60dd46996876506f1d2e9abd6b1cc110c8004cd stm32wb
@@ -78,10 +80,10 @@ hw/mcu/wch/ch32f20x https://github.com/openwch/ch32f20x.gi
7880
hw/mcu/wch/ch32v103 https://github.com/openwch/ch32v103.git 7578cae0b21f86dd053a1f781b2fc6ab99d0ec17 ch32v10x
7981
hw/mcu/wch/ch32v20x https://github.com/openwch/ch32v20x.git c4c38f507e258a4e69b059ccc2dc27dde33cea1b ch32v20x
8082
hw/mcu/wch/ch32v307 https://github.com/openwch/ch32v307.git 184f21b852cb95eed58e86e901837bc9fff68775 ch32v30x
81-
lib/CMSIS_5 https://github.com/ARM-software/CMSIS_5.git 2b7495b8535bdcb306dac29b9ded4cfb679d7e5c imxrt kinetis_k32l2 kinetis_kl lpc51 lpc54 lpc55 mcx mm32 msp432e4 nrf saml2x lpc11 lpc13 lpc15 lpc17 lpc18 lpc40 lpc43 stm32c0 stm32f0 stm32f1 stm32f2 stm32f3 stm32f4 stm32f7 stm32g0 stm32g4 stm32h5 stm32h7 stm32h7rs stm32l0 stm32l1 stm32l4 stm32l5 stm32n6 stm32u5 stm32wb sam3x samd11 samd21 samd51 samd5x_e5x same5x same7x saml2x samg tm4c
83+
lib/CMSIS_5 https://github.com/ARM-software/CMSIS_5.git 2b7495b8535bdcb306dac29b9ded4cfb679d7e5c imxrt kinetis_k32l2 kinetis_kl lpc51 lpc54 lpc55 mcx mm32 msp432e4 nrf saml2x lpc11 lpc13 lpc15 lpc17 lpc18 lpc40 lpc43 stm32c0 stm32f0 stm32f1 stm32f2 stm32f3 stm32f4 stm32f7 stm32g0 stm32g4 stm32h5 stm32h7 stm32h7rs stm32l0 stm32l1 stm32l4 stm32l5 stm32n6 stm32u0 stm32u5 stm32wb stm32wbasam3x samd11 samd21 samd51 samd5x_e5x same5x same7x saml2x samg tm4c
8284
lib/CMSIS_6 https://github.com/ARM-software/CMSIS_6.git b0bbb0423b278ca632cfe1474eb227961d835fd2 ra
8385
lib/FreeRTOS-Kernel https://github.com/FreeRTOS/FreeRTOS-Kernel.git cc0e0707c0c748713485b870bb980852b210877f all
8486
lib/lwip https://github.com/lwip-tcpip/lwip.git 159e31b689577dbf69cf0683bbaffbd71fa5ee10 all
8587
lib/sct_neopixel https://github.com/gsteiert/sct_neopixel.git e73e04ca63495672d955f9268e003cffe168fcd8 lpc55
8688
tools/uf2 https://github.com/microsoft/uf2.git c594542b2faa01cc33a2b97c9fbebc38549df80a all
87-
======================================== ================================================================ ======================================== ======================================================================================================================================================================================================================================================================================================================================================
89+
======================================== ================================================================ ======================================== ======================================================================================================================================================================================================================================================================================================================================================================

library.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "TinyUSB",
3-
"version": "0.18.0",
3+
"version": "0.19.0",
44
"description": "TinyUSB is an open-source cross-platform USB Host/Device stack for embedded system, designed to be memory-safe with no dynamic allocation and thread-safe with all interrupt events are deferred then handled in the non-ISR task function.",
55
"keywords": "usb, host, device",
66
"repository":

repository.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,6 @@ repo.versions:
1616
"0.16.0": "0.16.0"
1717
"0.17.0": "0.17.0"
1818
"0.18.0": "0.18.0"
19-
"0-latest": "0.18.0"
19+
"0.19.0": "0.19.0"
20+
"0-latest": "0.19.0"
2021
"0-dev": "0.0.0"

src/tusb_option.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131

3232
// Version is release as major.minor.revision eg 1.0.0
3333
#define TUSB_VERSION_MAJOR 0
34-
#define TUSB_VERSION_MINOR 18
34+
#define TUSB_VERSION_MINOR 19
3535
#define TUSB_VERSION_REVISION 0
3636

3737
#define TUSB_VERSION_NUMBER (TUSB_VERSION_MAJOR * 10000 + TUSB_VERSION_MINOR * 100 + TUSB_VERSION_REVISION)

tools/make_release.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import re
33
import gen_doc
44

5-
version = '0.18.0'
5+
version = '0.19.0'
66

77
print('version {}'.format(version))
88
ver_id = version.split('.')

0 commit comments

Comments
 (0)