mirror of
https://github.com/hathach/tinyusb.git
synced 2026-02-05 09:55:35 +00:00
Merge branch 'refs/heads/master' into fork/jay94ks/styluspen
This commit is contained in:
@ -114,7 +114,7 @@ commands:
|
||||
name: Build
|
||||
command: |
|
||||
if [ << parameters.toolchain >> == esp-idf ]; then
|
||||
docker run --rm -v $PWD:/project -w /project espressif/idf:v5.3.1 python tools/build.py << parameters.family >>
|
||||
docker run --rm -v $PWD:/project -w /project espressif/idf:v5.3.2 python tools/build.py << parameters.family >>
|
||||
else
|
||||
# Toolchain option default is gcc
|
||||
if [ << parameters.toolchain >> == arm-clang ]; then
|
||||
|
||||
4
.github/actions/setup_toolchain/action.yml
vendored
4
.github/actions/setup_toolchain/action.yml
vendored
@ -4,9 +4,6 @@ inputs:
|
||||
toolchain:
|
||||
description: 'Toolchain name'
|
||||
required: true
|
||||
toolchain_version:
|
||||
description: 'Toolchain version'
|
||||
required: false
|
||||
|
||||
outputs:
|
||||
build_option:
|
||||
@ -27,7 +24,6 @@ runs:
|
||||
uses: ./.github/actions/setup_toolchain/espressif
|
||||
with:
|
||||
toolchain: ${{ inputs.toolchain }}
|
||||
toolchain_version: ${{ inputs.toolchain_version }}
|
||||
|
||||
- name: Get Toolchain URL
|
||||
if: >-
|
||||
|
||||
@ -6,7 +6,8 @@ inputs:
|
||||
required: true
|
||||
toolchain_version:
|
||||
description: 'Toolchain version'
|
||||
required: true
|
||||
required: false
|
||||
default: 'v5.3.2'
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
@ -39,3 +40,9 @@ runs:
|
||||
du -sh $DOCKER_ESP_IDF
|
||||
docker load --input $DOCKER_ESP_IDF
|
||||
shell: bash
|
||||
|
||||
- name: Tag Local Image
|
||||
run: |
|
||||
docker tag espressif/idf:${{ inputs.toolchain_version }} espressif/idf:tinyusb
|
||||
docker images
|
||||
shell: bash
|
||||
|
||||
24
.github/workflows/build.yml
vendored
24
.github/workflows/build.yml
vendored
@ -111,6 +111,7 @@ jobs:
|
||||
|
||||
# ---------------------------------------
|
||||
# Build IAR on HFP self-hosted
|
||||
# Since IAR Token secret is not passed to forked PR, only build on PR from the same repo
|
||||
# ---------------------------------------
|
||||
arm-iar:
|
||||
if: github.repository_owner == 'hathach' && github.event_name == 'push'
|
||||
@ -118,7 +119,7 @@ jobs:
|
||||
runs-on: [self-hosted, Linux, X64, hifiphile]
|
||||
env:
|
||||
BUILD_ARGS: ${{ join(fromJSON(needs.set-matrix.outputs.json)['arm-iar'], ' ') }}
|
||||
# IAR_LMS_BEARER_TOKEN: ${{ secrets.IAR_LMS_BEARER_TOKEN }}
|
||||
IAR_LMS_BEARER_TOKEN: ${{ secrets.IAR_LMS_BEARER_TOKEN }}
|
||||
steps:
|
||||
- name: Clean workspace
|
||||
run: |
|
||||
@ -137,3 +138,24 @@ jobs:
|
||||
|
||||
- name: Build
|
||||
run: python3 tools/build.py --one-per-family --toolchain iar $BUILD_ARGS
|
||||
|
||||
# ---------------------------------------
|
||||
# Zephyr
|
||||
# ---------------------------------------
|
||||
zephyr:
|
||||
if: github.event_name == 'push'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout TinyUSB
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Zephyr project
|
||||
uses: zephyrproject-rtos/action-zephyr-setup@v1
|
||||
with:
|
||||
app-path: examples
|
||||
toolchains: arm-zephyr-eabi
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
west build -b pca10056 -d examples/device/cdc_msc/build examples/device/cdc_msc -- -DRTOS=zephyr
|
||||
west build -b pca10056 -d examples/device/msc_dual_lun/build examples/device/msc_dual_lun -- -DRTOS=zephyr
|
||||
|
||||
3
.github/workflows/build_util.yml
vendored
3
.github/workflows/build_util.yml
vendored
@ -41,7 +41,6 @@ jobs:
|
||||
uses: ./.github/actions/setup_toolchain
|
||||
with:
|
||||
toolchain: ${{ inputs.toolchain }}
|
||||
toolchain_version: 'v5.3.1'
|
||||
|
||||
- name: Get Dependencies
|
||||
uses: ./.github/actions/get_deps
|
||||
@ -61,7 +60,7 @@ jobs:
|
||||
- name: Build
|
||||
run: |
|
||||
if [ "${{ inputs.toolchain }}" == "esp-idf" ]; then
|
||||
docker run --rm -v $PWD:/project -w /project espressif/idf:v5.3.1 python tools/build.py ${{ matrix.arg }}
|
||||
docker run --rm -v $PWD:/project -w /project espressif/idf:tinyusb python tools/build.py ${{ matrix.arg }}
|
||||
else
|
||||
python tools/build.py -s ${{ inputs.build-system }} ${{ steps.setup-toolchain.outputs.build_option }} ${{ steps.set-one-per-family.outputs.build_option }} ${{ matrix.arg }}
|
||||
fi
|
||||
|
||||
7
.github/workflows/hil_test.yml
vendored
7
.github/workflows/hil_test.yml
vendored
@ -90,12 +90,13 @@ jobs:
|
||||
# ---------------------------------------
|
||||
# Hardware in the loop (HIL)
|
||||
# self-hosted by HFP, build with IAR toolchain, for attached hardware checkout test/hil/hfp.json
|
||||
# Since IAR Token secret is not passed to forked PR, only build on PR from the same repo
|
||||
# ---------------------------------------
|
||||
hil-hfp:
|
||||
if: github.repository_owner == 'hathach'
|
||||
if: github.repository_owner == 'hathach' && github.event.pull_request.head.repo.fork == false
|
||||
runs-on: [self-hosted, Linux, X64, hifiphile]
|
||||
#env:
|
||||
# IAR_LMS_BEARER_TOKEN: ${{ secrets.IAR_LMS_BEARER_TOKEN }}
|
||||
env:
|
||||
IAR_LMS_BEARER_TOKEN: ${{ secrets.IAR_LMS_BEARER_TOKEN }}
|
||||
steps:
|
||||
- name: Clean workspace
|
||||
run: |
|
||||
|
||||
6
.idea/cmake.xml
generated
6
.idea/cmake.xml
generated
@ -80,12 +80,14 @@
|
||||
<configuration PROFILE_NAME="samd11_xplained" ENABLED="false" CONFIG_NAME="MinSizeRel" GENERATION_OPTIONS="-DBOARD=samd11_xplained" />
|
||||
<configuration PROFILE_NAME="atsaml21_xpro" ENABLED="false" GENERATION_OPTIONS="-DBOARD=atsaml21_xpro" />
|
||||
<configuration PROFILE_NAME="feather_m4_express" ENABLED="false" CONFIG_NAME="Debug" GENERATION_OPTIONS="-DBOARD=feather_m4_express -DLOG=1 -DLOGGER=RTT -DMAX3421_HOST=1" />
|
||||
<configuration PROFILE_NAME="metro_m4_express" ENABLED="false" CONFIG_NAME="Debug" GENERATION_OPTIONS="-DBOARD=metro_m4_express -DLOG=1 -DLOGGER=RTT -DMAX3421_HOST=1" />
|
||||
<configuration PROFILE_NAME="metro_m4_express" ENABLED="true" CONFIG_NAME="Debug" GENERATION_OPTIONS="-DBOARD=metro_m4_express -DLOG=1 -DLOGGER=RTT -DMAX3421_HOST=1" />
|
||||
<configuration PROFILE_NAME="feather_m4_express-zephyr" ENABLED="false" CONFIG_NAME="Debug" GENERATION_OPTIONS="-DBOARD=feather_m4_express -DLOG=1 -DMAX3421_HOST=1 -DRTOS=zephyr" />
|
||||
<configuration PROFILE_NAME="itsybitsy_m4" ENABLED="false" CONFIG_NAME="Debug" GENERATION_OPTIONS="-DBOARD=itsybitsy_m4" />
|
||||
<configuration PROFILE_NAME="same54_xplained" ENABLED="false" GENERATION_OPTIONS="-DBOARD=same54_xplained -DLOG=1 -DLOGGER=RTT" />
|
||||
<configuration PROFILE_NAME="samg55_xplained" ENABLED="false" GENERATION_OPTIONS="-DBOARD=samg55_xplained" />
|
||||
<configuration PROFILE_NAME="feather_nrf52840_express" ENABLED="false" CONFIG_NAME="Debug" GENERATION_OPTIONS="-DBOARD=feather_nrf52840_express -DLOG=1 -DLOGGER=RTT -DMAX3421_HOST=1" />
|
||||
<configuration PROFILE_NAME="pca10056" ENABLED="false" CONFIG_NAME="Debug" GENERATION_OPTIONS="-DBOARD=pca10056 -DLOG=1 -DLOGGER=RTT -DTRACE_ETM=1" />
|
||||
<configuration PROFILE_NAME="pca10056" ENABLED="true" CONFIG_NAME="Debug" GENERATION_OPTIONS="-DBOARD=pca10056 -DLOG=1 -DLOGGER=RTT -DTRACE_ETM=1" />
|
||||
<configuration PROFILE_NAME="pca10056-zephyr" ENABLED="true" CONFIG_NAME="Debug" GENERATION_OPTIONS="-DBOARD=pca10056 -DLOG=1 -DTRACE_ETM=1 -DRTOS=zephyr" BUILD_OPTIONS="-v" />
|
||||
<configuration PROFILE_NAME="pca10095" ENABLED="false" CONFIG_NAME="Debug" GENERATION_OPTIONS="-DBOARD=pca10095 -DLOG=1 -DLOGGER=RTT -DTRACE_ETM=1" />
|
||||
<configuration PROFILE_NAME="metro m7 1011 sd" ENABLED="false" CONFIG_NAME="Debug" GENERATION_OPTIONS="-DBOARD=metro_m7_1011_sd -DLOG=1 -DLOGGER=RTT -DTRACE_ETM=1" />
|
||||
<configuration PROFILE_NAME="metro_m7_1011" ENABLED="false" CONFIG_NAME="Debug" GENERATION_OPTIONS="-DBOARD=metro_m7_1011 -DLOG=1 -DLOGGER=RTT" />
|
||||
|
||||
240
README.rst
240
README.rst
@ -43,12 +43,12 @@ Getting started
|
||||
|
||||
See the `online documentation <https://docs.tinyusb.org>`_ for information about using TinyUSB and how it is implemented.
|
||||
|
||||
Check out `Getting Started`_ guide for adding TinyUSB to your project or building the examples. If you are new to TinyUSB, we recommend starting with the `cdc_msc` example. There is a handful of `Supported Boards`_ that should work out of the box.
|
||||
|
||||
We use `GitHub Discussions <https://github.com/hathach/tinyusb/discussions>`_ as our forum. It is a great place to ask questions and advice from the community or to discuss your TinyUSB-based projects.
|
||||
|
||||
For bugs and feature requests, please `raise an issue <https://github.com/hathach/tinyusb/issues>`_ and follow the templates there.
|
||||
|
||||
Check out `Getting Started`_ guide for adding TinyUSB to your project or building the examples. If you are new to TinyUSB, we recommend starting with the `cdc_msc` example.
|
||||
|
||||
See `Porting`_ guide for adding support for new MCUs and boards.
|
||||
|
||||
Device Stack
|
||||
@ -82,8 +82,8 @@ Host Stack
|
||||
|
||||
Similar to the Device Stack, if you have a special requirement, `usbh_app_driver_get_cb()` can be used to write your own class driver without modifying the stack.
|
||||
|
||||
TypeC PD Stack
|
||||
==============
|
||||
Power Delivery Stack
|
||||
====================
|
||||
|
||||
- Power Delivery 3.0 (PD3.0) with USB Type-C support (WIP)
|
||||
- Super early stage, only for testing purpose
|
||||
@ -102,100 +102,145 @@ TinyUSB is completely thread-safe by pushing all Interrupt Service Request (ISR)
|
||||
Supported CPUs
|
||||
==============
|
||||
|
||||
Following CPUs are supported, check out `Supported Devices`_ for comprehensive list of driver, features for each CPU.
|
||||
+--------------+-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| Manufacturer | Family | Device | Host | Highspeed | Driver | Note |
|
||||
+==============+=============================+========+======+===========+========================+===================+
|
||||
| Allwinner | F1C100s/F1C200s | ✔ | | ✔ | sunxi | musb variant |
|
||||
+--------------+-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| Analog | MAX3421E | | ✔ | ✖ | max3421 | via SPI |
|
||||
| +-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | MAX32 650, 666, 690, | ✔ | | ✔ | musb | 1-dir ep |
|
||||
| | MAX78002 | | | | | |
|
||||
+--------------+-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| Brigetek | FT90x | ✔ | | ✔ | ft9xx | 1-dir ep |
|
||||
+--------------+-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| Broadcom | BCM2711, BCM2837 | ✔ | | ✔ | dwc2 | |
|
||||
+--------------+-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| Dialog | DA1469x | ✔ | ✖ | ✖ | da146xx | |
|
||||
+--------------+-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| Espressif | S2, S3 | ✔ | ✔ | ✖ | dwc2 or esp32sx | |
|
||||
| ESP32 +-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | P4 | ✔ | ✔ | ✔ | dwc2 | |
|
||||
+--------------+----+------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| GigaDevice | GD32VF103 | ✔ | | ✖ | dwc2 | |
|
||||
+--------------+-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| Infineon | XMC4500 | ✔ | ✔ | ✖ | dwc2 | |
|
||||
+--------------+-----+-----------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| MicroChip | SAM | D11, D21, L21, L22 | ✔ | | ✖ | samd | |
|
||||
| | +-----------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | D51, E5x | ✔ | | ✖ | samd | |
|
||||
| | +-----------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | G55 | ✔ | | ✖ | samg | 1-dir ep |
|
||||
| | +-----------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | E70,S70,V70,V71 | ✔ | | ✔ | samx7x | 1-dir ep |
|
||||
| +-----+-----------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | PIC | 24 | ✔ | | | pic | ci_fs variant |
|
||||
| | +-----------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | 32 mm, mk, mx | ✔ | | | pic | ci_fs variant |
|
||||
| | +-----------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | dsPIC33 | ✔ | | | pic | ci_fs variant |
|
||||
| | +-----------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | 32mz | ✔ | | | pic32mz | musb variant |
|
||||
+--------------+-----+-----------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| Mind Montion | mm32 | ✔ | | ✖ | mm32f327x_otg | ci_fs variant |
|
||||
+--------------+-----+-----------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| NordicSemi | nRF 52833, 52840, 5340 | ✔ | ✖ | ✖ | nrf5x | only ep8 is ISO |
|
||||
+--------------+-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| Nuvoton | NUC120 | ✔ | ✖ | ✖ | nuc120 | |
|
||||
| +-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | NUC121/NUC125 | ✔ | ✖ | ✖ | nuc121 | |
|
||||
| +-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | NUC126 | ✔ | ✖ | ✖ | nuc121 | |
|
||||
| +-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | NUC505 | ✔ | | ✔ | nuc505 | |
|
||||
+--------------+---------+-------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| NXP | iMXRT | RT 10xx, 11xx | ✔ | ✔ | ✔ | ci_hs | |
|
||||
| +---------+-------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | Kinetis | KL | ✔ | ⚠ | ✖ | ci_fs, khci | |
|
||||
| | +-------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | K32L2 | ✔ | | ✖ | khci | ci_fs variant |
|
||||
| +---------+-------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | LPC | 11u, 13, 15 | ✔ | ✖ | ✖ | lpc_ip3511 | |
|
||||
| | +-------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | 17, 40 | ✔ | ⚠ | ✖ | lpc17_40 | |
|
||||
| | +-------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | 18, 43 | ✔ | ✔ | ✔ | ci_hs | |
|
||||
| | +-------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | 51u | ✔ | ✖ | ✖ | lpc_ip3511 | |
|
||||
| | +-------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | 54, 55 | ✔ | | ✔ | lpc_ip3511 | |
|
||||
| +---------+-------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | MCX | N9, A15 | ✔ | | ✔ | ci_fs, ci_hs | |
|
||||
+--------------+---------+-------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| Raspberry Pi | RP2040, RP2350 | ✔ | ✔ | ✖ | rp2040, pio_usb | |
|
||||
+--------------+-----+-----------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| Renesas | RX | 63N, 65N, 72N | ✔ | ✔ | ✖ | rusb2 | |
|
||||
| +-----+-----------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | RA | 4M1, 4M3, 6M1 | ✔ | ✔ | ✖ | rusb2 | |
|
||||
| | +-----------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | 6M5 | ✔ | ✔ | ✔ | rusb2 | |
|
||||
+--------------+-----+-----------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| Silabs | EFM32GG12 | ✔ | | ✖ | dwc2 | |
|
||||
+--------------+-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| Sony | CXD56 | ✔ | ✖ | ✔ | cxd56 | |
|
||||
+--------------+-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| ST STM32 | F0 | ✔ | ✖ | ✖ | stm32_fsdev | |
|
||||
| +----+------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | F1 | 102, 103 | ✔ | ✖ | ✖ | stm32_fsdev | |
|
||||
| | +------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | 105, 107 | ✔ | ✔ | ✖ | dwc2 | |
|
||||
| +----+------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | F2, F4, F7, H7 | ✔ | ✔ | ✔ | dwc2 | |
|
||||
| +-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | F3 | ✔ | ✖ | ✖ | stm32_fsdev | |
|
||||
| +-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | C0, G0, H5 | ✔ | | ✖ | stm32_fsdev | |
|
||||
| +-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | G4 | ✔ | ✖ | ✖ | stm32_fsdev | |
|
||||
| +-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | L0, L1 | ✔ | ✖ | ✖ | stm32_fsdev | |
|
||||
| +----+------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | L4 | 4x2, 4x3 | ✔ | ✖ | ✖ | stm32_fsdev | |
|
||||
| | +------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | 4x5, 4x6 | ✔ | ✔ | ✖ | dwc2 | |
|
||||
| +----+------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | L4+ | ✔ | ✔ | ✖ | dwc2 | |
|
||||
| +-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | L5 | ✔ | ✖ | ✖ | stm32_fsdev | |
|
||||
| +----+------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | U5 | 535, 545 | ✔ | | ✖ | stm32_fsdev | |
|
||||
| | +------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | 575, 585 | ✔ | ✔ | ✖ | dwc2 | |
|
||||
| | +------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | 59x,5Ax,5Fx,5Gx | ✔ | ✔ | ✔ | dwc2 | |
|
||||
| +----+------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | WBx5 | ✔ | ✖ | ✖ | stm32_fsdev | |
|
||||
+--------------+-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| TI | MSP430 | ✔ | ✖ | ✖ | msp430x5xx | |
|
||||
| +-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | MSP432E4 | ✔ | | ✖ | musb | |
|
||||
| +-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | TM4C123 | ✔ | | ✖ | musb | |
|
||||
+--------------+-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| ValentyUSB | eptri | ✔ | ✖ | ✖ | eptri | |
|
||||
+--------------+-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| WCH | CH32F20x | ✔ | | ✔ | ch32_usbhs | |
|
||||
| +-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | CH32V20x | ✔ | | ✖ | stm32_fsdev/ch32_usbfs | |
|
||||
| +-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | CH32V307 | ✔ | | ✔ | ch32_usbfs/hs | |
|
||||
+--------------+-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
|
||||
+--------------+------------------------------------------------------------+
|
||||
| Manufacturer | Family |
|
||||
+==============+============================================================+
|
||||
| Allwinner | F1C100s/F1C200s |
|
||||
+--------------+------------------------------------------------------------+
|
||||
| Analog | max32: 650, 666, 690. max78002 |
|
||||
| | |
|
||||
| | max3421e (spi host) |
|
||||
+--------------+------------------------------------------------------------+
|
||||
| Brigetek | FT90x |
|
||||
+--------------+------------------------------------------------------------+
|
||||
| Broadcom | BCM2711, BCM2837 |
|
||||
+--------------+------------------------------------------------------------+
|
||||
| Dialog | DA1469x |
|
||||
+--------------+------------------------------------------------------------+
|
||||
| Espressif | ESP32 S2, S3 |
|
||||
+--------------+------------------------------------------------------------+
|
||||
| GigaDevice | GD32VF103 |
|
||||
+--------------+------------------------------------------------------------+
|
||||
| Infineon | XMC4500 |
|
||||
+--------------+------------------------------------------------------------+
|
||||
| | SAM: D11, D21, D51, E5x, G55, L2x, E7x, S7x, V7x |
|
||||
| MicroChip | |
|
||||
| | PIC: 24, 32mm, 32mk, 32mx, 32mz, dsPIC33 |
|
||||
+--------------+------------------------------------------------------------+
|
||||
| Mind Montion | mm32 |
|
||||
+--------------+------------------------------------------------------------+
|
||||
| NordicSemi | nRF52833, nRF52840, nRF5340 |
|
||||
+--------------+------------------------------------------------------------+
|
||||
| Nuvoton | NUC 120, 121, 125, 126, 505 |
|
||||
+--------------+------------------------------------------------------------+
|
||||
| NXP | iMXRT: RT10xx, RT11xx |
|
||||
| | |
|
||||
| | Kinetis: KL, K32L2 |
|
||||
| | |
|
||||
| | LPC: 11u, 13, 15, 17, 18, 40, 43, 51u, 54, 55 |
|
||||
| | |
|
||||
| | MCX: A15, N9 |
|
||||
+--------------+------------------------------------------------------------+
|
||||
| Raspberry Pi | RP2040, RP2350 |
|
||||
+--------------+-----+------------------------------------------------------+
|
||||
| Renesas | RA: 4M1, 4M3, 6M1, 6M5 |
|
||||
| | |
|
||||
| | RX: 63N, 65N, 72N |
|
||||
+--------------+-----+------------------------------------------------------+
|
||||
| Silabs | EFM32GG12 |
|
||||
+--------------+------------------------------------------------------------+
|
||||
| Sony | CXD56 |
|
||||
+--------------+------------------------------------------------------------+
|
||||
| ST STM32 | C0, F0, F1, F2, F3, F4, F7, G0, G4, H5, H7, |
|
||||
| | |
|
||||
| | L0, L1, L4, L4+, L5, U5, WB |
|
||||
+--------------+------------------------------------------------------------+
|
||||
| TI | MSP430, MSP432E4, TM4C123 |
|
||||
+--------------+------------------------------------------------------------+
|
||||
| ValentyUSB | eptri |
|
||||
+--------------+------------------------------------------------------------+
|
||||
| WCH | CH32F: F20x |
|
||||
| | |
|
||||
| | CH32V: V20x, V307 |
|
||||
+--------------+------------------------------------------------------------+
|
||||
Table Legend
|
||||
------------
|
||||
|
||||
License
|
||||
=======
|
||||
========= =========================
|
||||
✔ Supported
|
||||
⚠ Partial support
|
||||
✖ Not supported by hardware
|
||||
\[empty\] Unknown
|
||||
========= =========================
|
||||
|
||||
All TinyUSB sources in the ``src`` folder are licensed under MIT
|
||||
license, the `Full license is here <LICENSE>`__. However, each file can be
|
||||
individually licensed especially those in ``lib`` and ``hw/mcu`` folder.
|
||||
Please make sure you understand all the license term for files you use
|
||||
in your project.
|
||||
|
||||
Docs
|
||||
====
|
||||
|
||||
- Info
|
||||
|
||||
- `Uses`_
|
||||
- `Changelog`_
|
||||
- `Contributors`_
|
||||
|
||||
- `Reference`_
|
||||
|
||||
- `Supported Devices`_
|
||||
- `Getting Started`_
|
||||
- `Dependencies`_
|
||||
- `Concurrency`_
|
||||
|
||||
- `Contributing`_
|
||||
|
||||
- `Code of Conduct`_
|
||||
- `Structure`_
|
||||
- `Porting`_
|
||||
|
||||
.. |Build Status| image:: https://github.com/hathach/tinyusb/actions/workflows/build.yml/badge.svg
|
||||
:target: https://github.com/hathach/tinyusb/actions
|
||||
@ -209,15 +254,12 @@ Docs
|
||||
:target: https://opensource.org/licenses/MIT
|
||||
|
||||
|
||||
.. _Uses: docs/info/uses.rst
|
||||
.. _Changelog: docs/info/changelog.rst
|
||||
.. _Contributors: CONTRIBUTORS.rst
|
||||
.. _Reference: docs/reference/index.rst
|
||||
.. _Supported Devices: docs/reference/supported.rst
|
||||
.. _Getting Started: docs/reference/getting_started.rst
|
||||
.. _Supported Boards: docs/reference/boards.rst
|
||||
.. _Dependencies: docs/reference/dependencies.rst
|
||||
.. _Concurrency: docs/reference/concurrency.rst
|
||||
.. _Contributing: docs/contributing/index.rst
|
||||
.. _Code of Conduct: CODE_OF_CONDUCT.rst
|
||||
.. _Structure: docs/contributing/structure.rst
|
||||
.. _Porting: docs/contributing/porting.rst
|
||||
|
||||
18
docs/conf.py
18
docs/conf.py
@ -5,13 +5,16 @@
|
||||
# list see the documentation:
|
||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
||||
|
||||
import re
|
||||
from pathlib import Path
|
||||
|
||||
# -- Path setup --------------------------------------------------------------
|
||||
|
||||
|
||||
# -- Project information -----------------------------------------------------
|
||||
|
||||
project = 'TinyUSB'
|
||||
copyright = '2021, Ha Thach'
|
||||
copyright = '2024, Ha Thach'
|
||||
author = 'Ha Thach'
|
||||
|
||||
|
||||
@ -40,3 +43,16 @@ html_theme_options = {
|
||||
}
|
||||
|
||||
todo_include_todos = True
|
||||
|
||||
# pre-process path in README.rst
|
||||
def preprocess_readme():
|
||||
"""Modify figure paths in README.rst for Sphinx builds."""
|
||||
src = Path(__file__).parent.parent / "README.rst"
|
||||
tgt = Path(__file__).parent.parent / "README_processed.rst"
|
||||
if src.exists():
|
||||
content = src.read_text()
|
||||
content = re.sub(r"docs/", r"", content)
|
||||
content = re.sub(r".rst", r".html", content)
|
||||
tgt.write_text(content)
|
||||
|
||||
preprocess_readme()
|
||||
|
||||
@ -1 +1 @@
|
||||
../../CODE_OF_CONDUCT.rst
|
||||
.. include:: ../../CODE_OF_CONDUCT.rst
|
||||
@ -19,5 +19,4 @@ Index
|
||||
:maxdepth: 2
|
||||
|
||||
code_of_conduct
|
||||
structure
|
||||
porting
|
||||
|
||||
@ -1,59 +0,0 @@
|
||||
*********
|
||||
Structure
|
||||
*********
|
||||
|
||||
Tree
|
||||
====
|
||||
|
||||
::
|
||||
|
||||
.
|
||||
├── docs
|
||||
├── examples
|
||||
├── hw
|
||||
│ ├── bsp
|
||||
│ └── mcu
|
||||
├── lib
|
||||
├── src
|
||||
├── test
|
||||
└── tools
|
||||
|
||||
docs
|
||||
----
|
||||
|
||||
Documentation
|
||||
|
||||
examples
|
||||
--------
|
||||
|
||||
Sample with Makefile build support
|
||||
|
||||
hw/bsp
|
||||
------
|
||||
|
||||
Supported boards source files
|
||||
|
||||
hw/mcu
|
||||
------
|
||||
|
||||
Low level mcu core & peripheral drivers
|
||||
|
||||
lib
|
||||
---
|
||||
|
||||
Sources from 3rd party such as freeRTOS, fatfs ...
|
||||
|
||||
src
|
||||
---
|
||||
|
||||
All sources files for TinyUSB stack itself.
|
||||
|
||||
test
|
||||
----
|
||||
|
||||
Unit tests for the stack
|
||||
|
||||
tools
|
||||
-----
|
||||
|
||||
Files used internally
|
||||
@ -1,12 +1,6 @@
|
||||
:hide-toc:
|
||||
|
||||
*********
|
||||
TinyUSB
|
||||
*********
|
||||
|
||||
TinyUSB is an open-source cross-platform USB Host/Device stack for embedded systems,
|
||||
designed to be memory-safe with no dynamic allocation and thread-safe with all interrupt events being deferred and then handled in the non-ISR task function.
|
||||
|
||||
.. include:: ../README_processed.rst
|
||||
|
||||
.. toctree::
|
||||
:caption: Index
|
||||
|
||||
@ -2,6 +2,59 @@
|
||||
Changelog
|
||||
*********
|
||||
|
||||
0.18.0
|
||||
======
|
||||
|
||||
General
|
||||
-------
|
||||
|
||||
- New MCUs:
|
||||
|
||||
- Add esp32p4 OTG highspeed support
|
||||
- Add stm32 u0, c0, h7rs
|
||||
|
||||
- Better support dcache, make sure all usb-transferred buffer are cache line aligned and occupy full cache line
|
||||
- Build ARM IAR with CircleCI
|
||||
- Improve HIL with dual/host_info_to_device_cdc optional for pico/pico2, enable dwc2 dma test
|
||||
|
||||
API Changes
|
||||
-----------
|
||||
|
||||
- Change signature of ``tusb_init(rhport, tusb_rhport_init_t*)``, tusb_init(void) is now deprecated but still available for backward compatibility
|
||||
- Add new ``tusb_int_handler(rhport, in_isr)``
|
||||
- Add time-related APIs: ``tusb_time_millis_api()`` and ``tusb_time_delay_ms_api()`` for non-RTOS, required for some ports/configuration
|
||||
- New configuration macros:
|
||||
|
||||
- ``CFG_TUD/TUH_MEM_DCACHE_ENABLE`` enable data cache sync for endpoint buffer
|
||||
- ``CFG_TUD/TUH_MEM_DCACHE_LINE_SIZE`` set cache line size
|
||||
- ``CFG_TUD/TUH_DWC2_SLAVE_ENABLE`` enable dwc2 slave mode
|
||||
- ``CFG_TUD/TUH_DWC2_DMA_ENABLE`` enable dwc2 dma mode
|
||||
|
||||
Controller Driver (DCD & HCD)
|
||||
-----------------------------
|
||||
|
||||
- DWC2
|
||||
- Add DMA support for both device and host controller
|
||||
- Add host driver support including: full/high speed, control/bulk/interrupt (CBI) transfer, split CBI i.e FS/LS attached via highspeed hub, hub support
|
||||
|
||||
- RP2: implement dcd_edpt_iso_alloc() and dcd_edpt_iso_activate() for isochronous endpoint
|
||||
- iMXRT1170 support M4 core
|
||||
|
||||
Device Stack
|
||||
------------
|
||||
|
||||
- Vendor Fix class reset
|
||||
- NCM fix recursions in tud_network_recv_renew()
|
||||
- Audio fix align issue of _audiod_fct.alt_setting
|
||||
- UVC support format frame based
|
||||
- Change dcd_dcache_() return type from void to bool
|
||||
- HID add Usage Table for Physical Input Device Page (0x0F)
|
||||
|
||||
Host Stack
|
||||
----------
|
||||
|
||||
- Fix an duplicated attach issue which cause USBH Defer Attach until current enumeration complete message
|
||||
|
||||
0.17.0
|
||||
======
|
||||
|
||||
|
||||
@ -1 +1 @@
|
||||
../../CONTRIBUTORS.rst
|
||||
.. include:: ../../CONTRIBUTORS.rst
|
||||
@ -8,6 +8,5 @@ Index
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
uses
|
||||
changelog
|
||||
contributors
|
||||
|
||||
@ -1,17 +0,0 @@
|
||||
****
|
||||
Uses
|
||||
****
|
||||
|
||||
TinyUSB is currently used by these other projects:
|
||||
|
||||
- `Adafruit nRF52 Arduino <https://github.com/adafruit/Adafruit_nRF52_Arduino>`__
|
||||
- `Adafruit nRF52 Bootloader <https://github.com/adafruit/Adafruit_nRF52_Bootloader>`__
|
||||
- `Adafruit SAMD Arduino <https://github.com/adafruit/ArduinoCore-samd>`__
|
||||
- `CircuitPython <https://github.com/adafruit/circuitpython>`__
|
||||
- `Espressif IDF <https://github.com/espressif/esp-idf>`__
|
||||
- `MicroPython <https://github.com/micropython/micropython>`__
|
||||
- `mynewt <https://mynewt.apache.org>`__
|
||||
- `openinput <https://github.com/openinput-fw/openinput>`__
|
||||
- `Raspberry Pi Pico SDK <https://github.com/raspberrypi/pico-sdk>`__
|
||||
- `TinyUF2 Bootloader <https://github.com/adafruit/tinyuf2>`__
|
||||
- `TinyUSB Arduino Library <https://github.com/adafruit/Adafruit_TinyUSB_Arduino>`__
|
||||
320
docs/reference/boards.rst
Normal file
320
docs/reference/boards.rst
Normal file
@ -0,0 +1,320 @@
|
||||
****************
|
||||
Supported Boards
|
||||
****************
|
||||
|
||||
The board support code is only used for self-contained examples and testing. It is not used when TinyUSB is part of a larger project.
|
||||
It is responsible for getting the MCU started and the USB peripheral clocked with minimal of on-board devices
|
||||
|
||||
- One LED : for status
|
||||
- One Button : to get input from user
|
||||
- One UART : optional for device, but required for host examples
|
||||
|
||||
Following boards are supported
|
||||
|
||||
Analog Devices
|
||||
--------------
|
||||
|
||||
============= ================ ======== =========================================================================================================================== ======
|
||||
Board Name Family URL Note
|
||||
============= ================ ======== =========================================================================================================================== ======
|
||||
max32650evkit MAX32650 EVKIT max32650 https://www.analog.com/en/resources/evaluation-hardware-and-software/evaluation-boards-kits/max32650-evkit.html#eb-overview
|
||||
max32650fthr MAX32650 Feather max32650 https://www.analog.com/en/resources/evaluation-hardware-and-software/evaluation-boards-kits/max32650fthr.html
|
||||
max32651evkit MAX32651 EVKIT max32650 https://www.analog.com/en/resources/evaluation-hardware-and-software/evaluation-boards-kits/max32651-evkit.html
|
||||
max32666evkit MAX32666 EVKIT max32666 https://www.analog.com/en/resources/evaluation-hardware-and-software/evaluation-boards-kits/max32666evkit.html
|
||||
max32666fthr MAX32666 Feather max32666 https://www.analog.com/en/resources/evaluation-hardware-and-software/evaluation-boards-kits/max32666fthr.html
|
||||
apard32690 APARD32690-SL max32690 https://www.analog.com/en/resources/evaluation-hardware-and-software/evaluation-boards-kits/ad-apard32690-sl.html
|
||||
max32690evkit MAX32690 EVKIT max32690 https://www.analog.com/en/resources/evaluation-hardware-and-software/evaluation-boards-kits/max32690evkit.html
|
||||
max78002evkit MAX78002 EVKIT max78002 https://www.analog.com/en/resources/evaluation-hardware-and-software/evaluation-boards-kits/max78002evkit.html
|
||||
============= ================ ======== =========================================================================================================================== ======
|
||||
|
||||
Bridgetek
|
||||
---------
|
||||
|
||||
========= ========= ======== ===================================== ======
|
||||
Board Name Family URL Note
|
||||
========= ========= ======== ===================================== ======
|
||||
mm900evxb MM900EVxB brtmm90x https://brtchip.com/product/mm900ev1b
|
||||
========= ========= ======== ===================================== ======
|
||||
|
||||
Espressif
|
||||
---------
|
||||
|
||||
========================= ============================== ========= ======================================================================================================== ======
|
||||
Board Name Family URL Note
|
||||
========================= ============================== ========= ======================================================================================================== ======
|
||||
adafruit_feather_esp32_v2 Adafruit Feather ESP32 v2 espressif https://www.adafruit.com/product/5400
|
||||
adafruit_feather_esp32s2 Adafruit Feather ESP32S2 espressif https://www.adafruit.com/product/5000
|
||||
adafruit_feather_esp32s3 Adafruit Feather ESP32S3 espressif https://www.adafruit.com/product/5323
|
||||
adafruit_magtag_29gray Adafruit MagTag 2.9" Grayscale espressif https://www.adafruit.com/product/4800
|
||||
adafruit_metro_esp32s2 Adafruit Metro ESP32-S2 espressif https://www.adafruit.com/product/4775
|
||||
espressif_addax_1 Espresif Addax-1 espressif n/a
|
||||
espressif_c3_devkitc Espresif C3 DevKitC espressif https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c3/esp32-c3-devkitc-02/index.html
|
||||
espressif_c6_devkitc Espresif C6 DevKitC espressif https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c6/esp32-c6-devkitc-1/index.html
|
||||
espressif_kaluga_1 Espresif Kaluga 1 espressif https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32s2/esp32-s2-kaluga-1/index.html
|
||||
espressif_p4_function_ev Espresif P4 Function EV espressif https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32p4/esp32-p4-function-ev-board/index.html
|
||||
espressif_s2_devkitc Espresif S2 DevKitC espressif https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32s2/esp32-s2-devkitc-1/index.html
|
||||
espressif_s3_devkitc Espresif S3 DevKitC espressif https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32s3/esp32-s3-devkitc-1/index.html
|
||||
espressif_s3_devkitm Espresif S3 DevKitM espressif https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32s3/esp32-s3-devkitm-1/index.html
|
||||
espressif_saola_1 Espresif S2 Saola 1 espressif https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32s2/esp32-s2-saola-1/index.html
|
||||
========================= ============================== ========= ======================================================================================================== ======
|
||||
|
||||
GigaDevice
|
||||
----------
|
||||
|
||||
================== ================== ========= ============================= ======
|
||||
Board Name Family URL Note
|
||||
================== ================== ========= ============================= ======
|
||||
sipeed_longan_nano Sipeed Longan Nano gd32vf103 https://longan.sipeed.com/en/
|
||||
================== ================== ========= ============================= ======
|
||||
|
||||
Infineon
|
||||
--------
|
||||
|
||||
============= ================= ======== ============================================================================= ======
|
||||
Board Name Family URL Note
|
||||
============= ================= ======== ============================================================================= ======
|
||||
xmc4500_relax XMC4500 relax kit xmc4000 https://www.infineon.com/cms/en/product/evaluation-boards/kit_xmc45_relax_v1/
|
||||
xmc4700_relax XMC4700 relax kit xmc4000 https://www.infineon.com/cms/en/product/evaluation-boards/kit_xmc47_relax_v1/
|
||||
============= ================= ======== ============================================================================= ======
|
||||
|
||||
Microchip
|
||||
---------
|
||||
|
||||
========================= =================================== ========== ================================================================================= ======
|
||||
Board Name Family URL Note
|
||||
========================= =================================== ========== ================================================================================= ======
|
||||
olimex_emz64 Olimex PIC32-EMZ64 pic32mz https://www.olimex.com/Products/PIC/Development/PIC32-EMZ64/open-source-hardware
|
||||
olimex_hmz144 Olimex PIC32-HMZ144 pic32mz https://www.olimex.com/Products/PIC/Development/PIC32-HMZ144/open-source-hardware
|
||||
cynthion_d11 Great Scott Gadgets Cynthion samd11 https://greatscottgadgets.com/cynthion/
|
||||
samd11_xplained SAMD11 Xplained Pro samd11 https://www.microchip.com/en-us/development-tool/ATSAMD11-XPRO
|
||||
atsamd21_xpro SAMD21 Xplained Pro samd21 https://www.microchip.com/DevelopmentTools/ProductDetails/ATSAMD21-XPRO
|
||||
circuitplayground_express Adafruit Circuit Playground Express samd21 https://www.adafruit.com/product/3333
|
||||
curiosity_nano SAMD21 Curiosty Nano samd21 https://www.microchip.com/en-us/development-tool/dm320119
|
||||
cynthion_d21 Great Scott Gadgets Cynthion samd21 https://greatscottgadgets.com/cynthion/
|
||||
feather_m0_express Adafruit Feather M0 Express samd21 https://www.adafruit.com/product/3403
|
||||
itsybitsy_m0 Adafruit ItsyBitsy M0 samd21 https://www.adafruit.com/product/3727
|
||||
metro_m0_express Adafruit Metro M0 Express samd21 https://www.adafruit.com/product/3505
|
||||
qtpy Adafruit QT Py samd21 https://www.adafruit.com/product/4600
|
||||
seeeduino_xiao Seeeduino XIAO samd21 https://wiki.seeedstudio.com/Seeeduino-XIAO/
|
||||
sparkfun_samd21_mini_usb SparkFun SAMD21 Mini samd21 https://www.sparkfun.com/products/13664
|
||||
trinket_m0 Adafruit Trinket M0 samd21 https://www.adafruit.com/product/3500
|
||||
d5035_01 D5035-01 samd5x_e5x https://github.com/RudolphRiedel/USB_CAN-FD
|
||||
feather_m4_express Adafruit Feather M4 Express samd5x_e5x https://www.adafruit.com/product/3857
|
||||
itsybitsy_m4 Adafruit ItsyBitsy M4 samd5x_e5x https://www.adafruit.com/product/3800
|
||||
metro_m4_express Adafruit Metro M4 Express samd5x_e5x https://www.adafruit.com/product/3382
|
||||
pybadge Adafruit PyBadge samd5x_e5x https://www.adafruit.com/product/4200
|
||||
pyportal Adafruit PyPortal samd5x_e5x https://www.adafruit.com/product/4116
|
||||
same54_xplained SAME54 Xplained Pro samd5x_e5x https://www.microchip.com/DevelopmentTools/ProductDetails/ATSAME54-XPRO
|
||||
samg55_xplained SAMG55 Xplained Pro samg https://www.microchip.com/DevelopmentTools/ProductDetails/ATSAMG55-XPRO
|
||||
atsaml21_xpro SAML21 Xplained Pro saml2x https://www.microchip.com/en-us/development-tool/atsaml21-xpro-b
|
||||
saml22_feather SAML22 Feather saml2x https://github.com/joeycastillo/Feather-Projects/tree/main/SAML22%20Feather
|
||||
sensorwatch_m0 SensorWatch saml2x https://github.com/joeycastillo/Sensor-Watch
|
||||
========================= =================================== ========== ================================================================================= ======
|
||||
|
||||
MindMotion
|
||||
----------
|
||||
|
||||
===================== ====================================== ======== =============================================================================================== ======
|
||||
Board Name Family URL Note
|
||||
===================== ====================================== ======== =============================================================================================== ======
|
||||
mm32f327x_mb39 MM32F3273G9P MB-039 mm32 https://www.mindmotion.com.cn/support/development_tools/evaluation_boards/evboard/mm32f3273g9p/
|
||||
mm32f327x_pitaya_lite DshanMCU Pitaya Lite with MM32F3273G8P mm32 https://gitee.com/weidongshan/DshanMCU-Pitaya-c
|
||||
===================== ====================================== ======== =============================================================================================== ======
|
||||
|
||||
NXP
|
||||
---
|
||||
|
||||
================== ========================================= ============= ========================================================================================================================================================================= ======
|
||||
Board Name Family URL Note
|
||||
================== ========================================= ============= ========================================================================================================================================================================= ======
|
||||
metro_m7_1011 Adafruit Metro M7 1011 imxrt https://www.adafruit.com/product/5600
|
||||
metro_m7_1011_sd Adafruit Metro M7 1011 SD imxrt https://www.adafruit.com/product/5600
|
||||
mimxrt1010_evk i.MX RT1010 Evaluation Kit imxrt https://www.nxp.com/design/design-center/development-boards-and-designs/i-mx-evaluation-and-development-boards/i-mx-rt1010-evaluation-kit:MIMXRT1010-EVK
|
||||
mimxrt1015_evk i.MX RT1015 Evaluation Kit imxrt https://www.nxp.com/design/design-center/development-boards-and-designs/MIMXRT1015-EVK
|
||||
mimxrt1020_evk i.MX RT1020 Evaluation Kit imxrt https://www.nxp.com/design/design-center/development-boards-and-designs/MIMXRT1020-EVK
|
||||
mimxrt1024_evk i.MX RT1024 Evaluation Kit imxrt https://www.nxp.com/design/design-center/development-boards-and-designs/i-mx-evaluation-and-development-boards/i-mx-rt1024-evaluation-kit:MIMXRT1024-EVK
|
||||
mimxrt1050_evkb i.MX RT1050 Evaluation Kit revB imxrt https://www.nxp.com/part/IMXRT1050-EVKB
|
||||
mimxrt1060_evk i.MX RT1060 Evaluation Kit revB imxrt https://www.nxp.com/design/design-center/development-boards-and-designs/MIMXRT1060-EVKB
|
||||
mimxrt1064_evk i.MX RT1064 Evaluation Kit imxrt https://www.nxp.com/design/design-center/development-boards-and-designs/MIMXRT1064-EVK
|
||||
mimxrt1170_evkb i.MX RT1070 Evaluation Kit imxrt https://www.nxp.com/design/design-center/development-boards-and-designs/i-mx-evaluation-and-development-boards/i-mx-rt1170-evaluation-kit:MIMXRT1170-EVKB
|
||||
teensy_40 Teensy 4.0 imxrt https://www.pjrc.com/store/teensy40.html
|
||||
teensy_41 Teensy 4.1 imxrt https://www.pjrc.com/store/teensy41.html
|
||||
frdm_k64f Freedom K64F kinetis_k https://www.nxp.com/design/design-center/development-boards-and-designs/general-purpose-mcus/freedom-development-platform-for-kinetis-k64-k63-and-k24-mcus:FRDM-K64F
|
||||
teensy_35 Teensy 3.5 kinetis_k https://www.pjrc.com/store/teensy35.html
|
||||
frdm_k32l2a4s Freedom K32L2A4S kinetis_k32l2 https://www.nxp.com/design/design-center/development-boards-and-designs/FRDM-K32L2A4S
|
||||
frdm_k32l2b Freedom K32L2B3 kinetis_k32l2 https://www.nxp.com/design/design-center/development-boards-and-designs/general-purpose-mcus/nxp-freedom-development-platform-for-k32-l2b-mcus:FRDM-K32L2B3
|
||||
kuiic Kuiic kinetis_k32l2 https://github.com/nxf58843/kuiic
|
||||
frdm_kl25z fomu kinetis_kl https://www.nxp.com/design/design-center/development-boards-and-designs/general-purpose-mcus/freedom-development-platform-for-kinetis-kl14-kl15-kl24-kl25-mcus:FRDM-KL25Z
|
||||
lpcxpresso11u37 LPCXpresso11U37 lpc11 https://www.nxp.com/design/design-center/development-boards-and-designs/OM13074
|
||||
lpcxpresso11u68 LPCXpresso11U68 lpc11 https://www.nxp.com/design/design-center/development-boards-and-designs/OM13058
|
||||
lpcxpresso1347 LPCXpresso1347 lpc13 https://www.nxp.com/products/no-longer-manufactured/lpcxpresso-board-for-lpc1347:OM13045
|
||||
lpcxpresso1549 LPCXpresso1549 lpc15 https://www.nxp.com/design/design-center/development-boards-and-designs/OM13056
|
||||
lpcxpresso1769 LPCXpresso1769 lpc17 https://www.nxp.com/design/design-center/development-boards-and-designs/OM13000
|
||||
mbed1768 mbed 1768 lpc17 https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/lpc1700-arm-cortex-m3/arm-mbed-lpc1768-board:OM11043
|
||||
lpcxpresso18s37 LPCXpresso18s37 lpc18 https://www.nxp.com/design/design-center/software/development-software/mcuxpresso-software-and-tools-/lpcxpresso-boards/lpcxpresso18s37-development-board:OM13076
|
||||
mcb1800 Keil MCB1800 lpc18 https://www.keil.com/arm/mcb1800/
|
||||
ea4088_quickstart Embedded Artists LPC4088 QuickStart Board lpc40 https://www.embeddedartists.com/products/lpc4088-quickstart-board/
|
||||
ea4357 Embedded Artists LPC4357 Development Kit lpc43 https://www.embeddedartists.com/products/lpc4357-developers-kit/
|
||||
lpcxpresso43s67 LPCXpresso43S67 lpc43 https://www.nxp.com/design/design-center/software/development-software/mcuxpresso-software-and-tools-/lpcxpresso-boards/lpcxpresso43s67-development-board:OM13084
|
||||
lpcxpresso51u68 LPCXpresso51u68 lpc51 https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/lpcxpresso51u68-for-the-lpc51u68-mcus:OM40005
|
||||
lpcxpresso54114 LPCXpresso54114 lpc54 https://www.nxp.com/design/design-center/software/development-software/mcuxpresso-software-and-tools-/lpcxpresso-boards/lpcxpresso54114-board:OM13089
|
||||
lpcxpresso54608 LPCXpresso54608 lpc54 https://www.nxp.com/design/design-center/software/development-software/mcuxpresso-software-and-tools-/lpcxpresso-development-board-for-lpc5460x-mcus:OM13092
|
||||
lpcxpresso54628 LPCXpresso54628 lpc54 https://www.nxp.com/design/design-center/software/development-software/mcuxpresso-software-and-tools-/lpcxpresso-boards/lpcxpresso54628-development-board:OM13098
|
||||
double_m33_express Double M33 Express lpc55 https://www.crowdsupply.com/steiert-solutions/double-m33-express
|
||||
lpcxpresso55s28 LPCXpresso55s28 lpc55 https://www.nxp.com/design/design-center/software/development-software/mcuxpresso-software-and-tools-/lpcxpresso-boards/lpcxpresso55s28-development-board:LPC55S28-EVK
|
||||
lpcxpresso55s69 LPCXpresso55s69 lpc55 https://www.nxp.com/design/design-center/software/development-software/mcuxpresso-software-and-tools-/lpcxpresso-boards/lpcxpresso55s69-development-board:LPC55S69-EVK
|
||||
mcu_link MCU Link lpc55 https://www.nxp.com/design/design-center/software/development-software/mcuxpresso-software-and-tools-/mcu-link-debug-probe:MCU-LINK
|
||||
frdm_mcxa153 Freedom MCXA153 mcx https://www.nxp.com/design/design-center/development-boards-and-designs/FRDM-MCXA153
|
||||
frdm_mcxn947 Freedom MCXN947 mcx https://www.nxp.com/design/design-center/development-boards-and-designs/FRDM-MCXN947
|
||||
mcxn947brk MCXN947 Breakout mcx n/a
|
||||
================== ========================================= ============= ========================================================================================================================================================================= ======
|
||||
|
||||
Nordic Semiconductor
|
||||
--------------------
|
||||
|
||||
=========================== ===================================== ======== ============================================================================== ======
|
||||
Board Name Family URL Note
|
||||
=========================== ===================================== ======== ============================================================================== ======
|
||||
adafruit_clue Adafruit CLUE nrf https://www.adafruit.com/product/4500
|
||||
arduino_nano33_ble Arduino Nano 33 BLE nrf https://store.arduino.cc/arduino-nano-33-ble
|
||||
circuitplayground_bluefruit Adafruit Circuit Playground Bluefruit nrf https://www.adafruit.com/product/4333
|
||||
feather_nrf52840_express Adafruit Feather nRF52840 Express nrf https://www.adafruit.com/product/4062
|
||||
feather_nrf52840_sense Adafruit Feather nRF52840 Sense nrf https://www.adafruit.com/product/4516
|
||||
itsybitsy_nrf52840 Adafruit ItsyBitsy nRF52840 Express nrf https://www.adafruit.com/product/4481
|
||||
pca10056 Nordic nRF52840DK nrf https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52840-DK
|
||||
pca10059 Nordic nRF52840 Dongle nrf https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52840-Dongle
|
||||
pca10095 Nordic nRF5340 DK nrf https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF5340-DK
|
||||
pca10100 Nordic nRF52833 DK nrf https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52833-DK
|
||||
=========================== ===================================== ======== ============================================================================== ======
|
||||
|
||||
Raspberry Pi
|
||||
------------
|
||||
|
||||
================= ================= ============== ========================================================== ======
|
||||
Board Name Family URL Note
|
||||
================= ================= ============== ========================================================== ======
|
||||
raspberrypi_zero Raspberry Pi Zero broadcom_32bit https://www.raspberrypi.org/products/raspberry-pi-zero/
|
||||
raspberrypi_cm4 Raspberry CM4 broadcom_64bit https://www.raspberrypi.org/products/compute-module-4
|
||||
raspberrypi_zero2 Raspberry Zero2 broadcom_64bit https://www.raspberrypi.org/products/raspberry-pi-zero-2-w
|
||||
================= ================= ============== ========================================================== ======
|
||||
|
||||
Renesas
|
||||
-------
|
||||
|
||||
============== =========================== ======== ================================================================================================================================================================ ======
|
||||
Board Name Family URL Note
|
||||
============== =========================== ======== ================================================================================================================================================================ ======
|
||||
da14695_dk_usb DA14695-00HQDEVKT-U da1469x https://www.renesas.com/en/products/wireless-connectivity/bluetooth-low-energy/da14695-00hqdevkt-u-smartbond-da14695-bluetooth-low-energy-52-usb-development-kit
|
||||
da1469x_dk_pro DA1469x Development Kit Pro da1469x https://lpccs-docs.renesas.com/um-b-090-da1469x_getting_started/DA1469x_The_hardware/DA1469x_The_hardware.html
|
||||
portenta_c33 Arduino Portenta C33 ra https://www.arduino.cc/pro/hardware-product-portenta-c33/
|
||||
ra2a1_ek RA2A1 EK ra https://www.renesas.com/en/products/microcontrollers-microprocessors/ra-cortex-m-mcus/ek-ra2a1-evaluation-kit-ra2a1-mcu-group
|
||||
ra4m1_ek RA4M1 EK ra https://www.renesas.com/en/products/microcontrollers-microprocessors/ra-cortex-m-mcus/ek-ra4m1-evaluation-kit-ra4m1-mcu-group
|
||||
ra4m3_ek RA4M3 EK ra https://www.renesas.com/en/products/microcontrollers-microprocessors/ra-cortex-m-mcus/ek-ra4m3-evaluation-kit-ra4m3-mcu-group
|
||||
ra6m1_ek RA6M1 EK ra https://www.renesas.com/en/products/microcontrollers-microprocessors/ra-cortex-m-mcus/ek-ra6m1-evaluation-kit-ra6m1-mcu-group
|
||||
ra6m5_ek RA6M5 EK ra https://www.renesas.com/en/products/microcontrollers-microprocessors/ra-cortex-m-mcus/ek-ra6m5-evaluation-kit-ra6m5-mcu-group
|
||||
ra8m1_ek RA8M1 EK ra https://www.renesas.com/en/products/microcontrollers-microprocessors/ra-cortex-m-mcus/ek-ra8m1-evaluation-kit-ra8m1-mcu-group
|
||||
uno_r4 Arduino UNO R4 ra https://store-usa.arduino.cc/pages/uno-r4
|
||||
============== =========================== ======== ================================================================================================================================================================ ======
|
||||
|
||||
STMicroelectronics
|
||||
------------------
|
||||
|
||||
=================== ================================= ======== ================================================================= ======
|
||||
Board Name Family URL Note
|
||||
=================== ================================= ======== ================================================================= ======
|
||||
stm32c071nucleo STM32C071 Nucleo stm32c0 https://www.st.com/en/evaluation-tools/nucleo-g071rb.html
|
||||
stm32f070rbnucleo STM32 F070 Nucleo stm32f0 https://www.st.com/en/evaluation-tools/nucleo-f070rb.html
|
||||
stm32f072disco STM32 F072 Discovery stm32f0 https://www.st.com/en/evaluation-tools/32f072bdiscovery.html
|
||||
stm32f072eval STM32 F072 Eval stm32f0 https://www.st.com/en/evaluation-tools/stm32072b-eval.html
|
||||
stm32f103_bluepill STM32 F103 Bluepill stm32f1 https://stm32-base.org/boards/STM32F103C8T6-Blue-Pill
|
||||
stm32f103_mini_2 STM32 F103 Mini v2 stm32f1 https://stm32-base.org/boards/STM32F103RCT6-STM32-Mini-V2.0
|
||||
stm32f103ze_iar IAR STM32 F103ze starter kit stm32f1 n/a
|
||||
stm32f207nucleo STM32 F207 Nucleo stm32f2 https://www.st.com/en/evaluation-tools/nucleo-f207zg.html
|
||||
stm32f303disco STM32 F303 Discovery stm32f3 https://www.st.com/en/evaluation-tools/stm32f3discovery.html
|
||||
feather_stm32f405 Adafruit Feather STM32F405 stm32f4 https://www.adafruit.com/product/4382
|
||||
pyboardv11 Pyboard v1.1 stm32f4 https://www.adafruit.com/product/2390
|
||||
stm32f401blackpill STM32 F401 Blackpill stm32f4 https://stm32-base.org/boards/STM32F401CCU6-WeAct-Black-Pill-V1.2
|
||||
stm32f407blackvet STM32 F407 Blackvet stm32f4 https://stm32-base.org/boards/STM32F407VET6-STM32-F4VE-V2.0
|
||||
stm32f407disco STM32 F407 Discovery stm32f4 https://www.st.com/en/evaluation-tools/stm32f4discovery.html
|
||||
stm32f411blackpill STM32 F411 Blackpill stm32f4 https://stm32-base.org/boards/STM32F411CEU6-WeAct-Black-Pill-V2.0
|
||||
stm32f411disco STM32 F411 Discovery stm32f4 https://www.st.com/en/evaluation-tools/32f411ediscovery.html
|
||||
stm32f412disco STM32 F412 Discovery stm32f4 https://www.st.com/en/evaluation-tools/32f412gdiscovery.html
|
||||
stm32f412nucleo STM32 F412 Nucleo stm32f4 https://www.st.com/en/evaluation-tools/nucleo-f412zg.html
|
||||
stm32f439nucleo STM32 F439 Nucleo stm32f4 https://www.st.com/en/evaluation-tools/nucleo-f439zi.html
|
||||
stlinkv3mini Stlink-v3 mini stm32f7 https://www.st.com/en/development-tools/stlink-v3mini.html
|
||||
stm32f723disco STM32 F723 Discovery stm32f7 https://www.st.com/en/evaluation-tools/32f723ediscovery.html
|
||||
stm32f746disco STM32 F746 Discovery stm32f7 https://www.st.com/en/evaluation-tools/32f746gdiscovery.html
|
||||
stm32f746nucleo STM32 F746 Nucleo stm32f7 https://www.st.com/en/evaluation-tools/nucleo-f746zg.html
|
||||
stm32f767nucleo STM32 F767 Nucleo stm32f7 https://www.st.com/en/evaluation-tools/nucleo-f767zi.html
|
||||
stm32f769disco STM32 F769 Discovery stm32f7 https://www.st.com/en/evaluation-tools/32f769idiscovery.html
|
||||
stm32g0b1nucleo STM32 G0B1 Nucleo stm32g0 https://www.st.com/en/evaluation-tools/nucleo-g0b1re.html
|
||||
b_g474e_dpow1 STM32 B-G474E-DPOW1 Discovery kit stm32g4 https://www.st.com/en/evaluation-tools/b-g474e-dpow1.html
|
||||
stm32g474nucleo STM32 G474 Nucleo stm32g4 https://www.st.com/en/evaluation-tools/nucleo-g474re.html
|
||||
stm32g491nucleo STM32 G491 Nucleo stm32g4 https://www.st.com/en/evaluation-tools/nucleo-g491re.html
|
||||
stm32h503nucleo STM32 H503 Nucleo stm32h5 https://www.st.com/en/evaluation-tools/nucleo-h503rb.html
|
||||
stm32h563nucleo STM32 H563 Nucleo stm32h5 https://www.st.com/en/evaluation-tools/nucleo-h563zi.html
|
||||
stm32h573i_dk STM32 H573i Discovery stm32h5 https://www.st.com/en/evaluation-tools/stm32h573i-dk.html
|
||||
daisyseed Daisy Seed stm32h7 https://electro-smith.com/products/daisy-seed
|
||||
stm32h723nucleo STM32 H723 Nucleo stm32h7 https://www.st.com/en/evaluation-tools/nucleo-h723zg.html
|
||||
stm32h743eval STM32 H743 Eval stm32h7 https://www.st.com/en/evaluation-tools/stm32h743i-eval.html
|
||||
stm32h743nucleo STM32 H743 Nucleo stm32h7 https://www.st.com/en/evaluation-tools/nucleo-h743zi.html
|
||||
stm32h745disco STM32 H745 Discovery stm32h7 https://www.st.com/en/evaluation-tools/stm32h745i-disco.html
|
||||
stm32h750_weact STM32 H750 WeAct stm32h7 https://www.adafruit.com/product/5032
|
||||
stm32h750bdk STM32 H750b Discovery Kit stm32h7 https://www.st.com/en/evaluation-tools/stm32h750b-dk.html
|
||||
waveshare_openh743i Waveshare Open H743i stm32h7 https://www.waveshare.com/openh743i-c-standard.htm
|
||||
stm32l052dap52 STM32 L052 DAP stm32l0 n/a
|
||||
stm32l0538disco STM32 L0538 Discovery stm32l0 https://www.st.com/en/evaluation-tools/32l0538discovery.html
|
||||
stm32l412nucleo STM32 L412 Nucleo stm32l4 https://www.st.com/en/evaluation-tools/nucleo-l412kb.html
|
||||
stm32l476disco STM32 L476 Disco stm32l4 https://www.st.com/en/evaluation-tools/32l476gdiscovery.html
|
||||
stm32l4p5nucleo STM32 L4P5 Nucleo stm32l4 https://www.st.com/en/evaluation-tools/nucleo-l4p5zg.html
|
||||
stm32l4r5nucleo STM32 L4R5 Nucleo stm32l4 https://www.st.com/en/evaluation-tools/nucleo-l4r5zi.html
|
||||
b_u585i_iot2a STM32 B-U585i IOT2A Discovery kit stm32u5 https://www.st.com/en/evaluation-tools/b-u585i-iot02a.html
|
||||
stm32u545nucleo STM32 U545 Nucleo stm32u5 https://www.st.com/en/evaluation-tools/nucleo-u545re-q.html
|
||||
stm32u575eval STM32 U575 Eval stm32u5 https://www.st.com/en/evaluation-tools/stm32u575i-ev.html
|
||||
stm32u575nucleo STM32 U575 Nucleo stm32u5 https://www.st.com/en/evaluation-tools/nucleo-u575zi-q.html
|
||||
stm32u5a5nucleo STM32 U5a5 Nucleo stm32u5 https://www.st.com/en/evaluation-tools/nucleo-u5a5zj-q.html
|
||||
stm32wb55nucleo STM32 P-NUCLEO-WB55 stm32wb https://www.st.com/en/evaluation-tools/p-nucleo-wb55.html
|
||||
=================== ================================= ======== ================================================================= ======
|
||||
|
||||
Sunxi
|
||||
-----
|
||||
|
||||
======= ================= ======== ========================================= ======
|
||||
Board Name Family URL Note
|
||||
======= ================= ======== ========================================= ======
|
||||
f1c100s Lctech Pi F1C200s f1c100s https://linux-sunxi.org/Lctech_Pi_F1C200s
|
||||
======= ================= ======== ========================================= ======
|
||||
|
||||
Texas Instruments
|
||||
-----------------
|
||||
|
||||
================= ===================== ======== ========================================= ======
|
||||
Board Name Family URL Note
|
||||
================= ===================== ======== ========================================= ======
|
||||
msp_exp430f5529lp MSP430F5529 LaunchPad msp430 https://www.ti.com/tool/MSP-EXP430F5529LP
|
||||
msp_exp432e401y MSP432E401Y LaunchPad msp432e4 https://www.ti.com/tool/MSP-EXP432E401Y
|
||||
ek_tm4c123gxl TM4C123G LaunchPad tm4c https://www.ti.com/tool/EK-TM4C123GXL
|
||||
================= ===================== ======== ========================================= ======
|
||||
|
||||
Tomu
|
||||
----
|
||||
|
||||
======= ====== ======== ========================= ======
|
||||
Board Name Family URL Note
|
||||
======= ====== ======== ========================= ======
|
||||
fomu fomu fomu https://tomu.im/fomu.html
|
||||
======= ====== ======== ========================= ======
|
||||
|
||||
WCH
|
||||
---
|
||||
|
||||
================ ================ ======== ===================================================================== ======
|
||||
Board Name Family URL Note
|
||||
================ ================ ======== ===================================================================== ======
|
||||
ch32f205r-r0 CH32F205r-r0 ch32f20x https://github.com/openwch/ch32f20x
|
||||
ch32v103r_r1_1v0 CH32V103R-R1-1v1 ch32v10x https://github.com/openwch/ch32v103/tree/main/SCHPCB/CH32V103R-R1-1v1
|
||||
ch32v203c_r0_1v0 CH32V203C-R0-1v0 ch32v20x https://github.com/openwch/ch32v20x/tree/main/SCHPCB/CH32V203C-R0
|
||||
ch32v203g_r0_1v0 CH32V203G-R0-1v0 ch32v20x https://github.com/openwch/ch32v20x/tree/main/SCHPCB/CH32V203C-R0
|
||||
nanoch32v203 nanoCH32V203 ch32v20x https://github.com/wuxx/nanoCH32V203
|
||||
ch32v307v_r1_1v0 CH32V307V-R1-1v0 ch32v307 https://github.com/openwch/ch32v307/tree/main/SCHPCB/CH32V307V-R1-1v0
|
||||
================ ================ ======== ===================================================================== ======
|
||||
@ -4,9 +4,9 @@ Dependencies
|
||||
|
||||
MCU low-level peripheral driver and external libraries for building TinyUSB examples
|
||||
|
||||
======================================== ============================================================== ======================================== ==========================================================================================================================================================================================================================================================================================================================
|
||||
======================================== ============================================================== ======================================== ====================================================================================================================================================================================================================================================================================================================================
|
||||
Local Path Repo Commit Required by
|
||||
======================================== ============================================================== ======================================== ==========================================================================================================================================================================================================================================================================================================================
|
||||
======================================== ============================================================== ======================================== ====================================================================================================================================================================================================================================================================================================================================
|
||||
hw/mcu/allwinner https://github.com/hathach/allwinner_driver.git 8e5e89e8e132c0fd90e72d5422e5d3d68232b756 fc100s
|
||||
hw/mcu/analog/max32 https://github.com/analogdevicesinc/msdk.git b20b398d3e5e2007594e54a74ba3d2a2e50ddd75 max32650 max32666 max32690 max78002
|
||||
hw/mcu/bridgetek/ft9xx/ft90x-sdk https://github.com/BRTSG-FOSS/ft90x-sdk.git 91060164afe239fcb394122e8bf9eb24d3194eb1 brtmm90x
|
||||
@ -20,10 +20,11 @@ hw/mcu/nuvoton https://github.com/majbthrd/nuc_driver
|
||||
hw/mcu/nxp/lpcopen https://github.com/hathach/nxp_lpcopen.git b41cf930e65c734d8ec6de04f1d57d46787c76ae lpc11 lpc13 lpc15 lpc17 lpc18 lpc40 lpc43
|
||||
hw/mcu/nxp/mcux-sdk https://github.com/hathach/mcux-sdk.git 144f1eb7ea8c06512e12f12b27383601c0272410 kinetis_k kinetis_k32l2 kinetis_kl lpc51 lpc54 lpc55 mcx imxrt
|
||||
hw/mcu/raspberry_pi/Pico-PIO-USB https://github.com/sekigon-gonnoc/Pico-PIO-USB.git fe9133fc513b82cc3dc62c67cb51f2339cf29ef7 rp2040
|
||||
hw/mcu/renesas/fsp https://github.com/renesas/fsp.git d52e5a6a59b7c638da860c2bb309b6e78e752ff8 ra
|
||||
hw/mcu/renesas/fsp https://github.com/renesas/fsp.git edcc97d684b6f716728a60d7a6fea049d9870bd6 ra
|
||||
hw/mcu/renesas/rx https://github.com/kkitayam/rx_device.git 706b4e0cf485605c32351e2f90f5698267996023 rx
|
||||
hw/mcu/silabs/cmsis-dfp-efm32gg12b https://github.com/cmsis-packs/cmsis-dfp-efm32gg12b.git f1c31b7887669cb230b3ea63f9b56769078960bc efm32
|
||||
hw/mcu/sony/cxd56/spresense-exported-sdk https://github.com/sonydevworld/spresense-exported-sdk.git 2ec2a1538362696118dc3fdf56f33dacaf8f4067 spresense
|
||||
hw/mcu/st/cmsis_device_c0 https://github.com/STMicroelectronics/cmsis_device_c0.git fb56b1b70c73b74eacda2a4bcc36886444364ab3 stm32c0
|
||||
hw/mcu/st/cmsis_device_f0 https://github.com/STMicroelectronics/cmsis_device_f0.git 2fc25ee22264bc27034358be0bd400b893ef837e stm32f0
|
||||
hw/mcu/st/cmsis_device_f1 https://github.com/STMicroelectronics/cmsis_device_f1.git 6601104a6397299b7304fd5bcd9a491f56cb23a6 stm32f1
|
||||
hw/mcu/st/cmsis_device_f2 https://github.com/STMicroelectronics/cmsis_device_f2.git 182fcb3681ce116816feb41b7764f1b019ce796f stm32f2
|
||||
@ -40,6 +41,8 @@ hw/mcu/st/cmsis_device_l4 https://github.com/STMicroelectronics/
|
||||
hw/mcu/st/cmsis_device_l5 https://github.com/STMicroelectronics/cmsis_device_l5.git d922865fc0326a102c26211c44b8e42f52c1e53d stm32l5
|
||||
hw/mcu/st/cmsis_device_u5 https://github.com/STMicroelectronics/cmsis_device_u5.git 5ad9797c54ec3e55eff770fc9b3cd4a1aefc1309 stm32u5
|
||||
hw/mcu/st/cmsis_device_wb https://github.com/STMicroelectronics/cmsis_device_wb.git 9c5d1920dd9fabbe2548e10561d63db829bb744f stm32wb
|
||||
hw/mcu/st/stm32-mfxstm32l152 https://github.com/STMicroelectronics/stm32-mfxstm32l152.git 7f4389efee9c6a655b55e5df3fceef5586b35f9b stm32h7
|
||||
hw/mcu/st/stm32c0xx_hal_driver https://github.com/STMicroelectronics/stm32c0xx_hal_driver.git 41253e2f1d7ae4a4d0c379cf63f5bcf71fcf8eb3 stm32c0
|
||||
hw/mcu/st/stm32f0xx_hal_driver https://github.com/STMicroelectronics/stm32f0xx_hal_driver.git 0e95cd88657030f640a11e690a8a5186c7712ea5 stm32f0
|
||||
hw/mcu/st/stm32f1xx_hal_driver https://github.com/STMicroelectronics/stm32f1xx_hal_driver.git 1dd9d3662fb7eb2a7f7d3bc0a4c1dc7537915a29 stm32f1
|
||||
hw/mcu/st/stm32f2xx_hal_driver https://github.com/STMicroelectronics/stm32f2xx_hal_driver.git c75ace9b908a9aca631193ebf2466963b8ea33d0 stm32f2
|
||||
@ -61,9 +64,10 @@ hw/mcu/wch/ch32f20x https://github.com/openwch/ch32f20x.gi
|
||||
hw/mcu/wch/ch32v103 https://github.com/openwch/ch32v103.git 7578cae0b21f86dd053a1f781b2fc6ab99d0ec17 ch32v10x
|
||||
hw/mcu/wch/ch32v20x https://github.com/openwch/ch32v20x.git c4c38f507e258a4e69b059ccc2dc27dde33cea1b ch32v20x
|
||||
hw/mcu/wch/ch32v307 https://github.com/openwch/ch32v307.git 184f21b852cb95eed58e86e901837bc9fff68775 ch32v307
|
||||
lib/CMSIS_5 https://github.com/ARM-software/CMSIS_5.git 20285262657d1b482d132d20d755c8c330d55c1f imxrt kinetis_k32l2 kinetis_kl lpc51 lpc54 lpc55 mcx mm32 msp432e4 nrf ra saml2xlpc11 lpc13 lpc15 lpc17 lpc18 lpc40 lpc43stm32f0 stm32f1 stm32f2 stm32f3 stm32f4 stm32f7 stm32g0 stm32g4 stm32h5stm32h7 stm32l0 stm32l1 stm32l4 stm32l5 stm32u5 stm32wbsam3x samd11 samd21 samd51 samd5x_e5x same5x same7x saml2x samgtm4c
|
||||
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 stm32l0 stm32l1 stm32l4 stm32l5 stm32u5 stm32wb sam3x samd11 samd21 samd51 samd5x_e5x same5x same7x saml2x samg tm4c
|
||||
lib/CMSIS_6 https://github.com/ARM-software/CMSIS_6.git b0bbb0423b278ca632cfe1474eb227961d835fd2 ra
|
||||
lib/FreeRTOS-Kernel https://github.com/FreeRTOS/FreeRTOS-Kernel.git cc0e0707c0c748713485b870bb980852b210877f all
|
||||
lib/lwip https://github.com/lwip-tcpip/lwip.git 159e31b689577dbf69cf0683bbaffbd71fa5ee10 all
|
||||
lib/sct_neopixel https://github.com/gsteiert/sct_neopixel.git e73e04ca63495672d955f9268e003cffe168fcd8 lpc55
|
||||
tools/uf2 https://github.com/microsoft/uf2.git c594542b2faa01cc33a2b97c9fbebc38549df80a all
|
||||
======================================== ============================================================== ======================================== ==========================================================================================================================================================================================================================================================================================================================
|
||||
======================================== ============================================================== ======================================== ====================================================================================================================================================================================================================================================================================================================================
|
||||
|
||||
@ -10,7 +10,7 @@ It is relatively simple to incorporate tinyusb to your project
|
||||
* Copy or ``git submodule`` this repo into your project in a subfolder. Let's say it is *your_project/tinyusb*
|
||||
* Add all the .c in the ``tinyusb/src`` folder to your project
|
||||
* Add *your_project/tinyusb/src* to your include path. Also make sure your current include path also contains the configuration file tusb_config.h.
|
||||
* 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).
|
||||
* 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).
|
||||
* 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.
|
||||
* Add tusb_init(rhport, role) call to your reset initialization code.
|
||||
* Call ``tusb_int_handler(rhport, in_isr)`` in your USB IRQ Handler
|
||||
@ -20,8 +20,17 @@ It is relatively simple to incorporate tinyusb to your project
|
||||
.. code-block::
|
||||
|
||||
int main(void) {
|
||||
your_init_code();
|
||||
tusb_init(0, TUSB_ROLE_DEVICE); // initialize device stack on roothub port 0
|
||||
tusb_rhport_init_t dev_init = {
|
||||
.role = TUSB_ROLE_DEVICE,
|
||||
.speed = TUSB_SPEED_AUTO
|
||||
};
|
||||
tusb_init(0, &dev_init); // initialize device stack on roothub port 0
|
||||
|
||||
tusb_rhport_init_t host_init = {
|
||||
.role = TUSB_ROLE_HOST,
|
||||
.speed = TUSB_SPEED_AUTO
|
||||
};
|
||||
tusb_init(1, &host_init); // initialize host stack on roothub port 1
|
||||
|
||||
while(1) { // the mainloop
|
||||
your_application_code();
|
||||
@ -30,10 +39,18 @@ It is relatively simple to incorporate tinyusb to your project
|
||||
}
|
||||
}
|
||||
|
||||
void USB0_IRQHandler(void) {
|
||||
tusb_int_handler(0, true);
|
||||
}
|
||||
|
||||
void USB1_IRQHandler(void) {
|
||||
tusb_int_handler(1, true);
|
||||
}
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
||||
For your convenience, TinyUSB contains a handful of examples for both host and device with/without RTOS to quickly test the functionality as well as demonstrate how API() should be used. Most examples will work on most of `the supported boards <supported.rst>`_. Firstly we need to ``git clone`` if not already
|
||||
For your convenience, TinyUSB contains a handful of examples for both host and device with/without RTOS to quickly test the functionality as well as demonstrate how API() should be used. Most examples will work on most of `the supported boards <boards.rst>`_. Firstly we need to ``git clone`` if not already
|
||||
|
||||
.. code-block::
|
||||
|
||||
|
||||
@ -1,85 +1,10 @@
|
||||
*********
|
||||
Reference
|
||||
*********
|
||||
|
||||
.. figure:: ../assets/stack.svg
|
||||
:width: 1600px
|
||||
:alt: TinyUSB
|
||||
|
||||
::
|
||||
|
||||
.
|
||||
├── docs # Documentation
|
||||
├── examples # Examples with make and cmake build system
|
||||
├── hw
|
||||
│ ├── bsp # Supported boards source files
|
||||
│ └── mcu # Low level mcu core & peripheral drivers
|
||||
├── lib # Sources from 3rd party such as freeRTOS, fatfs ...
|
||||
├── src # All sources files for TinyUSB stack itself.
|
||||
├── test # Tests: unit test, fuzzing, hardware test
|
||||
└── tools # Files used internally
|
||||
|
||||
|
||||
Device Stack
|
||||
============
|
||||
|
||||
Supports multiple device configurations by dynamically changing USB descriptors, low power functions such like suspend, resume, and remote wakeup. The following device classes are supported:
|
||||
|
||||
- Audio Class 2.0 (UAC2)
|
||||
- Bluetooth Host Controller Interface (BTH HCI)
|
||||
- Communication Device Class (CDC)
|
||||
- Device Firmware Update (DFU): DFU mode (WIP) and Runtime
|
||||
- Human Interface Device (HID): Generic (In & Out), Keyboard, Mouse, Gamepad etc ...
|
||||
- Mass Storage Class (MSC): with multiple LUNs
|
||||
- Musical Instrument Digital Interface (MIDI)
|
||||
- Network with RNDIS, Ethernet Control Model (ECM), Network Control Model (NCM)
|
||||
- Test and Measurement Class (USBTMC)
|
||||
- Video class 1.5 (UVC): work in progress
|
||||
- Vendor-specific class support with generic In & Out endpoints. Can be used with MS OS 2.0 compatible descriptor to load winUSB driver without INF file.
|
||||
- `WebUSB <https://github.com/WICG/webusb>`__ with vendor-specific class
|
||||
|
||||
If you have a special requirement, `usbd_app_driver_get_cb()` can be used to write your own class driver without modifying the stack. Here is how the RPi team added their reset interface `raspberrypi/pico-sdk#197 <https://github.com/raspberrypi/pico-sdk/pull/197>`_
|
||||
|
||||
Host Stack
|
||||
==========
|
||||
|
||||
- Human Interface Device (HID): Keyboard, Mouse, Generic
|
||||
- Mass Storage Class (MSC)
|
||||
- Communication Device Class: CDC-ACM
|
||||
- Vendor serial over USB: FTDI, CP210x
|
||||
- Hub with multiple-level support
|
||||
|
||||
Similar to the Device Stack, if you have a special requirement, `usbh_app_driver_get_cb()` can be used to write your own class driver without modifying the stack.
|
||||
|
||||
TypeC PD Stack
|
||||
==============
|
||||
|
||||
- Power Delivery 3.0 (PD3.0) with USB Type-C support (WIP)
|
||||
- Super early stage, only for testing purpose
|
||||
- Only support STM32 G4
|
||||
|
||||
OS Abstraction layer
|
||||
====================
|
||||
|
||||
TinyUSB is completely thread-safe by pushing all Interrupt Service Request (ISR) events into a central queue, then processing them later in the non-ISR context task function. It also uses semaphore/mutex to access shared resources such as Communication Device Class (CDC) FIFO. Therefore the stack needs to use some of the OS's basic APIs. Following OSes are already supported out of the box.
|
||||
|
||||
- **No OS**
|
||||
- **FreeRTOS**
|
||||
- `RT-Thread <https://github.com/RT-Thread/rt-thread>`_: `repo <https://github.com/RT-Thread-packages/tinyusb>`_
|
||||
- **Mynewt** Due to the newt package build system, Mynewt examples are better to be on its `own repo <https://github.com/hathach/mynewt-tinyusb-example>`_
|
||||
|
||||
License
|
||||
=======
|
||||
|
||||
All TinyUSB sources in the `src` folder are licensed under MIT license. However, each file can be individually licensed especially those in `lib` and `hw/mcu` folder. Please make sure you understand all the license term for files you use in your project.
|
||||
|
||||
Index
|
||||
=====
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
supported
|
||||
getting_started
|
||||
boards
|
||||
dependencies
|
||||
concurrency
|
||||
|
||||
@ -1,442 +0,0 @@
|
||||
*****************
|
||||
Supported Devices
|
||||
*****************
|
||||
|
||||
Supported MCUs
|
||||
==============
|
||||
|
||||
+--------------+-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| Manufacturer | Family | Device | Host | Highspeed | Driver | Note |
|
||||
+==============+=============================+========+======+===========+========================+===================+
|
||||
| Allwinner | F1C100s/F1C200s | ✔ | | ✔ | sunxi | musb variant |
|
||||
+--------------+-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| Analog | MAX3421E | | ✔ | ✖ | max3421 | via SPI |
|
||||
| +-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | MAX32 650, 666, 690, | ✔ | | ✔ | musb | 1-dir ep |
|
||||
| | MAX78002 | | | | | |
|
||||
+--------------+-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| Brigetek | FT90x | ✔ | | ✔ | ft9xx | 1-dir ep |
|
||||
+--------------+-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| Broadcom | BCM2711, BCM2837 | ✔ | | ✔ | dwc2 | |
|
||||
+--------------+-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| Dialog | DA1469x | ✔ | ✖ | ✖ | da146xx | |
|
||||
+--------------+-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| Espressif | S2, S3 | ✔ | ✔ | ✖ | dwc2 or esp32sx | |
|
||||
| ESP32 +-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | P4 | ✔ | ✔ | ✔ | dwc2 | |
|
||||
+--------------+----+------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| GigaDevice | GD32VF103 | ✔ | | ✖ | dwc2 | |
|
||||
+--------------+-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| Infineon | XMC4500 | ✔ | ✔ | ✖ | dwc2 | |
|
||||
+--------------+-----+-----------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| MicroChip | SAM | D11, D21, L21, L22 | ✔ | | ✖ | samd | |
|
||||
| | +-----------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | D51, E5x | ✔ | | ✖ | samd | |
|
||||
| | +-----------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | G55 | ✔ | | ✖ | samg | 1-dir ep |
|
||||
| | +-----------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | E70,S70,V70,V71 | ✔ | | ✔ | samx7x | 1-dir ep |
|
||||
| +-----+-----------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | PIC | 24 | ✔ | | | pic | ci_fs variant |
|
||||
| | +-----------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | 32 mm, mk, mx | ✔ | | | pic | ci_fs variant |
|
||||
| | +-----------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | dsPIC33 | ✔ | | | pic | ci_fs variant |
|
||||
| | +-----------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | 32mz | ✔ | | | pic32mz | musb variant |
|
||||
+--------------+-----+-----------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| Mind Montion | mm32 | ✔ | | ✖ | mm32f327x_otg | ci_fs variant |
|
||||
+--------------+-----+-----------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| NordicSemi | nRF 52833, 52840, 5340 | ✔ | ✖ | ✖ | nrf5x | only ep8 is ISO |
|
||||
+--------------+-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| Nuvoton | NUC120 | ✔ | ✖ | ✖ | nuc120 | |
|
||||
| +-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | NUC121/NUC125 | ✔ | ✖ | ✖ | nuc121 | |
|
||||
| +-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | NUC126 | ✔ | ✖ | ✖ | nuc121 | |
|
||||
| +-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | NUC505 | ✔ | | ✔ | nuc505 | |
|
||||
+--------------+---------+-------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| NXP | iMXRT | RT 10xx, 11xx | ✔ | ✔ | ✔ | ci_hs | |
|
||||
| +---------+-------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | Kinetis | KL | ✔ | ⚠ | ✖ | ci_fs, khci | |
|
||||
| | +-------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | K32L2 | ✔ | | ✖ | khci | ci_fs variant |
|
||||
| +---------+-------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | LPC | 11u, 13, 15 | ✔ | ✖ | ✖ | lpc_ip3511 | |
|
||||
| | +-------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | 17, 40 | ✔ | ⚠ | ✖ | lpc17_40 | |
|
||||
| | +-------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | 18, 43 | ✔ | ✔ | ✔ | ci_hs | |
|
||||
| | +-------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | 51u | ✔ | ✖ | ✖ | lpc_ip3511 | |
|
||||
| | +-------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | 54, 55 | ✔ | | ✔ | lpc_ip3511 | |
|
||||
| +---------+-------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | MCX | N9, A15 | ✔ | | ✔ | ci_fs, ci_hs | |
|
||||
+--------------+---------+-------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| Raspberry Pi | RP2040, RP2350 | ✔ | ✔ | ✖ | rp2040, pio_usb | |
|
||||
+--------------+-----+-----------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| Renesas | RX | 63N, 65N, 72N | ✔ | ✔ | ✖ | rusb2 | |
|
||||
| +-----+-----------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | RA | 4M1, 4M3, 6M1 | ✔ | ✔ | ✖ | rusb2 | |
|
||||
| | +-----------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | 6M5 | ✔ | ✔ | ✔ | rusb2 | |
|
||||
+--------------+-----+-----------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| Silabs | EFM32GG12 | ✔ | | ✖ | dwc2 | |
|
||||
+--------------+-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| Sony | CXD56 | ✔ | ✖ | ✔ | cxd56 | |
|
||||
+--------------+-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| ST STM32 | F0 | ✔ | ✖ | ✖ | stm32_fsdev | |
|
||||
| +----+------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | F1 | 102, 103 | ✔ | ✖ | ✖ | stm32_fsdev | |
|
||||
| | +------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | 105, 107 | ✔ | ✔ | ✖ | dwc2 | |
|
||||
| +----+------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | F2, F4, F7, H7 | ✔ | ✔ | ✔ | dwc2 | |
|
||||
| +-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | F3 | ✔ | ✖ | ✖ | stm32_fsdev | |
|
||||
| +-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | C0, G0, H5 | ✔ | | ✖ | stm32_fsdev | |
|
||||
| +-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | G4 | ✔ | ✖ | ✖ | stm32_fsdev | |
|
||||
| +-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | L0, L1 | ✔ | ✖ | ✖ | stm32_fsdev | |
|
||||
| +----+------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | L4 | 4x2, 4x3 | ✔ | ✖ | ✖ | stm32_fsdev | |
|
||||
| | +------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | 4x5, 4x6 | ✔ | ✔ | ✖ | dwc2 | |
|
||||
| +----+------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | L4+ | ✔ | ✔ | ✖ | dwc2 | |
|
||||
| +-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | L5 | ✔ | ✖ | ✖ | stm32_fsdev | |
|
||||
| +----+------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | U5 | 535, 545 | ✔ | | ✖ | stm32_fsdev | |
|
||||
| | +------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | 575, 585 | ✔ | ✔ | ✖ | dwc2 | |
|
||||
| | +------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | | 59x,5Ax,5Fx,5Gx | ✔ | ✔ | ✔ | dwc2 | |
|
||||
| +----+------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | WBx5 | ✔ | ✖ | ✖ | stm32_fsdev | |
|
||||
+--------------+-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| TI | MSP430 | ✔ | ✖ | ✖ | msp430x5xx | |
|
||||
| +-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | MSP432E4 | ✔ | | ✖ | musb | |
|
||||
| +-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | TM4C123 | ✔ | | ✖ | musb | |
|
||||
+--------------+-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| ValentyUSB | eptri | ✔ | ✖ | ✖ | eptri | |
|
||||
+--------------+-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| WCH | CH32F20x | ✔ | | ✔ | ch32_usbhs | |
|
||||
| +-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | CH32V20x | ✔ | | ✖ | stm32_fsdev/ch32_usbfs | |
|
||||
| +-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
| | CH32V307 | ✔ | | ✔ | ch32_usbfs/hs | |
|
||||
+--------------+-----------------------------+--------+------+-----------+------------------------+-------------------+
|
||||
|
||||
|
||||
Table Legend
|
||||
------------
|
||||
|
||||
========= =========================
|
||||
✔ Supported
|
||||
⚠ Partial support
|
||||
✖ Not supported by hardware
|
||||
\[empty\] Unknown
|
||||
========= =========================
|
||||
|
||||
Supported Boards
|
||||
================
|
||||
|
||||
The board support code is only used for self-contained examples and testing. It is not used when TinyUSB is part of a larger project. It is responsible for getting the MCU started and the USB peripheral clocked with minimal of on-board devices
|
||||
|
||||
- One LED : for status
|
||||
- One Button : to get input from user
|
||||
- One UART : optional for device, but required for host examples
|
||||
|
||||
The following boards are supported (sorted alphabetically):
|
||||
|
||||
Broadcom
|
||||
--------
|
||||
|
||||
- `Raspberry Pi CM4 <https://www.raspberrypi.com/products/compute-module-4>`__
|
||||
|
||||
Dialog DA146xx
|
||||
--------------
|
||||
|
||||
- `DA14695 Development Kit – USB <https://www.dialog-semiconductor.com/products/da14695-development-kit-usb>`__
|
||||
- `DA1469x Development Kit – Pro <https://www.dialog-semiconductor.com/products/da14695-development-kit-pro>`__
|
||||
|
||||
Espressif ESP32-S2
|
||||
------------------
|
||||
|
||||
- `Adafruit Feather ESP32-S2 <https://www.adafruit.com/product/5000>`__
|
||||
- `Adafruit Magtag 2.9" E-Ink WiFi Display <https://www.adafruit.com/product/4800>`__
|
||||
- `Adafruit Metro ESP32-S2 <https://www.adafruit.com/product/4775>`__
|
||||
- `ESP32-S2-Kaluga-1 <https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/hw-reference/esp32s2/user-guide-esp32-s2-kaluga-1-kit.html>`__
|
||||
- `ESP32-S2-Saola-1 <https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/hw-reference/esp32s2/user-guide-saola-1-v1.2.html>`__
|
||||
|
||||
GigaDevice
|
||||
----------
|
||||
|
||||
- `Sipeed Longan Nano <https://longan.sipeed.com/en/>`__
|
||||
|
||||
Infineon
|
||||
---------
|
||||
|
||||
XMC4000
|
||||
^^^^^^^
|
||||
|
||||
- `XMC4500 Relax (Lite) Kit <https://www.infineon.com/cms/en/product/evaluation-boards/kit_xmc45_relax_lite_v1/>`__
|
||||
|
||||
MicroChip
|
||||
---------
|
||||
|
||||
SAMD11 & SAMD21
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
- `Adafruit Circuit Playground Express <https://www.adafruit.com/product/3333>`__
|
||||
- `Adafruit Feather M0 Express <https://www.adafruit.com/product/3403>`__
|
||||
- `Adafruit ItsyBitsy M0 Express <https://www.adafruit.com/product/3727>`__
|
||||
- `Adafruit Metro M0 Express <https://www.adafruit.com/product/3505>`__
|
||||
- `Great Scott Gadgets Cynthion <https://greatscottgadgets.com/cynthion/>`__
|
||||
- `Microchip SAMD11 Xplained Pro <https://www.microchip.com/developmenttools/ProductDetails/atsamd11-xpro>`__
|
||||
- `Microchip SAMD21 Xplained Pro <https://www.microchip.com/DevelopmentTools/ProductDetails/ATSAMD21-XPRO>`__
|
||||
- `Seeeduino Xiao <https://www.seeedstudio.com/Seeeduino-XIAO-Arduino-Microcontroller-SAMD21-Cortex-M0+-p-4426.html>`__
|
||||
|
||||
SAMD51 & SAME54
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
- `Adafruit Feather M4 Express <https://www.adafruit.com/product/3857>`__
|
||||
- `Adafruit ItsyBitsy M4 Express <https://www.adafruit.com/product/3800>`__
|
||||
- `Adafruit PyBadge <https://www.adafruit.com/product/4200>`__
|
||||
- `Adafruit PyPortal <https://www.adafruit.com/product/4116>`__
|
||||
- `Adafruit Metro M4 Express <https://www.adafruit.com/product/3382>`__
|
||||
- `D5035-01 <https://github.com/RudolphRiedel/USB_CAN-FD>`__
|
||||
- `Microchip SAME54 Xplained Pro <https://www.microchip.com/developmenttools/productdetails/atsame54-xpro>`__
|
||||
|
||||
SAME7x
|
||||
^^^^^^
|
||||
|
||||
- `Microchip SAME70 Xplained <https://www.microchip.com/en-us/development-tool/ATSAME70-XPLD>`_
|
||||
- `QMTECH ATSAME70N19 <https://www.aliexpress.com/item/1005003173783268.html>`_
|
||||
|
||||
SAMG
|
||||
^^^^
|
||||
|
||||
- `Microchip SAMG55 Xplained Pro <https://www.microchip.com/DevelopmentTools/ProductDetails/PartNO/ATSAMG55-XPRO>`__
|
||||
|
||||
SAML2x
|
||||
^^^^^^
|
||||
|
||||
- `SAML21 Xplaind Pro <https://www.microchip.com/DevelopmentTools/ProductDetails/ATSAML21-XPRO-B>`__
|
||||
- `SAML22 Feather <https://github.com/joeycastillo/Feather-Projects/tree/main/SAML22%20Feather>`__
|
||||
- `Sensor Watch <https://github.com/joeycastillo/Sensor-Watch>`__
|
||||
|
||||
Nordic nRF5x
|
||||
------------
|
||||
|
||||
- `Adafruit Circuit Playground Bluefruit <https://www.adafruit.com/product/4333>`__
|
||||
- `Adafruit CLUE <https://www.adafruit.com/product/4500>`__
|
||||
- `Adafruit Feather nRF52840 Express <https://www.adafruit.com/product/4062>`__
|
||||
- `Adafruit Feather nRF52840 Sense <https://www.adafruit.com/product/4516>`__
|
||||
- `Adafruit ItsyBitsy nRF52840 Express <https://www.adafruit.com/product/4481>`__
|
||||
- `Arduino Nano 33 BLE <https://store.arduino.cc/usa/nano-33-ble>`__
|
||||
- `Arduino Nano 33 BLE Sense <https://store.arduino.cc/usa/nano-33-ble-sense>`__
|
||||
- `Maker Diary nRF52840 MDK Dongle <https://wiki.makerdiary.com/nrf52840-mdk-usb-dongle>`__
|
||||
- `Nordic nRF52840 Development Kit (aka pca10056) <https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52840-DK>`__
|
||||
- `Nordic nRF52840 Dongle (aka pca10059) <https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52840-Dongle>`__
|
||||
- `Nordic nRF52833 Development Kit (aka pca10100) <https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52833-DK>`__
|
||||
- `Raytac MDBT50Q-RX Dongle <https://www.raytac.com/product/ins.php?index_id=89>`__
|
||||
|
||||
Nuvoton
|
||||
-------
|
||||
|
||||
- NuTiny SDK NUC120
|
||||
- `NuTiny NUC121S <https://direct.nuvoton.com/en/nutiny-nuc121s>`__
|
||||
- `NuTiny NUC125S <https://direct.nuvoton.com/en/nutiny-nuc125s>`__
|
||||
- `NuTiny NUC126V <https://direct.nuvoton.com/en/nutiny-nuc126v>`__
|
||||
- `NuTiny SDK NUC505Y <https://direct.nuvoton.com/en/nutiny-nuc505y>`__
|
||||
|
||||
NXP
|
||||
---
|
||||
|
||||
iMX RT
|
||||
^^^^^^
|
||||
|
||||
- `MIMX RT1010 Evaluation Kit <https://www.nxp.com/design/development-boards/i.mx-evaluation-and-development-boards/i.mx-rt1010-evaluation-kit:MIMXRT1010-EVK>`__
|
||||
- `MIMX RT1015 Evaluation Kit <https://www.nxp.com/design/development-boards/i.mx-evaluation-and-development-boards/i.mx-rt1015-evaluation-kit:MIMXRT1015-EVK>`__
|
||||
- `MIMX RT1020 Evaluation Kit <https://www.nxp.com/design/development-boards/i.mx-evaluation-and-development-boards/i.mx-rt1020-evaluation-kit:MIMXRT1020-EVK>`__
|
||||
- `MIMX RT1050 Evaluation Kit <https://www.nxp.com/design/development-boards/i.mx-evaluation-and-development-boards/i.mx-rt1050-evaluation-kit:MIMXRT1050-EVK>`__
|
||||
- `MIMX RT1060 Evaluation Kit <https://www.nxp.com/design/development-boards/i.mx-evaluation-and-development-boards/mimxrt1060-evk-i.mx-rt1060-evaluation-kit:MIMXRT1060-EVK>`__
|
||||
- `MIMX RT1064 Evaluation Kit <https://www.nxp.com/design/development-boards/i.mx-evaluation-and-development-boards/mimxrt1064-evk-i.mx-rt1064-evaluation-kit:MIMXRT1064-EVK>`__
|
||||
- `Teensy 4.0 Development Board <https://www.pjrc.com/store/teensy40.html>`__
|
||||
- `Teensy 4.1 Development Board <https://www.pjrc.com/store/teensy41.html>`__
|
||||
|
||||
Kinetis
|
||||
^^^^^^^
|
||||
|
||||
- `Freedom FRDM-KL25Z <https://www.nxp.com/design/development-boards/freedom-development-boards/mcu-boards/freedom-development-platform-for-kinetis-kl14-kl15-kl24-kl25-mcus:FRDM-KL25Z>`__
|
||||
- `Freedom FRDM-K32L2A4S <https://www.nxp.com/design/development-boards/freedom-development-boards/mcu-boards/nxp-freedom-platform-for-k32-l2a-mcus:FRDM-K32L2A4S>`__
|
||||
- `Freedom FRDM-K32L2B3 <https://www.nxp.com/design/development-boards/freedom-development-boards/mcu-boards/nxp-freedom-development-platform-for-k32-l2b-mcus:FRDM-K32L2B3>`__
|
||||
- `KUIIC <https://github.com/nxf58843/kuiic>`__
|
||||
|
||||
LPC 11-13-15
|
||||
^^^^^^^^^^^^
|
||||
|
||||
- `LPCXpresso 11u37 <https://www.nxp.com/design/microcontrollers-developer-resources/lpcxpresso-boards/lpcxpresso-board-for-lpc11u37h:OM13074>`__
|
||||
- `LPCXpresso 11u68 <https://www.nxp.com/support/developer-resources/evaluation-and-development-boards/lpcxpresso-boards/lpcxpresso-board-for-lpc11u68:OM13058>`__
|
||||
- `LPCXpresso 1347 <https://www.nxp.com/support/developer-resources/evaluation-and-development-boards/lpcxpresso-boards/lpcxpresso-board-for-lpc1347:OM13045>`__
|
||||
- `LPCXpresso 1549 <https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/lpc1500-cortex-m3/lpcxpresso-board-for-lpc1549:OM13056>`__
|
||||
|
||||
LPC 17-40
|
||||
^^^^^^^^^
|
||||
|
||||
- `ARM mbed LPC1768 <https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/lpc1700-cortex-m3/arm-mbed-lpc1768-board:OM11043>`__
|
||||
- `Embedded Artists LPC4088 Quick Start board <https://www.embeddedartists.com/products/lpc4088-quickstart-board>`__
|
||||
- `LPCXpresso 1769 <https://www.nxp.com/support/developer-resources/evaluation-and-development-boards/lpcxpresso-boards/lpcxpresso-board-for-lpc1769:OM13000>`__
|
||||
|
||||
LPC 18-43
|
||||
^^^^^^^^^
|
||||
|
||||
- `Embedded Artists LPC4357 Developer Kit <http://www.embeddedartists.com/products/kits/lpc4357_kit.php>`__
|
||||
- `Keil MCB1800 Evaluation Board <http://www.keil.com/mcb1800>`__
|
||||
- `LPCXpresso18S37 Development Board <https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/lpc4000-cortex-m4/lpcxpresso18s37-development-board:OM13076>`__
|
||||
|
||||
LPC 51
|
||||
^^^^^^
|
||||
|
||||
- `LPCXpresso 51U68 <https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/lpcxpresso51u68-for-the-lpc51u68-mcus:OM40005>`__
|
||||
|
||||
LPC 54
|
||||
^^^^^^
|
||||
|
||||
- `LPCXpresso 54114 <https://www.nxp.com/design/microcontrollers-developer-resources/lpcxpresso-boards/lpcxpresso54114-board:OM13089>`__
|
||||
|
||||
LPC55
|
||||
^^^^^
|
||||
|
||||
- `Double M33 Express <https://www.crowdsupply.com/steiert-solutions/double-m33-express>`__
|
||||
- `LPCXpresso 55s28 EVK <https://www.nxp.com/design/software/development-software/lpcxpresso55s28-development-board:LPC55S28-EVK>`__
|
||||
- `LPCXpresso 55s69 EVK <https://www.nxp.com/design/development-boards/lpcxpresso-boards/lpcxpresso55s69-development-board:LPC55S69-EVK>`__
|
||||
- `MCU-Link <https://www.nxp.com/design/development-boards/lpcxpresso-boards/mcu-link-debug-probe:MCU-LINK>`__
|
||||
|
||||
Renesas
|
||||
-------
|
||||
|
||||
RA
|
||||
^^
|
||||
|
||||
- `Evaluation Kit for RA4M1 <https://www.renesas.com/us/en/products/microcontrollers-microprocessors/ra-cortex-m-mcus/ek-ra4m1-evaluation-kit-ra4m1-mcu-group>`__
|
||||
- `Evaluation Kit for RA4M3 <https://www.renesas.com/us/en/products/microcontrollers-microprocessors/ra-cortex-m-mcus/ek-ra4m3-evaluation-kit-ra4m3-mcu-group>`__
|
||||
|
||||
RX
|
||||
^^
|
||||
|
||||
- `GR-CITRUS <https://www.renesas.com/us/en/products/gadget-renesas/boards/gr-citrus>`__
|
||||
- `Renesas RX65N Target Board <https://www.renesas.com/us/en/products/microcontrollers-microprocessors/rx-32-bit-performance-efficiency-mcus/rtk5rx65n0c00000br-target-board-rx65n>`__
|
||||
|
||||
Raspberry Pi RP2040
|
||||
-------------------
|
||||
|
||||
- `Adafruit Feather RP2040 <https://www.adafruit.com/product/4884>`__
|
||||
- `Adafruit ItsyBitsy RP2040 <https://www.adafruit.com/product/4888>`__
|
||||
- `Adafruit QT Py RP2040 <https://www.adafruit.com/product/4900>`__
|
||||
- `Raspberry Pi Pico <https://www.raspberrypi.org/products/raspberry-pi-pico/>`__
|
||||
|
||||
Silabs
|
||||
------
|
||||
|
||||
- `EFM32GG12 Thunderboard Kit (SLTB009A) <https://www.silabs.com/development-tools/thunderboard/thunderboard-gg12-kit>`__
|
||||
|
||||
Sony
|
||||
----
|
||||
|
||||
- `Sony Spresense CXD5602 <https://developer.sony.com/develop/spresense>`__
|
||||
|
||||
ST STM32
|
||||
--------
|
||||
|
||||
F0
|
||||
^^
|
||||
- `STM32 F070rb Nucleo <https://www.st.com/en/evaluation-tools/nucleo-f070rb.html>`__
|
||||
- `STM32 F072 Evaluation <https://www.st.com/en/evaluation-tools/stm32072b-eval.html>`__
|
||||
- `STM32 F072rb Discovery <https://www.st.com/en/evaluation-tools/32f072bdiscovery.html>`__
|
||||
|
||||
F1
|
||||
^^
|
||||
- `STM32 F103c8 Blue Pill <https://stm32-base.org/boards/STM32F103C8T6-Blue-Pill>`__
|
||||
- `STM32 F103rc Mini v2.0 <https://stm32-base.org/boards/STM32F103RCT6-STM32-Mini-V2.0>`__
|
||||
|
||||
F2
|
||||
^^
|
||||
- `STM32 F207zg Nucleo <https://www.st.com/en/evaluation-tools/nucleo-f207zg.html>`__
|
||||
|
||||
F3
|
||||
^^
|
||||
- `STM32 F303vc Discovery <https://www.st.com/en/evaluation-tools/stm32f3discovery.html>`__
|
||||
|
||||
F4
|
||||
^^
|
||||
- `Adafruit Feather STM32F405 <https://www.adafruit.com/product/4382>`__
|
||||
- `Micro Python PyBoard v1.1 <https://store.micropython.org/product/PYBv1.1>`__
|
||||
- `STM32 F401cc Black Pill <https://stm32-base.org/boards/STM32F401CCU6-WeAct-Black-Pill-V1.2>`__
|
||||
- `STM32 F407vg Discovery <https://www.st.com/en/evaluation-tools/stm32f4discovery.html>`__
|
||||
- `STM32 F411ce Black Pill <https://www.adafruit.com/product/4877>`__
|
||||
- `STM32 F411ve Discovery <https://www.st.com/en/evaluation-tools/32f411ediscovery.html>`__
|
||||
- `STM32 F412zg Discovery <https://www.st.com/en/evaluation-tools/32f412gdiscovery.html>`__
|
||||
- `STM32 F412zg Nucleo <https://www.st.com/en/evaluation-tools/nucleo-f412zg.html>`__
|
||||
- `STM32 F439zi Nucleo <https://www.st.com/en/evaluation-tools/nucleo-f439zi.html>`__
|
||||
|
||||
F7
|
||||
^^
|
||||
|
||||
- `STLink-V3 Mini <https://www.st.com/en/development-tools/stlink-v3mini.html>`__
|
||||
- `STM32 F723e Discovery <https://www.st.com/en/evaluation-tools/32f723ediscovery.html>`__
|
||||
- `STM32 F746zg Nucleo <https://www.st.com/en/evaluation-tools/nucleo-f746zg.html>`__
|
||||
- `STM32 F746g Discovery <https://www.st.com/en/evaluation-tools/32f746gdiscovery.html>`__
|
||||
- `STM32 F767zi Nucleo <https://www.st.com/en/evaluation-tools/nucleo-f767zi.html>`__
|
||||
- `STM32 F769i Discovery <https://www.st.com/en/evaluation-tools/32f769idiscovery.html>`__
|
||||
|
||||
H7
|
||||
^^
|
||||
- `STM32 H743zi Nucleo <https://www.st.com/en/evaluation-tools/nucleo-h743zi.html>`__
|
||||
- `STM32 H743i Evaluation <https://www.st.com/en/evaluation-tools/stm32h743i-eval.html>`__
|
||||
- `STM32 H745i Discovery <https://www.st.com/en/evaluation-tools/stm32h745i-disco.html>`__
|
||||
- `Waveshare OpenH743I-C <https://www.waveshare.com/openh743i-c-standard.htm>`__
|
||||
|
||||
G4
|
||||
^^
|
||||
- `STM32 G474RE Nucleo <https://www.st.com/en/evaluation-tools/nucleo-g474re.html>`__
|
||||
|
||||
L0
|
||||
^^
|
||||
- `STM32 L035c8 Discovery <https://www.st.com/en/evaluation-tools/32l0538discovery.html>`__
|
||||
|
||||
L4
|
||||
^^
|
||||
- `STM32 L476vg Discovery <https://www.st.com/en/evaluation-tools/32l476gdiscovery.html>`__
|
||||
- `STM32 L4P5zg Nucleo <https://www.st.com/en/evaluation-tools/nucleo-l4p5zg.html>`__
|
||||
- `STM32 L4R5zi Nucleo <https://www.st.com/en/evaluation-tools/nucleo-l4r5zi.html>`__
|
||||
|
||||
WB
|
||||
^^
|
||||
- `STM32 WB55 Nucleo <https://www.st.com/en/evaluation-tools/p-nucleo-wb55.html>`__
|
||||
|
||||
TI
|
||||
--
|
||||
|
||||
- `MSP430F5529 USB LaunchPad Evaluation Kit <http://www.ti.com/tool/MSP-EXP430F5529LP>`__
|
||||
- `MSP-EXP432E401Y LaunchPad Evaluation Kit <https://www.ti.com/tool/MSP-EXP432E401Y>`__
|
||||
- `TM4C123GXL LaunchPad Evaluation Kit <https://www.ti.com/tool/EK-TM4C123GXL>`__
|
||||
|
||||
Tomu
|
||||
----
|
||||
|
||||
- `Fomu <https://www.crowdsupply.com/sutajio-kosagi/fomu>`__
|
||||
|
||||
WCH
|
||||
---
|
||||
|
||||
- `CH32V307V-R1-1v0 <https://lcsc.com/product-detail/Development-Boards-Kits_WCH-Jiangsu-Qin-Heng-CH32V307V-EVT-R1_C2943980.html>`__
|
||||
- `CH32F205R-R0-1v0 <https://github.com/openwch/ch32f20x/blob/main/EVT/PUB/CH32F20x%20Evaluation%20Board%20Reference-EN.pdf>`__
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
#set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../hw/bsp/family_support.cmake)
|
||||
|
||||
@ -1,3 +1,7 @@
|
||||
if (RTOS STREQUAL zephyr)
|
||||
return()
|
||||
endif ()
|
||||
|
||||
if (NOT DEFINED CMAKE_C_COMPILER)
|
||||
set(CMAKE_C_COMPILER "arm-none-eabi-gcc")
|
||||
endif ()
|
||||
|
||||
@ -4,6 +4,7 @@ include(CMakePrintHelpers)
|
||||
# Common
|
||||
# ----------------------------------------------------------------------------
|
||||
set(CMAKE_SYSTEM_NAME Generic)
|
||||
set(CMAKE_SYSTEM_PROCESSOR ${CMAKE_SYSTEM_CPU})
|
||||
set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS FALSE)
|
||||
|
||||
# Look for includes and libraries only in the target system prefix.
|
||||
@ -13,8 +14,8 @@ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
|
||||
# pass TOOLCHAIN_CPU to
|
||||
set(CMAKE_TRY_COMPILE_PLATFORM_VARIABLES CMAKE_SYSTEM_PROCESSOR)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/../cpu/${CMAKE_SYSTEM_PROCESSOR}.cmake)
|
||||
set(CMAKE_TRY_COMPILE_PLATFORM_VARIABLES CMAKE_SYSTEM_PROCESSOR CMAKE_SYSTEM_CPU)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/../cpu/${CMAKE_SYSTEM_CPU}.cmake)
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Compile flags
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
@ -15,18 +15,23 @@ if(FAMILY STREQUAL "espressif")
|
||||
return()
|
||||
endif()
|
||||
|
||||
add_executable(${PROJECT})
|
||||
if (RTOS STREQUAL zephyr)
|
||||
set(EXE_NAME app)
|
||||
else()
|
||||
set(EXE_NAME ${PROJECT})
|
||||
add_executable(${EXE_NAME})
|
||||
endif()
|
||||
|
||||
# Example source
|
||||
target_sources(${PROJECT} PUBLIC
|
||||
target_sources(${EXE_NAME} PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/main.c
|
||||
)
|
||||
|
||||
# Example include
|
||||
target_include_directories(${PROJECT} PUBLIC
|
||||
target_include_directories(${EXE_NAME} PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||
)
|
||||
|
||||
# Configure compilation flags and libraries for the example without RTOS.
|
||||
# See the corresponding function in hw/bsp/FAMILY/family.cmake for details.
|
||||
family_configure_device_example(${PROJECT} noos)
|
||||
family_configure_device_example(${EXE_NAME} ${RTOS})
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
#set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
@ -16,20 +16,25 @@ if(FAMILY STREQUAL "espressif")
|
||||
return()
|
||||
endif()
|
||||
|
||||
add_executable(${PROJECT})
|
||||
if (RTOS STREQUAL zephyr)
|
||||
set(EXE_NAME app)
|
||||
else()
|
||||
set(EXE_NAME ${PROJECT})
|
||||
add_executable(${EXE_NAME})
|
||||
endif()
|
||||
|
||||
# Example source
|
||||
target_sources(${PROJECT} PUBLIC
|
||||
target_sources(${EXE_NAME} PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/main.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/msc_disk.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/usb_descriptors.c
|
||||
)
|
||||
|
||||
# Example include
|
||||
target_include_directories(${PROJECT} PUBLIC
|
||||
target_include_directories(${EXE_NAME} PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||
)
|
||||
|
||||
# Configure compilation flags and libraries for the example... see the corresponding function
|
||||
# in hw/bsp/FAMILY/family.cmake for details.
|
||||
family_configure_device_example(${PROJECT} noos)
|
||||
# Configure compilation flags and libraries for the example without RTOS.
|
||||
# See the corresponding function in hw/bsp/FAMILY/family.cmake for details.
|
||||
family_configure_device_example(${EXE_NAME} ${RTOS})
|
||||
|
||||
6
examples/device/cdc_msc/prj.conf
Normal file
6
examples/device/cdc_msc/prj.conf
Normal file
@ -0,0 +1,6 @@
|
||||
CONFIG_GPIO=y
|
||||
CONFIG_FPU=y
|
||||
CONFIG_NO_OPTIMIZATIONS=y
|
||||
CONFIG_UART_INTERRUPT_DRIVEN=y
|
||||
CONFIG_NRFX_POWER=y
|
||||
CONFIG_NRFX_UARTE0=y
|
||||
@ -190,7 +190,14 @@ int32_t tud_msc_read10_cb(uint8_t lun, uint32_t lba, uint32_t offset, void* buff
|
||||
(void) lun;
|
||||
|
||||
// out of ramdisk
|
||||
if ( lba >= DISK_BLOCK_NUM ) return -1;
|
||||
if ( lba >= DISK_BLOCK_NUM ) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Check for overflow of offset + bufsize
|
||||
if ( offset + bufsize > DISK_BLOCK_SIZE ) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
uint8_t const* addr = msc_disk[lba] + offset;
|
||||
memcpy(buffer, addr, bufsize);
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -190,7 +190,14 @@ int32_t tud_msc_read10_cb(uint8_t lun, uint32_t lba, uint32_t offset, void* buff
|
||||
(void) lun;
|
||||
|
||||
// out of ramdisk
|
||||
if ( lba >= DISK_BLOCK_NUM ) return -1;
|
||||
if ( lba >= DISK_BLOCK_NUM ) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Check for overflow of offset + bufsize
|
||||
if ( offset + bufsize > DISK_BLOCK_SIZE ) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
uint8_t const* addr = msc_disk[lba] + offset;
|
||||
memcpy(buffer, addr, bufsize);
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
@ -15,20 +15,25 @@ if(FAMILY STREQUAL "espressif")
|
||||
return()
|
||||
endif()
|
||||
|
||||
add_executable(${PROJECT})
|
||||
if (RTOS STREQUAL zephyr)
|
||||
set(EXE_NAME app)
|
||||
else()
|
||||
set(EXE_NAME ${PROJECT})
|
||||
add_executable(${EXE_NAME})
|
||||
endif()
|
||||
|
||||
# Example source
|
||||
target_sources(${PROJECT} PUBLIC
|
||||
target_sources(${EXE_NAME} PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/main.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/msc_disk_dual.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/usb_descriptors.c
|
||||
)
|
||||
|
||||
# Example include
|
||||
target_include_directories(${PROJECT} PUBLIC
|
||||
target_include_directories(${EXE_NAME} PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||
)
|
||||
|
||||
# Configure compilation flags and libraries for the example without RTOS.
|
||||
# See the corresponding function in hw/bsp/FAMILY/family.cmake for details.
|
||||
family_configure_device_example(${PROJECT} noos)
|
||||
family_configure_device_example(${EXE_NAME} ${RTOS})
|
||||
|
||||
6
examples/device/msc_dual_lun/prj.conf
Normal file
6
examples/device/msc_dual_lun/prj.conf
Normal file
@ -0,0 +1,6 @@
|
||||
CONFIG_GPIO=y
|
||||
CONFIG_FPU=y
|
||||
CONFIG_NO_OPTIMIZATIONS=y
|
||||
CONFIG_UART_INTERRUPT_DRIVEN=y
|
||||
CONFIG_NRFX_POWER=y
|
||||
CONFIG_NRFX_UARTE0=y
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -185,7 +185,7 @@ static void fill_color_bar(uint8_t* buffer, unsigned start_position) {
|
||||
|
||||
#endif
|
||||
|
||||
void video_send_frame(void) {
|
||||
static void video_send_frame(void) {
|
||||
static unsigned start_ms = 0;
|
||||
static unsigned already_sent = 0;
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -62,15 +62,13 @@
|
||||
#include "bsp/board_api.h"
|
||||
#include "tusb.h"
|
||||
|
||||
#include "msc_app.h"
|
||||
|
||||
//--------------------------------------------------------------------+
|
||||
// MACRO CONSTANT TYPEDEF PROTYPES
|
||||
//--------------------------------------------------------------------+
|
||||
void led_blinking_task(void);
|
||||
|
||||
// from msc_app.c
|
||||
extern bool msc_app_init(void);
|
||||
extern void msc_app_task(void);
|
||||
|
||||
/*------------- MAIN -------------*/
|
||||
int main(void) {
|
||||
board_init();
|
||||
|
||||
@ -67,7 +67,9 @@ bool cli_init(void);
|
||||
|
||||
bool msc_app_init(void)
|
||||
{
|
||||
for(size_t i=0; i<CFG_TUH_DEVICE_MAX; i++) _disk_busy[i] = false;
|
||||
for(size_t i=0; i<CFG_TUH_DEVICE_MAX; i++) {
|
||||
_disk_busy[i] = false;
|
||||
}
|
||||
|
||||
// disable stdout buffered for echoing typing command
|
||||
#ifndef __ICCARM__ // TODO IAR doesn't support stream control ?
|
||||
@ -81,7 +83,9 @@ bool msc_app_init(void)
|
||||
|
||||
void msc_app_task(void)
|
||||
{
|
||||
if (!_cli) return;
|
||||
if (!_cli) {
|
||||
return;
|
||||
}
|
||||
|
||||
int ch = board_getchar();
|
||||
if ( ch > 0 )
|
||||
@ -99,8 +103,7 @@ void msc_app_task(void)
|
||||
//
|
||||
//--------------------------------------------------------------------+
|
||||
|
||||
bool inquiry_complete_cb(uint8_t dev_addr, tuh_msc_complete_data_t const * cb_data)
|
||||
{
|
||||
static bool inquiry_complete_cb(uint8_t dev_addr, tuh_msc_complete_data_t const * cb_data) {
|
||||
msc_cbw_t const* cbw = cb_data->cbw;
|
||||
msc_csw_t const* csw = cb_data->csw;
|
||||
|
||||
@ -294,18 +297,11 @@ void cli_cmd_mkdir(EmbeddedCli *cli, char *args, void *context);
|
||||
void cli_cmd_mv(EmbeddedCli *cli, char *args, void *context);
|
||||
void cli_cmd_rm(EmbeddedCli *cli, char *args, void *context);
|
||||
|
||||
void cli_write_char(EmbeddedCli *cli, char c)
|
||||
{
|
||||
static void cli_write_char(EmbeddedCli *cli, char c) {
|
||||
(void) cli;
|
||||
putchar((int) c);
|
||||
}
|
||||
|
||||
void cli_cmd_unknown(EmbeddedCli *cli, CliCommand *command)
|
||||
{
|
||||
(void) cli;
|
||||
printf("%s: command not found\r\n", command->name);
|
||||
}
|
||||
|
||||
bool cli_init(void)
|
||||
{
|
||||
EmbeddedCliConfig *config = embeddedCliDefaultConfig();
|
||||
|
||||
35
examples/host/msc_file_explorer/src/msc_app.h
Normal file
35
examples/host/msc_file_explorer/src/msc_app.h
Normal file
@ -0,0 +1,35 @@
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2025 Ha Thach (tinyusb.org)
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*
|
||||
* This file is part of the TinyUSB stack.
|
||||
*/
|
||||
#ifndef MSC_APP_H
|
||||
#define MSC_APP_H
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
bool msc_app_init(void);
|
||||
void msc_app_task(void);
|
||||
|
||||
|
||||
#endif
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.17)
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
|
||||
|
||||
|
||||
12
examples/west.yml
Normal file
12
examples/west.yml
Normal file
@ -0,0 +1,12 @@
|
||||
manifest:
|
||||
remotes:
|
||||
- name: zephyrproject-rtos
|
||||
url-base: https://github.com/zephyrproject-rtos
|
||||
projects:
|
||||
- name: zephyr
|
||||
remote: zephyrproject-rtos
|
||||
revision: main
|
||||
path: zephyr
|
||||
import: true
|
||||
self:
|
||||
path: .
|
||||
@ -38,22 +38,24 @@ extern "C" {
|
||||
|
||||
#include "tusb.h"
|
||||
|
||||
#if CFG_TUSB_OS == OPT_OS_FREERTOS
|
||||
#if TUSB_MCU_VENDOR_ESPRESSIF
|
||||
// ESP-IDF need "freertos/" prefix in include path.
|
||||
// CFG_TUSB_OS_INC_PATH should be defined accordingly.
|
||||
#include "freertos/FreeRTOS.h"
|
||||
#include "freertos/semphr.h"
|
||||
#include "freertos/queue.h"
|
||||
#include "freertos/task.h"
|
||||
#include "freertos/timers.h"
|
||||
#else
|
||||
#include "FreeRTOS.h"
|
||||
#include "semphr.h"
|
||||
#include "queue.h"
|
||||
#include "task.h"
|
||||
#include "timers.h"
|
||||
#endif
|
||||
#if CFG_TUSB_OS == OPT_OS_ZEPHYR
|
||||
#include <zephyr/kernel.h>
|
||||
#elif CFG_TUSB_OS == OPT_OS_FREERTOS
|
||||
#if TUSB_MCU_VENDOR_ESPRESSIF
|
||||
// ESP-IDF need "freertos/" prefix in include path.
|
||||
// CFG_TUSB_OS_INC_PATH should be defined accordingly.
|
||||
#include "freertos/FreeRTOS.h"
|
||||
#include "freertos/semphr.h"
|
||||
#include "freertos/queue.h"
|
||||
#include "freertos/task.h"
|
||||
#include "freertos/timers.h"
|
||||
#else
|
||||
#include "FreeRTOS.h"
|
||||
#include "semphr.h"
|
||||
#include "queue.h"
|
||||
#include "task.h"
|
||||
#include "timers.h"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Define the default baudrate
|
||||
@ -124,6 +126,10 @@ static inline uint32_t board_millis(void) {
|
||||
// Implement your own board_millis() in any of .c file
|
||||
uint32_t board_millis(void);
|
||||
|
||||
#elif CFG_TUSB_OS == OPT_OS_ZEPHYR
|
||||
static inline uint32_t board_millis(void) {
|
||||
return k_uptime_get_32();
|
||||
}
|
||||
#else
|
||||
#error "board_millis() is not implemented for this OS"
|
||||
#endif
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
set(CMAKE_SYSTEM_PROCESSOR arm1176jzf-s CACHE INTERNAL "System Processor")
|
||||
set(CMAKE_SYSTEM_CPU arm1176jzf-s CACHE INTERNAL "System Processor")
|
||||
#set(SUFFIX "")
|
||||
|
||||
function(update_board TARGET)
|
||||
|
||||
@ -24,6 +24,11 @@
|
||||
* This file is part of the TinyUSB stack.
|
||||
*/
|
||||
|
||||
/* metadata:
|
||||
name: Raspberry Pi Zero
|
||||
url: https://www.raspberrypi.org/products/raspberry-pi-zero/
|
||||
*/
|
||||
|
||||
#ifndef BOARD_H_
|
||||
#define BOARD_H_
|
||||
|
||||
|
||||
@ -24,6 +24,10 @@
|
||||
* This file is part of the TinyUSB stack.
|
||||
*/
|
||||
|
||||
/* metadata:
|
||||
manufacturer: Raspberry Pi
|
||||
*/
|
||||
|
||||
#include "bsp/board_api.h"
|
||||
#include "board.h"
|
||||
|
||||
|
||||
@ -94,16 +94,15 @@ function(family_configure_example TARGET RTOS)
|
||||
)
|
||||
|
||||
# Add TinyUSB target and port source
|
||||
family_add_tinyusb(${TARGET} OPT_MCU_BCM2835 ${RTOS})
|
||||
target_sources(${TARGET}-tinyusb PUBLIC
|
||||
family_add_tinyusb(${TARGET} OPT_MCU_BCM2835)
|
||||
target_sources(${TARGET} PUBLIC
|
||||
${TOP}/src/portable/synopsys/dwc2/dcd_dwc2.c
|
||||
${TOP}/src/portable/synopsys/dwc2/hcd_dwc2.c
|
||||
${TOP}/src/portable/synopsys/dwc2/dwc2_common.c
|
||||
)
|
||||
target_link_libraries(${TARGET}-tinyusb PUBLIC board_${BOARD})
|
||||
target_link_libraries(${TARGET} PUBLIC board_${BOARD})
|
||||
|
||||
|
||||
# Link dependencies
|
||||
target_link_libraries(${TARGET} PUBLIC board_${BOARD} ${TARGET}-tinyusb)
|
||||
|
||||
# Flashing
|
||||
family_add_bin_hex(${TARGET})
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
set(CMAKE_SYSTEM_PROCESSOR cortex-a72 CACHE INTERNAL "System Processor")
|
||||
set(CMAKE_SYSTEM_CPU cortex-a72 CACHE INTERNAL "System Processor")
|
||||
set(BCM_VERSION 2711)
|
||||
|
||||
function(update_board TARGET)
|
||||
|
||||
@ -24,6 +24,11 @@
|
||||
* This file is part of the TinyUSB stack.
|
||||
*/
|
||||
|
||||
/* metadata:
|
||||
name: Raspberry CM4
|
||||
url: https://www.raspberrypi.org/products/compute-module-4
|
||||
*/
|
||||
|
||||
#ifndef BOARD_H_
|
||||
#define BOARD_H_
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
set(CMAKE_SYSTEM_PROCESSOR cortex-a53 CACHE INTERNAL "System Processor")
|
||||
set(CMAKE_SYSTEM_CPU cortex-a53 CACHE INTERNAL "System Processor")
|
||||
set(BCM_VERSION 2837)
|
||||
|
||||
function(update_board TARGET)
|
||||
|
||||
@ -24,6 +24,11 @@
|
||||
* This file is part of the TinyUSB stack.
|
||||
*/
|
||||
|
||||
/* metadata:
|
||||
name: Raspberry Zero2
|
||||
url: https://www.raspberrypi.org/products/raspberry-pi-zero-2-w
|
||||
*/
|
||||
|
||||
#ifndef BOARD_H_
|
||||
#define BOARD_H_
|
||||
|
||||
|
||||
@ -24,6 +24,10 @@
|
||||
* This file is part of the TinyUSB stack.
|
||||
*/
|
||||
|
||||
/* metadata:
|
||||
manufacturer: Raspberry Pi
|
||||
*/
|
||||
|
||||
#include "bsp/board_api.h"
|
||||
#include "board.h"
|
||||
|
||||
|
||||
@ -101,16 +101,15 @@ function(family_configure_example TARGET RTOS)
|
||||
)
|
||||
|
||||
# Add TinyUSB target and port source
|
||||
family_add_tinyusb(${TARGET} OPT_MCU_BCM${BCM_VERSION} ${RTOS})
|
||||
target_sources(${TARGET}-tinyusb PUBLIC
|
||||
family_add_tinyusb(${TARGET} OPT_MCU_BCM${BCM_VERSION})
|
||||
target_sources(${TARGET} PUBLIC
|
||||
${TOP}/src/portable/synopsys/dwc2/dcd_dwc2.c
|
||||
${TOP}/src/portable/synopsys/dwc2/hcd_dwc2.c
|
||||
${TOP}/src/portable/synopsys/dwc2/dwc2_common.c
|
||||
)
|
||||
target_link_libraries(${TARGET}-tinyusb PUBLIC board_${BOARD})
|
||||
target_link_libraries(${TARGET} PUBLIC board_${BOARD})
|
||||
|
||||
|
||||
# Link dependencies
|
||||
target_link_libraries(${TARGET} PUBLIC board_${BOARD} ${TARGET}-tinyusb)
|
||||
|
||||
# Flashing
|
||||
family_add_bin_hex(${TARGET})
|
||||
|
||||
@ -24,6 +24,11 @@
|
||||
* This file is part of the TinyUSB stack.
|
||||
*/
|
||||
|
||||
/* metadata:
|
||||
name: MM900EVxB
|
||||
url: https://brtchip.com/product/mm900ev1b
|
||||
*/
|
||||
|
||||
#ifndef BOARD_H_
|
||||
#define BOARD_H_
|
||||
|
||||
|
||||
@ -24,6 +24,10 @@
|
||||
* This file is part of the TinyUSB stack.
|
||||
*/
|
||||
|
||||
/* metadata:
|
||||
manufacturer: Bridgetek
|
||||
*/
|
||||
|
||||
#include "bsp/board_api.h"
|
||||
#include "board.h"
|
||||
|
||||
|
||||
@ -22,6 +22,11 @@
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/* metadata:
|
||||
name: CH32F205r-r0
|
||||
url: https://github.com/openwch/ch32f20x
|
||||
*/
|
||||
|
||||
#ifndef BOARD_H_
|
||||
#define BOARD_H_
|
||||
|
||||
|
||||
@ -24,6 +24,10 @@
|
||||
* This file is part of the TinyUSB stack.
|
||||
*/
|
||||
|
||||
/* metadata:
|
||||
manufacturer: WCH
|
||||
*/
|
||||
|
||||
#include "stdio.h"
|
||||
#include "debug_uart.h"
|
||||
|
||||
|
||||
@ -1,3 +1,8 @@
|
||||
/* metadata:
|
||||
name: CH32V103R-R1-1v1
|
||||
url: https://github.com/openwch/ch32v103/tree/main/SCHPCB/CH32V103R-R1-1v1
|
||||
*/
|
||||
|
||||
#ifndef BOARD_H_
|
||||
#define BOARD_H_
|
||||
|
||||
|
||||
@ -1,3 +1,7 @@
|
||||
/* metadata:
|
||||
manufacturer: WCH
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
// https://github.com/openwch/ch32v307/pull/90
|
||||
|
||||
@ -9,7 +9,7 @@ set(SDK_SRC_DIR ${SDK_DIR}/EVT/EXAM/SRC)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/boards/${BOARD}/board.cmake)
|
||||
|
||||
# toolchain set up
|
||||
set(CMAKE_SYSTEM_PROCESSOR rv32imac-ilp32 CACHE INTERNAL "System Processor")
|
||||
set(CMAKE_SYSTEM_CPU rv32imac-ilp32 CACHE INTERNAL "System Processor")
|
||||
set(CMAKE_TOOLCHAIN_FILE ${TOP}/examples/build_system/cmake/toolchain/riscv_${TOOLCHAIN}.cmake)
|
||||
|
||||
set(FAMILY_MCUS CH32V103 CACHE INTERNAL "")
|
||||
@ -98,15 +98,14 @@ function(family_configure_example TARGET RTOS)
|
||||
)
|
||||
|
||||
# Add TinyUSB target and port source
|
||||
family_add_tinyusb(${TARGET} OPT_MCU_CH32V103 ${RTOS})
|
||||
family_add_tinyusb(${TARGET} OPT_MCU_CH32V103)
|
||||
|
||||
target_sources(${TARGET}-tinyusb PUBLIC
|
||||
target_sources(${TARGET} PUBLIC
|
||||
${TOP}/src/portable/wch/dcd_ch32_usbfs.c
|
||||
)
|
||||
target_link_libraries(${TARGET}-tinyusb PUBLIC board_${BOARD})
|
||||
target_link_libraries(${TARGET} PUBLIC board_${BOARD})
|
||||
|
||||
|
||||
# Link dependencies
|
||||
target_link_libraries(${TARGET} PUBLIC board_${BOARD} ${TARGET}-tinyusb)
|
||||
|
||||
# Flashing
|
||||
family_add_bin_hex(${TARGET})
|
||||
|
||||
@ -1,3 +1,8 @@
|
||||
/* metadata:
|
||||
name: CH32V203C-R0-1v0
|
||||
url: https://github.com/openwch/ch32v20x/tree/main/SCHPCB/CH32V203C-R0
|
||||
*/
|
||||
|
||||
#ifndef BOARD_H_
|
||||
#define BOARD_H_
|
||||
|
||||
|
||||
@ -1,3 +1,8 @@
|
||||
/* metadata:
|
||||
name: CH32V203G-R0-1v0
|
||||
url: https://github.com/openwch/ch32v20x/tree/main/SCHPCB/CH32V203C-R0
|
||||
*/
|
||||
|
||||
#ifndef BOARD_H_
|
||||
#define BOARD_H_
|
||||
|
||||
|
||||
@ -1,3 +1,8 @@
|
||||
/* metadata:
|
||||
name: nanoCH32V203
|
||||
url: https://github.com/wuxx/nanoCH32V203
|
||||
*/
|
||||
|
||||
#ifndef BOARD_H_
|
||||
#define BOARD_H_
|
||||
|
||||
|
||||
@ -1,3 +1,7 @@
|
||||
/* metadata:
|
||||
manufacturer: WCH
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
// https://github.com/openwch/ch32v307/pull/90
|
||||
|
||||
@ -9,7 +9,7 @@ set(SDK_SRC_DIR ${SDK_DIR}/EVT/EXAM/SRC)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/boards/${BOARD}/board.cmake)
|
||||
|
||||
# toolchain set up
|
||||
set(CMAKE_SYSTEM_PROCESSOR rv32imac-ilp32 CACHE INTERNAL "System Processor")
|
||||
set(CMAKE_SYSTEM_CPU rv32imac-ilp32 CACHE INTERNAL "System Processor")
|
||||
set(CMAKE_TOOLCHAIN_FILE ${TOP}/examples/build_system/cmake/toolchain/riscv_${TOOLCHAIN}.cmake)
|
||||
|
||||
set(FAMILY_MCUS CH32V20X CACHE INTERNAL "")
|
||||
@ -123,16 +123,15 @@ function(family_configure_example TARGET RTOS)
|
||||
)
|
||||
|
||||
# Add TinyUSB target and port source
|
||||
family_add_tinyusb(${TARGET} OPT_MCU_CH32V20X ${RTOS})
|
||||
family_add_tinyusb(${TARGET} OPT_MCU_CH32V20X)
|
||||
|
||||
target_sources(${TARGET}-tinyusb PUBLIC
|
||||
target_sources(${TARGET} PUBLIC
|
||||
${TOP}/src/portable/wch/dcd_ch32_usbfs.c
|
||||
${TOP}/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c
|
||||
)
|
||||
target_link_libraries(${TARGET}-tinyusb PUBLIC board_${BOARD})
|
||||
target_link_libraries(${TARGET} PUBLIC board_${BOARD})
|
||||
|
||||
|
||||
# Link dependencies
|
||||
target_link_libraries(${TARGET} PUBLIC board_${BOARD} ${TARGET}-tinyusb)
|
||||
|
||||
# Flashing
|
||||
family_add_bin_hex(${TARGET})
|
||||
|
||||
@ -22,6 +22,11 @@
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/* metadata:
|
||||
name: CH32V307V-R1-1v0
|
||||
url: https://github.com/openwch/ch32v307/tree/main/SCHPCB/CH32V307V-R1-1v0
|
||||
*/
|
||||
|
||||
#ifndef BOARD_H_
|
||||
#define BOARD_H_
|
||||
|
||||
|
||||
@ -24,6 +24,10 @@
|
||||
* This file is part of the TinyUSB stack.
|
||||
*/
|
||||
|
||||
/* metadata:
|
||||
manufacturer: WCH
|
||||
*/
|
||||
|
||||
#include "stdio.h"
|
||||
|
||||
// https://github.com/openwch/ch32v307/pull/90
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user