diff --git a/README.md b/README.md index 0fbfaec3..a811e3b4 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,17 @@ TinyUSB is an open-source cross-platform USB Host/Device stack for embedded syst └── tools # Files used internally ``` +## Supported MCUs + +The stack supports the following MCUs + +- **Nordic:** nRF52840 +- **NXP:** LPC11Uxx, LPC13xx, LPC175x_6x, LPC177x_8x, LPC18xx, LPC40xx, LPC43xx, LPC51Uxx +- **MicroChip:** SAMD21, SAMD51 (device only) +- **ST:** STM32 series: L0, F0, F2, F3, F4, F7, H7 (device only) + +[Here is the list of supported Boards](docs/boards.md) that can be used with provided examples. + ## Device Stack Support multiple device configurations by dynamically changing usb descriptors. Low power functions such as suspend, resume and remote wakeup. Following device classes are supported: @@ -42,23 +53,12 @@ Support multiple device configurations by dynamically changing usb descriptors. ## OS Abtraction layer -Currently the following OS are supported with tinyusb out of the box with a simple change of **CFG_TUSB_OS** macro. +TinyUSB is completely thread-safe by pushing all ISR events into a central queue, then process it later in the non-ISR context. It also uses semphore/mutex to access shared resource such as CDC fifo. Therefore the stack needs to use some of OS's basic APIs. Following OSes are already supported out of the box. -- **No OS** +- **No OS** : Disabling USB IRQ is used as way to provide mutex - **FreeRTOS** - **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) -## Supported MCUs - -The stack supports the following MCUs - -- **Nordic:** nRF52840 -- **NXP:** LPC11Uxx, LPC13xx, LPC175x_6x, LPC177x_8x, LPC18xx, LPC40xx, LPC43xx, LPC51Uxx -- **MicroChip:** SAMD21, SAMD51 (device only) -- **ST:** STM32F0, STM32F2, STM32F3, STM32F4, STM32F7, STM32H7 (device only) - -[Here is the list of supported Boards](docs/boards.md) - ## Compiler & IDE The stack is developed with GCC compiler, and should be compilable with others. Folder `examples` provide Makefile and Segger Embedded Studio build support. [Here is instruction to build example](examples/readme.md). diff --git a/docs/boards.md b/docs/boards.md index fef682f4..b6b48a7f 100644 --- a/docs/boards.md +++ b/docs/boards.md @@ -43,6 +43,7 @@ This code base already had supported for a handful of following boards - Adafruit Feather STM32F405 - [Micro Python PyBoard v1.1](https://store.micropython.org/product/PYBv1.1) +- [STM32 L035c8 Discovery](https://www.st.com/en/evaluation-tools/32l0538discovery.html) - [STM32 F070rb Nucleo](https://www.st.com/en/evaluation-tools/nucleo-f070rb.html) - [STM32 F072rb Discovery](https://www.st.com/en/evaluation-tools/32f072bdiscovery.html) - [STM32 F207zg Nucleo](https://www.st.com/en/evaluation-tools/nucleo-f207zg.html) diff --git a/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c b/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c index d83098fd..9bd4d236 100644 --- a/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c +++ b/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c @@ -30,10 +30,7 @@ /********************************************** * This driver has been tested with the following MCUs: - * - * - * STM32F070RB - * + * - F070, F072, L053 * * It also should work with minimal changes for any ST MCU with an "USB A"/"PCD"/"HCD" peripheral. This * covers: