Skip to content

Commit 23b6b66

Browse files
committed
release 0.7.0 with changelog and doc update
1 parent a708ab6 commit 23b6b66

File tree

5 files changed

+197
-105
lines changed

5 files changed

+197
-105
lines changed

CONTRIBUTORS.md

Lines changed: 75 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,79 @@
11
# TinyUSB contributors (sorted alphabetically)
22

3-
* **[Adafruit Team](https://github.com/adafruit)**
4-
* Main supporter and sponsor for hardware boards and kits
5-
* Discussion and suggestion for feature and improvement
6-
* Design the project logo
7-
8-
* **[arturo182](https://github.com/arturo182)**
9-
* Board support for MiMX RT1010 evaluation kit
10-
11-
* **[Ha Thach](https://github.com/hathach)**
12-
* Author and maintainer
13-
* Most features development
14-
15-
* **[Jan Dümpelmann](https://github.com/duempel)**
16-
* Improvements to Synopsys device controller driver (DCD) for STM32 MCUs
17-
18-
* **[Jeff Epler](https://github.com/jepler)**
19-
* Improvement to MIDI device driver
20-
21-
* **[Kamil Tomaszewski](https://github.com/kamtom480)**
22-
* Sony CXD56 device driver port for spresnese board
23-
24-
* **[Nathan Conrad](https://github.com/pigrew)**
25-
* STM32 fsdev Fullspeed device driver port for STM32 L0, F0, F1, F3 etc ...
26-
* USBTMC class driver support with example
27-
* Various improvement e.g Zero-length packet, Lint setup
28-
* Board support for STM32F070RB Nucleo, STM32F303 Discovery
29-
30-
* **[Peter Lawrence](https://github.com/majbthrd)**
31-
* Nuvoton NUC 120, 121, 125, 126, 505 device driver port
32-
* USBNET RNDIS, CDC-ECM, CDC-EEM class driver
33-
* Added `net_lwip_webserver` example for demonstration of usbnet with lwip
34-
* Board support for NuTiny NUC120, NUC121s, NUC125s, NUC126V, NUC505
35-
* Complete multiple class interfaces & add cdc_dual_ports example
36-
37-
* **[Scott Shawcroft](https://github.com/tannewt)**
38-
* SAMD21 and SAMD51 device driver port
39-
* MIDI device class driver support
40-
* Improvement to USBD control transfer, MSC, CDC class driver
41-
* Board support for Metro M0 & M4 express
42-
* Write the execellent porting.md documentation
43-
* Introduce inital Makefile
44-
45-
* **[Sean Cross](https://github.com/xobs)**
46-
* ValentyUSB eptri device driver port
47-
* Board support for fomu
48-
49-
* **[Sylvain "tnt" Munaut](https://github.com/smunaut)**
50-
* DFU runtime support with example
51-
52-
* **[Timon Skerutsch](https://github.com/PTS93)**
53-
* hid_test.js script and extensive test for bi-directional raw HID
54-
55-
* **[Tod E. Kurt](https://github.com/todbot)**
56-
* hid_test.js script and extensive test for bi-directional raw HID
57-
58-
* **[William D. Jones](https://github.com/cr1901)**
59-
* Synopsys DesignWare device driver port for STM32 L4, F2, F4, F7, H7 etc ...
60-
* TI MSP430 device driver port
61-
* Board support for STM32F407 Discovery, STM32H743 Nucleo, pyboard v1.1, msp_exp430f5529lp etc ...
3+
- **[Adafruit Team](https://github.com/adafruit)**
4+
- Main supporter and sponsor for hardware boards and kits
5+
- Discussion and suggestion for feature and improvement
6+
- Design the project logo
7+
8+
- **[Ha Thach](https://github.com/hathach)**
9+
- *Author and maintainer*
10+
- Most features development
11+
12+
- **[Hristo Gochkov](https://github.com/me-no-dev)**
13+
- Improve ESP32s2 DCD
14+
15+
- **[Jan Dümpelmann](https://github.com/duempel)**
16+
- Improve transfer performance for Synopsys DCD for STM32 MCUs
17+
18+
- **[Jeff Epler](https://github.com/jepler)**
19+
- Improve MIDI class driver
20+
21+
- **[Jerzy Kasenberg](https://github.com/kasjer)**
22+
- Add new DCD port for **Dialog DA1469x**
23+
- Add new class driver for **Bluetooth HCI**
24+
- Add ISO transfer for STM32 Synopsys, Nordic nRF, Dialog DA1469x
25+
- Improve Audio driver and add uac2_headset example
26+
- Improve STM32 Synopsys DCD with various PRs
27+
28+
- **[Kamil Tomaszewski](https://github.com/kamtom480)**
29+
- Add new DCD port for **Sony CXD56** (spresnese board)
30+
31+
- **[Kay Sievers](https://github.com/kaysievers)**
32+
- Improve MIDI driver with packet API
33+
34+
- **[Nathan Conrad](https://github.com/pigrew)**
35+
- Add new DCD port for **STM32 fsdev** Fullspeed device for STM32 L0, F0, F1, F3 etc ...
36+
- Add new class driver for **USB Test and Measurement Class (USBTMC)**
37+
- Various improvement e.g Zero-length packet, Lint setup
38+
- Board support for STM32F070RB Nucleo, STM32F303 Discovery
39+
40+
- **[Peter Lawrence](https://github.com/majbthrd)**
41+
- Add new DCD port for **Nuvoton NUC 120, 121, 125, 126, 505**
42+
- Add new class driver for **USBNET RNDIS, CDC-ECM**
43+
- Add *net_lwip_webserver* example for demonstration of usbnet with lwip
44+
- Board support for NuTiny NUC120, NUC121s, NUC125s, NUC126V, NUC505
45+
- Improve multiple cdc interfaces API & add cdc_dual_ports example
46+
47+
- **[Reinhard Panhuber](https://github.com/PanRe)**
48+
- Add new class driver for **USB Audio Class 2.0 (UAC2)**
49+
- Enhance tu_fifo with unmasked pointer, which better support DMA
50+
51+
- **[Scott Shawcroft](https://github.com/tannewt)**
52+
- Add new DCD port for **SAMD21 and SAMD51**
53+
- Add new class driver for **Musical Instrument Digital Interface (MIDI)**
54+
- Improve USBD control transfer, MSC, CDC class driver
55+
- Board support for Metro M0 & M4 express
56+
- Write the execellent porting.md documentation
57+
- Add initial Makefile
58+
59+
- **[Sean Cross](https://github.com/xobs)**
60+
- Add new DCD port for **ValentyUSB eptri** (fomu board)
61+
62+
- **[Sylvain "tnt" Munaut](https://github.com/smunaut)**
63+
- Add new class driver for DFU Runtime
64+
65+
- **[Timon Skerutsch](https://github.com/PTS93)**
66+
- Add hid_test.js script and extensive test for bi-directional raw HID
67+
68+
- **[Tod E. Kurt](https://github.com/todbot)**
69+
- Add hid_test.js script and extensive test for bi-directional raw HID
70+
71+
- **[Uwe Bonnes](https://github.com/UweBonnes)**
72+
- Improve STM32 Synopsys highspeed DCD
73+
74+
- **[William D. Jones](https://github.com/cr1901)**
75+
- Add new DCD port for **Synopsys DesignWare** for STM32 L4, F2, F4, F7, H7 etc ...
76+
- Add new DCD port for **TI MSP430**
77+
- Board support for STM32F407 Discovery, STM32H743 Nucleo, pyboard v1.1, msp_exp430f5529lp etc ...
6278

6379
**[Full contributors list](https://github.com/hathach/tinyusb/contributors).**

README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ The stack supports the following MCUs:
3232

3333
- **Espressif:** ESP32-S2
3434
- **Dialog:** DA1469x
35-
- **MicroChip:** SAMD11, SAMD21, SAMD51, SAME5x, SAMG (device only)
35+
- **MicroChip:** SAMD11, SAMD21, SAMD51, SAME5x, SAMG55
3636
- **NordicSemi:** nRF52833, nRF52840
3737
- **Nuvoton:** NUC120, NUC121/NUC125, NUC126, NUC505
3838
- **NXP:**
@@ -49,7 +49,10 @@ The stack supports the following MCUs:
4949

5050
Supports multiple device configurations by dynamically changing usb descriptors. Low power functions such like suspend, resume, and remote wakeup. Following device classes are supported:
5151

52+
- USB Audio Class 2.0 (UAC2) still work in progress
53+
- Bluetooth Host Controller Interface (BTH HCI)
5254
- Communication Class (CDC)
55+
- Device Firmware Update (DFU): only Runtinme
5356
- Human Interface Device (HID): Generic (In & Out), Keyboard, Mouse, Gamepad etc ...
5457
- Mass Storage Class (MSC): with multiple LUNs
5558
- Musical Instrument Digital Interface (MIDI)

changelog.md

Lines changed: 106 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,118 @@
11
# TinyUSB Changelog
22

3-
## Master branch (WIP)
4-
5-
### Breaking
6-
7-
- TinyUSB does not directly implement USB IRQ Handler function anymore. Application must implement IRQ Handler and invoke `tud_int_handler(rhport)`. This is due to:
8-
- IRQ Handler name can be different across system depending on the startup
9-
- Some OS need to execute enterISR()/exitISR() to work properly, also tracing tool may need to insert trace ISR enter/exit to record usb event
10-
- Give application full control of IRQ handler, can be useful e.g signaling there is new usb event without constant polling
11-
12-
### MCU
13-
14-
- Added support for Espressif ESP32-S2 and saola-1 board
15-
- All default IRQ Handler is renamed to `dcd_int_handler()`
16-
- STM32 Synopsys
17-
- Bus events disconnection/suspend/resume are supported
18-
- Added `dcd_connect()` and `dcd_disconnect()` to enable/disable internal pullup on D+/D- on supported MCUs.
19-
- Added `dcd_edpt_close()` for STM32 FSDev
20-
21-
### Device Stack
22-
23-
- tud_cdc_n_write_flush() return number of bytes forced to transfer instead of bool
3+
## 0.7.0 - 2020.11.08
4+
5+
### Device Controller Driver
6+
7+
- Added new support for Espressif ESP32-S2
8+
- Added new support for Dialog DA1469x
9+
- Enhance STM32 Synopsys
10+
- Support bus events disconnection/suspend/resume/wakeup
11+
- Improve transfer performance with optimizing xfer and fifo size
12+
- Support Highspeed port (OTG_HS) with both internal and external PHY
13+
- Support multiple usb ports with rhport=1 is highspeed on selected MCUs e.g H743, F23. It is possible to have OTG_HS to run on Fullspeed PHY (e.g lacking external PHY)
14+
- Add ISO transfer, fix odd/even frame
15+
- Fix FIFO flush during stall
16+
- Implement dcd_edpt_close() API
17+
- Support F105, F107
18+
- Enhance STM32 fsdev
19+
- Improve dcd fifo allocation
20+
- Fix ISTR race condition
21+
- Support remap USB IRQ on supported MCUs
22+
- Implement dcd_edpt_close() API
23+
- Enhance NUC 505: enhance set configure behavior
24+
- Enhance SAMD
25+
- Fix race condition with setup packet
26+
- Add SAMD11 option `OPT_MCU_SAMD11`
27+
- Add SAME5x option `OPT_MCU_SAME5X`
28+
- Fix SAMG control data toggle and stall race condition
29+
- Enhance nRF
30+
- Fix hanged when tud_task() is called within critical section (disabled interrupt)
31+
- Fix disconnect bus event not submitted
32+
- Implement ISO transfer and dcd_edpt_close()
33+
34+
### USB Device
35+
36+
**USBD**
37+
38+
- Add new class driver for **Bluetooth HCI** class driver with example can be found in [mynewt-tinyusb-example](https://github.com/hathach/mynewt-tinyusb-example) since it needs mynewt OS to run with.
39+
- Fix USBD endpoint usage racing condition with `usbd_edpt_claim()/usbd_edpt_release()`
40+
- Added `tud_task_event_ready()` and `osal_queue_empty()`. This API is needed to check before enter low power mode with WFI/WFE
41+
- Rename USB IRQ Handler to `dcd_int_handler()`. Application must define IRQ handler in which it calls this API.
42+
- Add `dcd_connect()` and `dcd_disconnect()` to enable/disable internal pullup on D+/D- on supported MCUs.
43+
- Add `usbd_edpt_open()`
44+
- Remove `dcd_set_config()`
45+
- Add *OPT_OS_CUMSTOM* as hook for application to overwrite and/or add their own OS implementation
46+
- Support SET_INTERFACE, GET_INTERFACE request
47+
- Add Logging for debug with optional uart/rtt/swo printf retarget or `CFG_TUSB_DEBUG_PRINTF` hook
48+
- Add IAR compiler support
2449
- Support multiple configuration descriptors. `TUD_CONFIG_DESCRIPTOR()` template has extra config_num as 1st argument
25-
- Improve class driver management
26-
- Driver detection is done by open() API
50+
- Improve USB Highspeed support with actual link speed detection with `dcd_event_bus_reset()`
51+
- Enhance class driver management
52+
- `usbd_driver_open()` add max length argument, and return length of interface (0 for not supported). Return value is used for finding appropriate driver
53+
- Add application implemented class driver via `usbd_app_driver_get_cb()`
2754
- IAD is handled to assign driver id
28-
- Improve Alternate Interface request with `SET_INTERFACE()` (not fully supported yet).
29-
- Fixed CDC ZLP response #260
30-
- Remove ACM-EEM due to lack of support from host
31-
32-
### Others
33-
34-
- Added OPT_OS_CUMSTOM as hook for application to overwrite and/or add their own OS implementation
35-
- Enhanced `net_lwip_webserver` example with multiple configuration: RNDIS for Windows, CDC-ECM for macOS (Linux will work with both)
36-
37-
## 0.6.0 - 2019.03.30
55+
- Added `tud_descriptor_device_qualifier_cb()` callback
56+
- Optimize `tu_fifo` bulk write/read transfer
57+
- Forward non-std control request to class driver
58+
- Let application handle Microsoft OS 1.0 Descriptors (the 0xEE index string)
59+
- Fix OSAL FreeRTOS yield from ISR
60+
61+
**Class Drivers**
62+
63+
- USBNET: remove ACM-EEM due to lack of support from host
64+
- USBTMC: fix descriptors when INT EP is disabled
65+
- CDC:
66+
- Send zero length packet for end of data when needed
67+
- Add `tud_cdc_tx_complete_cb()` callback
68+
- Change tud_cdc_n_write_flush() return number of bytes forced to transfer, and flush when writing enough data to fifo
69+
- MIDI:
70+
- Add packet interface
71+
- Add multiple jack descriptors
72+
- Fix MIDI driver for sysex
73+
- DFU Runtime: fix response to SET_INTERFACE and DFU_GETSTATUS request
74+
- Rename some configure macro to make it clear that those are used directly for endpoint transfer
75+
- CFG_TUD_HID_BUFSIZE to `CFG_TUD_HID_EP_BUFSIZE
76+
- CFG_TUD_CDC_EPSIZE to CFG_TUD_CDC_EP_BUFSIZE
77+
- CFG_TUD_MSC_BUFSIZE to CFG_TUD_MSC_EP_BUFSIZE
78+
- CFG_TUD_MIDI_EPSIZE to CFG_TUD_MIDI_EP_BUFSIZE
79+
- HID:
80+
- Fix gamepad template descriptor
81+
- Add multiple HID interface API
82+
- Add extra comma to HID_REPORT_ID
83+
84+
### USB Host
85+
86+
- Rework USB host stack (still work in progress)
87+
- Fix compile error with pipehandle
88+
- Rework usbh control and enumeration as non-blocking
89+
- Improve Hub, MSC, HID host driver
90+
91+
### Examples
92+
93+
- Add new hid_composite_freertos
94+
- Add new dynamic_configuration to demonstrate how to switch configuration descriptors
95+
- Add new hid_multiple_interface
96+
- Enhance `net_lwip_webserver` example
97+
- Add multiple configuration: RNDIS for Windows, CDC-ECM for macOS (Linux will work with both)
98+
- Update lwip to STABLE-2_1_2_RELEASE for net_lwip_webserver
99+
- Added new Audio example: audio_test uac2_headsest
100+
101+
### New Boards
102+
103+
- Espressif ESP32-S2: saola_1, kaluga_1
104+
- STM32: F746 Nucleo, H743 Eval, H743 Nucleo, F723 discovery, stlink v3 mini, STM32L4r5 Nucleo
105+
- Dialog DA1469x dk pro and dk usb
106+
- Microchip: Great Scoot Gadgets' LUNA, samd11_xplained, D5035-01, atsamd21 xplained pro
107+
- nRF: ItsyBitsy nRF52840
108+
109+
## 0.6.0 - 2020.03.30
38110

39111
Added **CONTRIBUTORS.md** to give proper credit for contributors to the stack. Special thanks to [Nathan Conrad](https://github.com/pigrew), [Peter Lawrence](https://github.com/majbthrd) and [William D. Jones](https://github.com/cr1901) and others for spending their precious time to add lots of features and ports for this release.
40112

41113
### Added
42114

43-
**MCU**
115+
**MCUs**
44116

45117
- Added support for Microchip SAMG55
46118
- Added support for Nordic nRF52833

docs/getting_started.md

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@
44

55
It is relatively simple to incorporate tinyusb to your (existing) project
66

7-
1. Copy or `git submodule` this repo into your project in a subfolder. Let's say it is *your_project/tinyusb*
8-
2. Add all the .c in the src folder to your project settings (uvproj, ewp, makefile)
9-
3. Add *your_project/tinysb* to your include path. Also make sure your current include path also contains the configuration file tusb_config.h. Or you could simply put the tusb_config.h into the tinyusb folder as well.
10-
4. Make sure all required macros are all defined properly in tusb_config.h (configure file in demo application is sufficient, but you need to add a few more such as CFG_TUSB_MCU, CFG_TUSB_OS since they are passed by IDE/compiler to maintain a unique configure for all boards).
11-
5. If you use the device stack, make sure you have created/modified usb descriptors for your own need. Ultimately you need to implement all **tud_descriptor_** callbacks for that stack to work.
12-
6. Add tusb_init() call to your reset initialization code.
13-
7. Implement all enabled classes's callbacks.
14-
8. If you don't use any RTOSes at all, you need to continuously and/or periodically call tud_task()/tuh_task() function. All of the callbacks and functionality are handled and invoke within the call of that task runner.
7+
- Copy or `git submodule` this repo into your project in a subfolder. Let's say it is *your_project/tinyusb*
8+
- Add all the .c in the `tinyusb/src` folder to your project
9+
- Add *your_project/tinyusb/src* to your include path. Also make sure your current include path also contains the configuration file tusb_config.h.
10+
- Make sure all required macros are all defined properly in tusb_config.h (configure file in demo application is sufficient, but you need to add a few more such as CFG_TUSB_MCU, CFG_TUSB_OS since they are passed by IDE/compiler to maintain a unique configure for all boards).
11+
- If you use the device stack, make sure you have created/modified usb descriptors for your own need. Ultimately you need to implement all **tud_descriptor_** callbacks for the stack to work.
12+
- Add tusb_init() call to your reset initialization code.
13+
- Call `tud_int_handler()` (device stack) and/or `tuh_int_handler()` in your USB IRQ Handler
14+
- Implement all enabled classes's callbacks.
15+
- If you don't use any RTOSes at all, you need to continuously and/or periodically call tud_task()/tuh_task() function. All of the callbacks and functionality are handled and invoke within the call of that task runner.
1516

1617
~~~{.c}
1718
int main(void)
@@ -23,8 +24,8 @@ int main(void)
2324
{
2425
your_application_code();
2526
26-
tud_task(); // tinyusb device task
27-
tuh_task(); // tinyusb host task
27+
tud_task(); // device task
28+
tuh_task(); // host task
2829
}
2930
}
3031
~~~

src/tusb_option.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
#define _TUSB_OPTION_H_
2929

3030
#define TUSB_VERSION_MAJOR 0
31-
#define TUSB_VERSION_MINOR 5
31+
#define TUSB_VERSION_MINOR 7
3232
#define TUSB_VERSION_REVISION 0
3333
#define TUSB_VERSION_STRING TU_STRING(TUSB_VERSION_MAJOR) "." TU_STRING(TUSB_VERSION_MINOR) "." TU_STRING(TUSB_VERSION_REVISION)
3434

0 commit comments

Comments
 (0)