summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHa Thach <[email protected]>2023-02-10 17:39:04 +0700
committerGitHub <[email protected]>2023-02-10 17:39:04 +0700
commit86c416d4c0fb38432460b3e11b08b9de76941bf5 (patch)
tree38cd7febac00862982f875c2b2437333df75e9e7
parentc0d79457f61cc4ee27336f430a6f96403bd8b289 (diff)
parentf0ab6d824eace8d3e8dc8da47fb072ddb1986ac9 (diff)
Merge pull request #1890 from hathach/release-0.15.00.15.0
update version to 0.15.0
-rw-r--r--.github/workflows/build_arm.yml21
-rw-r--r--docs/info/changelog.rst82
-rw-r--r--repository.yml7
-rw-r--r--src/tusb_option.h2
-rw-r--r--tools/make_release.py40
5 files changed, 136 insertions, 16 deletions
diff --git a/.github/workflows/build_arm.yml b/.github/workflows/build_arm.yml
index 29c41a8eb..96c337462 100644
--- a/.github/workflows/build_arm.yml
+++ b/.github/workflows/build_arm.yml
@@ -171,7 +171,7 @@ jobs:
# - pico-probe is /dev/ttyACM0
# ---------------------------------------
hw-rp2040-test:
- # Limit the run to only hathach due to limited resource on RPI4
+ # run only with hathach's commit due to limited resource on RPI4
if: github.repository_owner == 'hathach'
needs: build-arm
runs-on: [self-hosted, Linux, ARM64, rp2040]
@@ -190,14 +190,15 @@ jobs:
- name: Create flash.sh
run: |
- echo > flash.sh 'cmdout=$(openocd -f "interface/picoprobe.cfg" -f "target/rp2040.cfg" -c "program $1 reset exit")'
+ #echo > flash.sh 'cmdout=$(openocd -f "interface/picoprobe.cfg" -f "target/rp2040.cfg" -c "program $1 reset exit")'
+ echo > flash.sh 'pyocd flash -t rp2040 $1'
echo >> flash.sh 'if (( $? )) ; then echo $cmdout ; fi'
chmod +x flash.sh
- name: Test cdc_dual_ports
run: |
./flash.sh cdc_dual_ports.elf
- while (! ([ -e /dev/ttyACM1 ] && [ -e /dev/ttyACM2 ])) && [ $SECONDS -le 5 ]; do :; done
+ while (! ([ -e /dev/ttyACM1 ] && [ -e /dev/ttyACM2 ])) && [ $SECONDS -le 10 ]; do :; done
test -e /dev/ttyACM1 && echo "ttyACM1 exists"
test -e /dev/ttyACM2 && echo "ttyACM2 exists"
@@ -205,7 +206,7 @@ jobs:
run: |
./flash.sh cdc_msc.elf
readme='/media/pi/TinyUSB MSC/README.TXT'
- while (! ([ -e /dev/ttyACM1 ] && [ -f "$readme" ])) && [ $SECONDS -le 5 ]; do :; done
+ while (! ([ -e /dev/ttyACM1 ] && [ -f "$readme" ])) && [ $SECONDS -le 10 ]; do :; done
test -e /dev/ttyACM1 && echo "ttyACM1 exists"
test -f "$readme" && echo "$readme exists"
cat "$readme"
@@ -213,7 +214,7 @@ jobs:
- name: Test dfu
run: |
./flash.sh dfu.elf
- while (! (dfu-util -l | grep "Found DFU")) && [ $SECONDS -le 5 ]; do :; done
+ while (! (dfu-util -l | grep "Found DFU")) && [ $SECONDS -le 10 ]; do :; done
dfu-util -d cafe -a 0 -U dfu0
dfu-util -d cafe -a 1 -U dfu1
grep "TinyUSB DFU! - Partition 0" dfu0
@@ -222,7 +223,7 @@ jobs:
- name: Test dfu_runtime
run: |
./flash.sh dfu_runtime.elf
- while (! (dfu-util -l | grep "Found Runtime")) && [ $SECONDS -le 5 ]; do :; done
+ while (! (dfu-util -l | grep "Found Runtime")) && [ $SECONDS -le 10 ]; do :; done
# ---------------------------------------
# Hardware in the loop (HIL)
@@ -260,7 +261,7 @@ jobs:
- name: Test cdc_dual_ports
run: |
./flash.sh cdc_dual_ports.elf
- while (! ([ -e /dev/ttyACM1 ] && [ -e /dev/ttyACM2 ])) && [ $SECONDS -le 5 ]; do :; done
+ while (! ([ -e /dev/ttyACM1 ] && [ -e /dev/ttyACM2 ])) && [ $SECONDS -le 10 ]; do :; done
test -e /dev/ttyACM1 && echo "ttyACM1 exists"
test -e /dev/ttyACM2 && echo "ttyACM2 exists"
@@ -270,7 +271,7 @@ jobs:
run: |
./flash.sh cdc_msc.elf
readme='/media/pi/TinyUSB MSC/README.TXT'
- while (! ([ -e /dev/ttyACM1 ] && [ -f "$readme" ])) && [ $SECONDS -le 5 ]; do :; done
+ while (! ([ -e /dev/ttyACM1 ] && [ -f "$readme" ])) && [ $SECONDS -le 10 ]; do :; done
test -e /dev/ttyACM1 && echo "ttyACM1 exists"
test -f "$readme" && echo "$readme exists"
cat "$readme"
@@ -278,7 +279,7 @@ jobs:
- name: Test dfu
run: |
./flash.sh dfu.elf
- while (! (dfu-util -l | grep "Found DFU")) && [ $SECONDS -le 5 ]; do :; done
+ while (! (dfu-util -l | grep "Found DFU")) && [ $SECONDS -le 10 ]; do :; done
dfu-util -d cafe -a 0 -U dfu0
dfu-util -d cafe -a 1 -U dfu1
grep "TinyUSB DFU! - Partition 0" dfu0
@@ -287,4 +288,4 @@ jobs:
- name: Test dfu_runtime
run: |
./flash.sh dfu_runtime.elf
- while (! (dfu-util -l | grep "Found Runtime")) && [ $SECONDS -le 5 ]; do :; done
+ while (! (dfu-util -l | grep "Found Runtime")) && [ $SECONDS -le 10 ]; do :; done
diff --git a/docs/info/changelog.rst b/docs/info/changelog.rst
index bbd182866..451e3dace 100644
--- a/docs/info/changelog.rst
+++ b/docs/info/changelog.rst
@@ -2,6 +2,78 @@
Changelog
*********
+0.15.0
+======
+
+- Add codespell to detect typo
+- Add support for fuzzing and bagde for oss-fuzz
+- [osal]
+
+ - Allow the use of non-static allocation for FreeRTOS
+ - Fix FreeRTOS wrong task switch in some cases
+
+- Fix tu_fifo memory overflown when repeatedly write to overwritable fifo (accumulated more than 2 depths)
+- Better support for IAR (ARM) with ci build check for stm32 mcus.
+- Fix Windows build for some mingw gnu make situations
+
+Controller Driver (DCD & HCD)
+-----------------------------
+
+- Add new port support (WIP) for WCH CH32V307 USB Highspeed
+- Add new port support (WIP) for PIC32MM/MX & PIC24
+
+- [nRF]
+
+ - Fix endpoint internal state when closed
+ - Fix reception of large ISO packets
+
+- [rp2040]
+
+ - [dcd] Implement workaround for Errata 15. This enable SOF when bulk-in endpoint is in use and reduce its bandwidth to only 80%
+ - [hcd] Fix shared irq slots filling up when hcd_init() is called multiple times
+ - [hcd] Support host bulk endpoint using hw "interrupt" endpoint. Note speed limit is 64KB/s
+
+- [samd][dcd] Add support for ISO endpoint
+- [dwc2][dcd] Add support for stm32u5xx
+- [esp32sx] Fix Isochronous transfers only transmitted on even frame
+- [lpc_ip3511][dcd] Add isochronous support and fix endpoint accidental write
+- [ft90x] Improve and enhance support for FT9xx MCU, tested with more examples
+
+Device Stack
+------------
+
+- [Video]
+
+ - Add support for MJPEG
+ - Fix probe on macOS
+
+- [MIDI]
+
+ - Support port name strings
+ - fix MS Header wTotalLength computation
+
+- [HID]
+
+ - Add FIDO descriptor template
+ - change length in tud_hid_report_complete_cb() from uint8 to uint16
+
+- [CDC]
+
+ - Fix autoflush for FIFO < MPS
+ - Fix tx fifo memory overflown when DTR is not set and tud_cdc_write() is called repeatedly with large enough data
+
+- [USBTMC] Fix packet size with highspeed
+
+Host Stack
+----------
+
+- Retry a few times with transfers in enumeration since device can be unstable when starting up
+- [MSC] Rework host masstorage API. Add new **host/msc_file_explorer** example
+- [CDC]
+
+ - Add support for host cdc
+ - Fix host cdc with device without IAD e.g Arduino Due
+
0.14.0
======
@@ -9,7 +81,8 @@ Changelog
- Add timeout to osal_queue_receive()
- Add tud_task_ext(timeout, in_isr) as generic version of tud_task(). Same as tuh_task_ext(), tuh_task()
- Enable more warnings -Wnull-dereference -Wuninitialized -Wunused -Wredundant-decls -Wconversion
-- Add new examples
+- Add new examples
+
- host/bare_api to demonstrate generic (app-level) enumeration and endpoint transfer
- dual/host_hid_to_device_cdc to run both device and host stack concurrently, get HID report from host and print out to device CDC. This example only work with multiple-controller MCUs and rp2040 with the help of pio-usb as added controller.
@@ -17,10 +90,12 @@ Controller Driver (DCD & HCD)
-----------------------------
- Enhance rhports management to better support dual roles
+
- CFG_TUD_ENABLED/CFG_TUH_ENABLED, CFG_TUD_MAX_SPEED/CFG_TUH_MAX_SPEED can be used to replace CFG_TUSB_RHPORT0_MODE/CFG_TUSB_RHPORT1_MODE
- tud_init(rphort), tuh_init(rhport) can be used to init stack on specified roothub port (controller) instead of tusb_init(void)
- Add dcd/hcd port specific defines TUP_ (stand for tinyusb port-specific)
- [dwc2]
+
- Update to support stm32 h72x, h73x with only 1 otg controller
- Fix overwrite with grstctl when disable endpoint
- [EHCI] Fix an issue with EHCI driver
@@ -28,6 +103,7 @@ Controller Driver (DCD & HCD)
- [nrf5x] Fix DMA access race condition using atomic function
- [pic32] Fix PIC32 santiy
- [rp2040]
+
- Add PICO-PIO-USB as controller (device/host) support for rp2040
- Use shared IRQ handlers, so user can also hook the USB IRQ
- Fix resumed signal not reported to device stack
@@ -37,10 +113,12 @@ Device Stack
------------
- [Audio] Add support for feedback endpoint computation
+
- New API tud_audio_feedback_params_cb(), tud_audio_feedback_interval_isr().
- Supported computation method are: frequency with fixed/float or power of 2. Feedback with fifo count is not yet supported.
- Fix nitfs (should be 3) in TUD_AUDIO_HEADSET_STEREO_DESCRIPTOR
- Fix typo in audiod_rx_done_cb()
+
- [DFU] Fix coexistence with other interfaces BTH, RNDIS
- [MSC] Fix inquiry response additional length field
- [Venndor] Improve write performance
@@ -52,9 +130,11 @@ Host Stack
- [HID] Open OUT endpoint if available
- [Hub] hub clear port and device interrupts
- [USBH] Major improvement
+
- Rework usbh control transfer with complete callback. New API tuh_control_xfer() though still only carry 1 usbh (no queueing) at a time.
- Add generic endpoint transfer with tuh_edpt_open(), tuh_edpt_xfer(). Require `CFG_TUH_API_EDPT_XFER=1`
- Support app-level enumeration with new APIs
+
- tuh_descriptor_get(), tuh_descriptor_get_device(), tuh_descriptor_get_configuration(), tuh_descriptor_get_hid_report()
- tuh_descriptor_get_string(), tuh_descriptor_get_manufacturer_string(), tuh_descriptor_get_product_string(), tuh_descriptor_get_serial_string()
- Also add _sync() as sync/blocking version for above APIs
diff --git a/repository.yml b/repository.yml
index dc341a3c1..702753a90 100644
--- a/repository.yml
+++ b/repository.yml
@@ -12,7 +12,6 @@ repo.versions:
"0.12.0": "0.12.0"
"0.13.0": "0.13.0"
"0.14.0": "0.14.0"
-
- "0-dev": "0.0.0" # master
- "0-latest": "0.14.0" # latest stable release
-
+ "0.15.0": "0.15.0"
+ "0-latest": "0.15.0"
+ "0-dev": "0.0.0"
diff --git a/src/tusb_option.h b/src/tusb_option.h
index cf5b21c9c..eb46ce295 100644
--- a/src/tusb_option.h
+++ b/src/tusb_option.h
@@ -30,7 +30,7 @@
#include "common/tusb_compiler.h"
#define TUSB_VERSION_MAJOR 0
-#define TUSB_VERSION_MINOR 14
+#define TUSB_VERSION_MINOR 15
#define TUSB_VERSION_REVISION 0
#define TUSB_VERSION_STRING TU_STRING(TUSB_VERSION_MAJOR) "." TU_STRING(TUSB_VERSION_MINOR) "." TU_STRING(TUSB_VERSION_REVISION)
diff --git a/tools/make_release.py b/tools/make_release.py
new file mode 100644
index 000000000..7481e8864
--- /dev/null
+++ b/tools/make_release.py
@@ -0,0 +1,40 @@
+import re
+
+version = '0.15.0'
+
+print('version {}'.format(version))
+ver_id = version.split('.')
+
+###################
+# src/tusb_option.h
+###################
+f_option_h = 'src/tusb_option.h'
+
+with open(f_option_h) as f:
+ fdata = f.read()
+
+fdata = re.sub(r'(#define TUSB_VERSION_MAJOR *) \d+', r"\1 {}".format(ver_id[0]), fdata)
+fdata = re.sub(r'(#define TUSB_VERSION_MINOR *) \d+', r"\1 {}".format(ver_id[1]), fdata)
+fdata = re.sub(r'(#define TUSB_VERSION_REVISION *) \d+', r"\1 {}".format(ver_id[2]), fdata)
+
+# Write the file out again
+with open(f_option_h, 'w') as f:
+ f.write(fdata)
+
+###################
+# repository.yml
+###################
+f_repository_yml = 'repository.yml'
+with open(f_repository_yml) as f:
+ fdata = f.read()
+
+if fdata.find(version) < 0:
+ fdata = re.sub(r'("0-latest"): "\d+\.\d+\.\d+"', r'"{}": "{}"\r\n \1: "{}"'.format(version, version, version), fdata)
+ with open(f_repository_yml, 'w') as f:
+ f.write(fdata)
+
+###################
+# docs/info/changelog.rst
+###################
+
+print("Update docs/info/changelog.rst")