Skip to content

Commit b18a8fb

Browse files
committed
update for release 0.19.0
1 parent 6ce46da commit b18a8fb

File tree

7 files changed

+233
-8
lines changed

7 files changed

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

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)