[En-Nut-Discussion] USB Host Stack
ethernut at duaneellis.com
Sat Jun 25 03:04:54 CEST 2011
> I am working on the USB stack now.
If you do this, make certain you *READ* a number of other USB host stack
APIs, many of these are "cross platform".
You need to have a good separation between the USBH - generic level, and
the transport (EHCI, OHCI, or CUSTOM SOLUTION) level.
My point #1 is this:
NUT runs on a number of platforms.
Read the multi-platform APIs - they are helpful to learn how to
make a good layer separation.
Many of these are are well thought out, well separated, and well
abstracted, and most importantly - well documented.
I'm not saying the NetBSD stack is not well layered, reasoned, etc. It
sort of lack a standalone manual that is USB host API specific.
Often the commercial PDFs have block diagrams that help explain
some of the stuff going on.
My Point #2 is this:
for USB 2.0 (HS) many chips license a one or two USB host controllers,
all from the same company. Thus, have an IDENTICAL hardware API, and
IDENTICAL internal data structures (ie: queue head, linked lists, etc).
having more then one developer manual, or the ablity to look at
reference code for a EHCI, or OHCI on another chip - is a very helpful
There's plenty of things to read as reference material
More information about the En-Nut-Discussion