[求教]usb驱动问题

看了帮助文档中的DDK中的usb相关内容,对于其中的几个模块(如io-usb、io-hid、devi-hid)的关系始终没有搞不太清楚。
比如说,我要在支持USB打印机,如
io-usb -dohci //启动USB协议栈
waitfor /dev/io-usb/io-usb //
devu-prn //启动打印机驱动程序

我想问与USB主控制器硬件相关的程序模块是哪个???因为驱动程序devu-prn,好像只是负责处理的/dev/usbprt上消息的处理,以及和USB协议栈交互,并没有具体的和USB主控制器硬件相关的代码。难道是在ohci.so模块中和具体的硬件打交道吗???
还有,如果我要在目标机上支持USB设备(比如支持U盘), 那么与具体硬件相关的东西在哪个模块中体现出来呢,或者说我需要修改什么呢???

你的理解没有问题呀。


io-usb是一个USB的中心服务模块,一个interface,提供接口,其它事都是别人去做。它LOAD如ohci.so等来操控USB硬件。
The io-usb server contains USB protocols and communicates with clients (class drivers). The USB stack is a server/dll interface which the server uses to load the DLLs that manage the USB chips. You can load drivers when you start io-usb by specifying the -d command-line option.

与U盘硬件相关的如devb-umass。它通过io-usb把命令发给U盘。不然你还要懂得怎样操作USB芯片,再操作U盘上的芯片。
The devb-umass driver is the driver for a USB mass storage interface.

好的,谢谢nakeyfish。
如果说,USB控制器硬件相关的细节由io-usb导入的动态库ohci.so来处理的话,
那么如果我要在我的目标板(s3c2410)上支持USB的话,那么是不是要提供自己的ohci.so呀???
因为毕竟不同CPU的USB硬件的设置和处理都不一样呀,但是文档中好像没有关于ohci.so的结构等的说明,那可如何下手呀???

QNX已经支持的USB芯片不能满足你的要求吗?

没有说明文档和源码的情况下如果要自己写一个会比较麻烦。

QNX的io-usb代码不知什么时候才开源。据我所知好像有些第三方专利什么的在里面。可能XTANG比较清楚。