|
|
13 lat temu | |
|---|---|---|
| demos | 13 lat temu | |
| docs | 13 lat temu | |
| tests | 13 lat temu | |
| tinyusb | 13 lat temu | |
| vendor | 13 lat temu | |
| .cproject | 13 lat temu | |
| .project | 13 lat temu | |
| doxygen.Doxyfile | 13 lat temu | |
| readme.md | 13 lat temu |
tinyusb is an open-source (BSD-licensed) USB Host/Device/OTG stack for embedded micro-controller. It is developed using Test-Driven Development (TDD) approach to eliminate bugs as soon as possible.
designed to be simple and run out-of-the-box provided the configuration is correct.
coming soon ...
tinyusb is designed to be OS-ware and run across OS vendors, thanks to its OS Abstraction Layer (OSAL). However, it can also run without an OS (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).
Although tinyusb is still in early stage of developing, but most of the code can run out of the box with supported boards.
coming soon ...
currently only lpcxpresso/redsuite is supported. However Keil & IAR are always on top of the list.
this code base can run out of the box with the following boards
C is a dangerous language by itself, plus tinyusb make use of goodies features of C99, which saves a tons of code lines (also means save a tons of bugs). However, those features can be misused and pave the way for bugs sneaking into. Therefore, to minimize bugs, the author try to comply with published Coding Standards like:
Where is possible, standards are followed but it is almost impossible to follow all of these without making some exceptions. I am pretty sure this code base violates more than what are described below, if you can find any, please report it to me or file an issue on github.
MISRA-C is well respected & a bar for industrial coding standard.
is a small & easy to remember but yet powerful coding guideline. Most (if not all) of the rules here are included in JPL. Because it is very small, all the rules will be listed here, those with bold is compliant, italic is violated.
Limit the use of the preprocessor to file inclusion and simple macros Although I prefer inline function, however C macros are far powerful than that. I simply cannot hold myself to use, for example X-Macro technique to simplify code.coming soon ...
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.
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.