esp32-s2_dfu/readme.markdown

75 lines
2.2 KiB
Markdown
Raw Normal View History

2014-03-25 18:00:53 +01:00
# tinyusb
2012-11-26 07:24:01 +01:00
2014-03-25 18:00:53 +01:00
## What Is tinyusb
2013-05-07 08:36:34 +02:00
2013-05-08 07:23:25 +02:00
tinyusb is an open-source (BSD-licensed) USB Host/Device/OTG stack for embedded micro-controller. It is developed using [Test-Driven Development (TDD)](tests/readme.md) approach to eliminate bugs as soon as possible.
2013-05-07 08:36:34 +02:00
2013-05-08 07:23:25 +02:00
![tinyusb diagram](/docs/images/what_is_tinyusb.png)
2013-05-07 08:36:34 +02:00
2014-03-25 18:00:53 +01:00
## Features
2013-05-07 08:36:34 +02:00
designed to run out-of-the-box and easy to configure.
2013-05-07 08:36:34 +02:00
2014-03-25 18:00:53 +01:00
### Host
2013-05-07 08:36:34 +02:00
- HID Mouse
2014-03-25 10:42:34 +01:00
- HID Keyboard
- HID Generic (comming soon)
- Communication Device Class (CDC)
- Mass Storage Class (MSC)
2013-10-01 08:23:31 +02:00
- Hub
- Only support 1 level of hub (due to my laziness)
2013-05-07 08:36:34 +02:00
2014-03-25 18:00:53 +01:00
### Device
2013-05-07 08:36:34 +02:00
- HID Mouse
2014-03-25 10:42:34 +01:00
- HID Keyboard
- HID Generic (comming soon)
- Communication Class (CDC)
- Mass Storage Class (MSC)
2013-05-07 08:36:34 +02:00
2014-03-25 18:00:53 +01:00
### RTOS
2013-05-07 08:36:34 +02:00
2014-03-25 10:42:34 +01:00
tinyusb is designed to be OS-ware and run across RTOS vendors, thanks to its OS Abstraction Layer (OSAL). However, it can also run without an RTOS (OSAL will be expanded to be a state machine in this case). Currently the following OS can be run with tinyusb (out of the box).
2013-05-07 08:36:34 +02:00
2013-05-08 07:23:25 +02:00
- **None OS**
- **FreeRTOS**
2013-09-13 17:30:11 +02:00
- **CMSIS RTX**
2013-05-07 08:36:34 +02:00
2014-03-25 18:00:53 +01:00
## Getting Started
2013-05-07 08:36:34 +02:00
coming soon ...
2014-03-25 18:00:53 +01:00
## Supported Platforms
2013-05-07 08:36:34 +02:00
2014-03-25 18:00:53 +01:00
The stack supports the following MCUs
### NXP
2014-03-25 18:00:53 +01:00
- LPC11uxx
2014-03-25 10:42:34 +01:00
- LPC13uxx (12 bit ADC)
- LPC175x_6x
2014-03-25 18:00:53 +01:00
- LPC43xx
2014-03-26 09:34:16 +01:00
[Here is the list of supported Boards](boards/) in the code base
2013-05-07 08:36:34 +02:00
2014-03-25 18:00:53 +01:00
### Toolchains
2013-05-07 08:36:34 +02:00
You can compile with any of following toolchains
2013-09-13 17:30:11 +02:00
2013-09-19 13:17:13 +02:00
- *lpcxpresso/redsuite*
- *Keil MDK*
- *IAR Workbench*
2013-05-07 08:36:34 +02:00
2014-03-25 18:00:53 +01:00
## Known Issues
- LPC11uxx & LPC13uxx cannot able to STALL Control OUT endpoint !!! --> unsupported with data out request may cause host stuck with control transfer forever. (reproduce: enable keyboard + mouse, return error in set report of hid_device)
2014-03-25 18:00:53 +01:00
## How Can I Help
2013-05-07 08:36:34 +02:00
2013-05-08 05:32:31 +02:00
If you find my little USB stack is useful, please take some time to file any issues that you encountered. It is not necessary to be a software bug, it can be a question, request, suggestion etc. We can consider each github's issue as a forum's topic. Alternatively, you can buy me a cup of coffee if you happen to be in Hochiminh city.
2013-05-07 08:36:34 +02:00
2014-03-25 18:00:53 +01:00
## License
2013-05-07 08:36:34 +02:00
2014-03-25 17:11:46 +01:00
BSD license for most of the code base, but each file is individually licensed especially those in /vendor folder. Please make sure you understand all the license term for files you use in your project. [Full license here](tinyusb/license.md)