diff options
| author | hathach <[email protected]> | 2018-12-12 16:41:12 +0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2018-12-12 16:41:12 +0700 |
| commit | 908931320e206e6ae6610cfc56b2a0950f252172 (patch) | |
| tree | 8ae966733204841d54cf15f3e1154699cc884526 /README.md | |
| parent | b7ad49332cd9a5539e35a75785adb5ca2e79715a (diff) | |
| parent | 142f274c1d0cef2a1a5623885be29e2fecef4445 (diff) | |
Merge pull request #21 from hathach/devlocal
Devlocal
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 101 |
1 files changed, 39 insertions, 62 deletions
@@ -1,95 +1,72 @@ -# tinyusb # +# tinyusb -<!-- START doctoc generated TOC please keep comment here to allow auto update --> -<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --> -**Table of Contents** +tinyusb is an cross-platform open-source USB Host/Device stack for embedded system. -- [Features](#features) - - [Host](#host) - - [Device](#device) - - [RTOS](#rtos) - - [Supported MCUs](#supported-mcus) - - [Toolchains](#toolchains) -- [Getting Started](#getting-started) -- [Uses](#uses) -- [Porting](#porting) -- [License](#license) + -<!-- END doctoc generated TOC please keep comment here to allow auto update --> +Folder | Description +----- | ------------- +docs | Documentation +examples| Sample applications are kept with Makefile and Segger Embedded build support +hw/bsp | Source files of supported boards +hw/mcu | Low level mcu core & peripheral drivers (e.g CMSIS ) +lib | Source files from 3rd party such as freeRTOS, fatfs etc ... +src | All sources files for tinyusb stack itself. +tests | Unit tests for the stack +tools | Files used internally -tinyusb is an open-source (BSD-licensed) USB Host/Device/OTG stack for embedded micro-controllers, especially ARM MCUs. It is designed to be user-friendly in term of configuration and out-of-the-box running experience. +## Device Stack -In addition to running without an RTOS, tinyusb can run across multiple RTOS vendors. More documents and API reference can be found at http://docs.tinyusb.org - - - -## Features ## - -### Device ### - -- HID Mouse -- HID Keyboard -- HID Generic +- Human Interface Device (HID): Keyboard, Mouse, Generic - Communication Class (CDC) - Mass Storage Class (MSC) -### Host ### +## Host Stack -** Most active development is on the Device stack. The Host stack is largely untested.** +** Most active development is on the Device stack. The Host stack is under rework and largely untested.** -- HID Mouse -- HID Keyboard -- HID Generic (coming soon) -- Communication Device Class (CDC) +- Human Interface Device (HID): Keyboard, Mouse, Generic - Mass Storage Class (MSC) - Hub currently only support 1 level of hub (due to my laziness) -### RTOS ### +## OS Abtraction layer -Currently the following OS are supported with tinyusb out of the box with a simple change of CFG_TUSB_OS macro. +Currently the following OS are supported with tinyusb out of the box with a simple change of **CFG_TUSB_OS** macro. -- **None OS** +- **No OS** - **FreeRTOS** -- **MyNewt** - -### Toolchains ### +- **MyNewt** (work in progress) -You can compile with any of following toolchains, however, the stack requires C99 to build with +## Supported MCUs -- GCC -- lpcxpresso -- Keil MDK -- IAR Workbench +The stack supports the following MCUs -### Supported MCUs ### + - **NXP:** LPC11Uxx, LPC13xx, LPC175x_6x, LPC177x_8x, LPC40xx, LPC43xx + - **MicroChip:** SAMD21, SAMD51 (device only) + - **Nordic:** nRF52840 -The stack supports the following MCUs +[Here is the list of supported Boards](hw/bsp/readme.md) - - LPC11uxx - - LPC13uxx (12 bit ADC) - - LPC175x_6x - - LPC43xx - - MicroChip SAMD21 - - MicroChip SAMD51 - - Nordic nRF52840 +## Compiler & IDE -[Here is the list of supported Boards](boards/readme.md) in the code base +The stack is developed with GCC compiler, and should be compilable with others. However, it requires C99 to build with. Folder `examples` provide Makefile and Segger Embedded Studio build support. -## Getting Started ## +## Getting Started -[Here is the details for getting started](doxygen/getting_started.md) with the stack. +[Here is the details for getting started](docs/getting_started.md) with the stack. -## Uses ## +## Uses TinyUSB is currently used by these other projects: -* [nRF52840 UF2 Bootloader](https://github.com/adafruit/Adafruit_nRF52_Bootloader) +* [Adafruit nRF52 Arduino](https://github.com/adafruit/Adafruit_nRF52_Arduino) * [CircuitPython](https://github.com/adafruit/circuitpython) +* [nRF52840 UF2 Bootloader](https://github.com/adafruit/Adafruit_nRF52_Bootloader) -## Porting ## +## Porting -Want to help add TinyUSB support for a new MCU? Read [here](doxygen/porting.md) for an explanation on the low-level API needed by TinyUSB. +Want to help add TinyUSB support for a new MCU? Read [here](docs/porting.md) for an explanation on the low-level API needed by TinyUSB. -## License ## +## License -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 is here](tinyusb/license.md) +BSD license for all tinyusb sources [Full license is here](tinyusb/license.md) and most of the code base. However each file/folder is 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. |
