update docs

This commit is contained in:
hathach 2013-05-08 10:32:31 +07:00
parent 9a61e49531
commit d39dbcb8ac
2 changed files with 14 additions and 9 deletions

View File

@ -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
View File

@ -0,0 +1 @@
# Test-Driven Development (TDD) #