mirror of
https://github.com/hathach/tinyusb.git
synced 2025-02-14 09:39:50 +00:00
update docs
This commit is contained in:
parent
9a61e49531
commit
d39dbcb8ac
22
README.md
22
README.md
@ -2,9 +2,12 @@
|
||||
|
||||
## What Is tinyusb ##
|
||||
|
||||
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. TDD indeed works with C & embedded with the help of Ceedling, Unity & CMock as a testing framework.
|
||||
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. TDD indeed works with C & embedded with the help of Ceedling, Unity & CMock as a testing framework.
|
||||
|
||||
More detail on TDD can be found at [James W. Grenning's book "Test Driven Development for Embedded C"](http://www.amazon.com/Driven-Development-Embedded-Pragmatic-Programmers/dp/193435662X) and [throwtheswitch's Ceedling, CMock & Unity](http://throwtheswitch.org/)
|
||||
More detail on TDD can be found at
|
||||
|
||||
- [James W. Grenning's book "Test Driven Development for Embedded C"](http://www.amazon.com/Driven-Development-Embedded-Pragmatic-Programmers/dp/193435662X)
|
||||
- [throwtheswitch's Ceedling, CMock & Unity](http://throwtheswitch.org/)
|
||||
|
||||
## Features ##
|
||||
|
||||
@ -19,8 +22,9 @@ tinyusb is designed to be OS-ware and run across OS vendors, thanks to its OS Ab
|
||||
|
||||
- HID Mouse
|
||||
- HID Keyboard
|
||||
- MSC coming soon...
|
||||
- Mass-Storage (MSC) coming soon...
|
||||
- Hub coming soon...
|
||||
- Multiple host controllers
|
||||
|
||||
### Device ###
|
||||
|
||||
@ -28,7 +32,7 @@ coming soon ...
|
||||
|
||||
## Coding Standards ##
|
||||
|
||||
tinyusb make use of goodie features of C99, which saves a tons of code lines (also means save a tons of bugs). However, those features can be misused (plus C is a dangerous language by itself) and pave the way for bugs sneaking into. Therefore, to minimize bugs, the author try to comply with published Coding Standards like:
|
||||
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 (plus C is a dangerous language by itself) and pave the way for bugs sneaking into. Therefore, to minimize bugs, the author try to comply with published Coding Standards like:
|
||||
|
||||
- [MISRA-C](http://www.misra-c.com/Activities/MISRAC/tabid/160/Default.aspx)
|
||||
- [Power of 10](http://spinroot.com/p10/)
|
||||
@ -42,7 +46,7 @@ MISRA-C is well respected & a bar for industrial coding standard. Where is possi
|
||||
- **Rule 8.5: No definitions of objects or function in a header file** function definitions in header files are used to allow 'inlining'
|
||||
- **Rule 14.7: A function shall have a single point of exit at the end of the function** Unfortunately, following this rule will have a lot of nesting if-else, I prefer to exit as soon as possible with assert style and flatten if-else.
|
||||
- **Rule 18.4: Unions shall not be used** sorry MISRA, union is required to effectively mapped to MCU's registers
|
||||
- expect to have more & more exceptions
|
||||
- expect to have more & more exceptions.
|
||||
|
||||
### Power of 10 Exceptions ###
|
||||
|
||||
@ -50,7 +54,7 @@ MISRA-C is well respected & a bar for industrial coding standard. Where is possi
|
||||
|
||||
## Is It Ready ##
|
||||
|
||||
Although tinyusb is still under developing, but most of the code can run out of the box with supported boards
|
||||
Although tinyusb is still in early stage of developing, but most of the code can run out of the box with supported boards.
|
||||
|
||||
## Getting Started ##
|
||||
|
||||
@ -66,7 +70,7 @@ currently only lpcxpresso/redsuite is supported. However Keil & IAR are always o
|
||||
|
||||
## Supported Boards ##
|
||||
|
||||
this codebase can run out of the box with the following boards
|
||||
this code base can run out of the box with the following boards
|
||||
|
||||
### NXP LPC18xx/LPC43xx ###
|
||||
|
||||
@ -75,8 +79,8 @@ this codebase can run out of the box with the following boards
|
||||
|
||||
## How Can I Help ##
|
||||
|
||||
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. Alternately you can buy me a cup of coffee if you happens to be in Hochiminh city.
|
||||
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.
|
||||
|
||||
## License ##
|
||||
|
||||
BSD license for most of the codebase, 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.
|
||||
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.
|
||||
|
1
tests/readme.md
Normal file
1
tests/readme.md
Normal file
@ -0,0 +1 @@
|
||||
# Test-Driven Development (TDD) #
|
Loading…
x
Reference in New Issue
Block a user