Skip to content

Commit

Permalink
Update tinyusb library to compatible with 1.2.0 (#303)
Browse files Browse the repository at this point in the history
* more Adafruit_TinyUSB include

* add metro m0 m4 with tinyusb to ci

* correct fqbn

* support ci with tinyusb variant

bump zeroDMA and fix warnings with USBHost library example

* install missing libraries

* more libraries

* update tinyusb library to 1.2.0

increase version to 1.7.3
  • Loading branch information
hathach authored Jun 25, 2021
1 parent 4e51791 commit 2037467
Show file tree
Hide file tree
Showing 9 changed files with 34 additions and 113 deletions.
14 changes: 5 additions & 9 deletions .github/workflows/githubci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ jobs:
- 'pyportal_m4'
- 'pyportal_m4_titano'
- 'feather_m4_can'
- 'metro_m0:usbstack=tinyusb'
- 'metro_m4:speed=120,usbstack=tinyusb'

runs-on: ubuntu-latest

Expand All @@ -30,14 +32,9 @@ jobs:

- name: Checkout code
uses: actions/checkout@v2
with:
submodules: 'true'

- name: Checkout submodules
shell: bash
run: |
auth_header="$(git config --local --get http.https://github.com/.extraheader)"
git submodule sync --recursive
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive
- name: Install Arduino CLI and Tools
run: |
# make all our directories we need for files and libraries
Expand All @@ -52,7 +49,6 @@ jobs:
env:
BSP_URL: https://adafruit.github.io/arduino-board-index/package_adafruit_index.json
BSP_PATH: .arduino15/packages/adafruit/hardware/samd
LIB_DEPS: FlashStorage SD
run: |
arduino-cli config init
arduino-cli core update-index
Expand All @@ -63,7 +59,7 @@ jobs:
BSP_VERSION=`eval ls $HOME/$BSP_PATH`
rm -r $HOME/$BSP_PATH/*
ln -s $GITHUB_WORKSPACE $HOME/$BSP_PATH/$BSP_VERSION
arduino-cli lib install $LIB_DEPS
arduino-cli lib install "Adafruit NeoPixel" "Adafruit seesaw Library" "Adafruit SPIFlash" "FlashStorage" "MIDI Library" "SD" "SdFat - Adafruit Fork"
- name: Build examples
run: python3 extras/build_all.py ${{ matrix.board }}
93 changes: 0 additions & 93 deletions cores/arduino/tusb_config.h

This file was deleted.

21 changes: 13 additions & 8 deletions extras/build_all.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,13 @@
fail_count = 0
skip_count = 0

build_format = '| {:20} | {:35} | {:18} | {:6} |'
build_separator = '-' * 83
build_format = '| {:25} | {:35} | {:18} | {:6} |'
build_separator = '-' * 88

FQBN_PREFIX='adafruit:samd:adafruit_'

default_boards = [ 'metro_m0', 'metro_m4', 'circuitplayground_m0', 'feather_m4_can' ]
#default_boards = [ 'metro_m0', 'metro_m4', 'circuitplayground_m0', 'feather_m4_can', 'metro_m0:usbstack=tinyusb', 'metro_m4:speed=120,usbstack=tinyusb' ]
default_boards = [ 'metro_m0', 'metro_m0:usbstack=tinyusb' ]
build_boards = []

# build all variants if input not existed
Expand All @@ -37,18 +38,14 @@ def build_examples(variant):

print('\n')
print(build_separator)
print('| {:^79} |'.format('Board ' + variant))
print('| {:^84} |'.format('Board ' + variant))
print(build_separator)
print(build_format.format('Library', 'Example', '\033[39mResult\033[0m', 'Time'))
print(build_separator)

fqbn = "{}{}".format(FQBN_PREFIX, variant)

for sketch in all_examples:
# TODO skip TinyUSB library examples for now
if "libraries/Adafruit_TinyUSB_Arduino" in sketch:
continue

start_time = time.monotonic()

# Skip if contains: ".board.test.skip" or ".all.test.skip"
Expand All @@ -60,6 +57,14 @@ def build_examples(variant):
elif glob.glob(sketchdir+"/.*.test.only") and not os.path.exists(sketchdir + '/.' + variant + '.test.only'):
success = SKIPPED
skip_count += 1
elif 'usbstack=tinyusb' not in variant and "libraries/Adafruit_TinyUSB_Arduino" in sketch:
# skip non-tinyusb variant for tinyusb examples
success = SKIPPED
skip_count += 1
elif 'usbstack=tinyusb' in variant and "libraries/USBHost" in sketch:
# skip -tinyusb variant for USBHost examples
success = SKIPPED
skip_count += 1
else:
build_result = subprocess.run("arduino-cli compile --warnings all --fqbn {} {}".format(fqbn, sketch), shell=True, stdout=PIPE, stderr=PIPE)

Expand Down
2 changes: 1 addition & 1 deletion libraries/Adafruit_TinyUSB_Arduino
Submodule Adafruit_TinyUSB_Arduino updated 70 files
+2 −1 .github/ISSUE_TEMPLATE/bug_report.md
+1 −2 .github/workflows/githubci.yml
+17 −0 changelog.md
+91 −0 examples/CDC/cdc_multi/cdc_multi.ino
+1 −1 examples/Composite/hid_generic_inout_ramdisk/ramdisk.h
+0 −0 examples/Composite/mouse_external_flash/.feather_rp2040_tinyusb.test.skip
+1 −1 examples/Composite/mouse_ramdisk/ramdisk.h
+4 −4 examples/HID/hid_gamepad/hid_gamepad.ino
+0 −0 examples/MassStorage/msc_external_flash/.feather_rp2040_tinyusb.test.skip
+0 −0 examples/MassStorage/msc_external_flash_sdcard/.feather_rp2040_tinyusb.test.skip
+1 −1 examples/MassStorage/msc_ramdisk/ramdisk.h
+2 −6 examples/MassStorage/msc_ramdisk_dual/ramdisk.h
+0 −0 examples/MassStorage/msc_sd/.feather_rp2040_tinyusb.test.skip
+0 −0 examples/MassStorage/msc_sdfat/.feather_rp2040_tinyusb.test.skip
+1 −1 library.properties
+5 −3 src/Adafruit_TinyUSB.h
+6 −3 src/arduino/Adafruit_TinyUSB_API.cpp
+87 −29 src/arduino/Adafruit_USBD_CDC.cpp
+18 −2 src/arduino/Adafruit_USBD_CDC.h
+6 −1 src/arduino/Adafruit_USBD_Device.cpp
+210 −0 src/arduino/ports/esp32/Adafruit_TinyUSB_esp32.cpp
+86 −0 src/arduino/ports/esp32/tusb_config_esp32.h
+0 −0 src/arduino/ports/nrf/Adafruit_TinyUSB_nrf.cpp
+90 −0 src/arduino/ports/nrf/tusb_config_nrf.h
+0 −0 src/arduino/ports/rp2040/Adafruit_TinyUSB_rp2040.cpp
+90 −0 src/arduino/ports/rp2040/tusb_config_rp2040.h
+9 −6 src/arduino/ports/samd/Adafruit_TinyUSB_samd.cpp
+92 −0 src/arduino/ports/samd/tusb_config_samd.h
+5 −4 src/class/audio/audio_device.c
+0 −4 src/class/audio/audio_device.h
+0 −1 src/class/bth/bth_device.c
+3 −1 src/class/cdc/cdc_device.c
+0 −1 src/class/cdc/cdc_device.h
+118 −0 src/class/dfu/dfu.h
+25 −36 src/class/dfu/dfu_rt_device.c
+3 −25 src/class/dfu/dfu_rt_device.h
+61 −18 src/class/hid/hid.h
+5 −4 src/class/hid/hid_device.c
+10 −12 src/class/hid/hid_device.h
+11 −9 src/class/midi/midi_device.c
+0 −3 src/class/midi/midi_device.h
+0 −10 src/class/msc/msc.h
+4 −3 src/class/msc/msc_device.c
+30 −42 src/class/msc/msc_device.h
+3 −1 src/class/net/net_device.c
+0 −2 src/class/net/net_device.h
+2 −6 src/class/usbtmc/usbtmc_device.c
+5 −3 src/class/vendor/vendor_device.c
+0 −1 src/class/vendor/vendor_device.h
+47 −21 src/common/tusb_common.h
+0 −2 src/common/tusb_fifo.c
+13 −15 src/common/tusb_fifo.h
+23 −0 src/common/tusb_types.h
+2 −1 src/device/dcd.h
+19 −7 src/device/usbd.c
+15 −4 src/device/usbd.h
+1 −1 src/device/usbd_control.c
+3 −3 src/device/usbd_pvt.h
+0 −1 src/portable/espressif/esp32sx/dcd_esp32sx.c
+2 −2 src/portable/microchip/samd/dcd_samd.c
+41 −18 src/portable/nordic/nrf5x/dcd_nrf5x.c
+531 −0 src/portable/raspberrypi/rp2040/dcd_rp2040.c
+538 −0 src/portable/raspberrypi/rp2040/hcd_rp2040.c
+325 −0 src/portable/raspberrypi/rp2040/rp2040_usb.c
+160 −0 src/portable/raspberrypi/rp2040/rp2040_usb.h
+0 −1 src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c
+0 −2 src/portable/st/synopsys/dcd_synopsys.c
+5 −1 src/tusb.h
+52 −0 src/tusb_config.h
+17 −5 src/tusb_option.h
6 changes: 6 additions & 0 deletions libraries/I2S/src/I2S.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,12 @@ static I2SDevice_SAMD21G18x i2sd(*I2S);

#include "I2S.h"

#ifdef USE_TINYUSB
// For Serial when selecting TinyUSB
#include <Adafruit_TinyUSB.h>
#endif


int I2SClass::_beginCount = 0;

I2SClass::I2SClass(uint8_t deviceIndex, uint8_t clockGenerator, uint8_t sdPin, uint8_t sckPin, uint8_t fsPin) :
Expand Down
5 changes: 5 additions & 0 deletions libraries/Servo/src/samd/Servo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@
#include <Arduino.h>
#include <Servo.h>

#ifdef USE_TINYUSB
// For Serial when selecting TinyUSB
#include <Adafruit_TinyUSB.h>
#endif

#if defined(__SAMD51__)
// Different prescalers depending on FCPU (avoid overflowing 16-bit counter)
#if(F_CPU > 200000000)
Expand Down
2 changes: 2 additions & 0 deletions libraries/USBHost/examples/USB_desc/USB_desc.ino
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,7 @@ byte getconfdescr( byte addr, byte conf )
uint16_t total_length;
// FIXME -- no check of return code from usb.getConfDescr()
rcode = usb.getConfDescr( addr, 0, 4, conf, buf ); //get total length
(void) rcode;
LOBYTE( total_length ) = buf[ 2 ];
HIBYTE( total_length ) = buf[ 3 ];
if( total_length > sizeof(buf)) { //check if total length is larger than buffer
Expand All @@ -224,6 +225,7 @@ byte getconfdescr( byte addr, byte conf )
}
// FIXME -- no check of return code from usb.getConfDescr()
rcode = usb.getConfDescr( addr, 0, total_length, conf, buf ); //get the whole descriptor
(void) rcode;
while( buf_ptr < buf + total_length ) { //parsing descriptors
descr_length = *( buf_ptr );
descr_type = *( buf_ptr + 1 );
Expand Down
2 changes: 1 addition & 1 deletion platform.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
# https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification

name=Adafruit SAMD (32-bits ARM Cortex-M0+ and Cortex-M4) Boards
version=1.7.2
version=1.7.3

# Compile variables
# -----------------
Expand Down

0 comments on commit 2037467

Please sign in to comment.