本文基于mstar801平台Linux2.6.35.11内核版本。

一、Linux USB驱动组成

    1.USB设备驱动程序(也叫USB客户驱动程序);

    2.USB主机控制器驱动程序。   

    在Linux操作系统内核中;USB设备驱动程序通过USB CoreUSB主机控制器驱动程序交互。

二、Linux USB设备驱动程序(通用)

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    USB鼠标驱动在内核位置:kernel2.6.35.11/driver/hid/usbhid/usbmouse.c

    USB键盘驱动在内核位置:kernel2.6.35.11/driver/hid/usbhid/usbkbd.c

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    USB U盘驱动在内核位置:kernel2.6.35.11/driver/usb/storage/alauda.c | cypress_atacb.c | datafab.c | freecom.c | isd200.c | jumpshot.c | karma.c | libusual.c | onetouch.c | sddr09.c | sddr55.c | shuttle_usbat.c | shuttle_usbat.c | usb.c

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    USB蓝牙适配器驱动在内核位置:kernel2.6.35.11/driver/bluetooth/btusb.c

    USB wifi适配器驱动在内核位置:kernel2.6.35.11/deiver/net/usb/asix.c | catc.c | cdc_eem.c | cdc_ether.c | cdc-phonet.c | cdc_subset.c | dm9601.c | gl620a.c | hso.c | int51x1.c | ipheth.c | kaweth.c | mcs7830.c | net1080.c | pegasus.c | plusb.c | rndis_host.c | rtl8150.c | sierra_net.c | smsc75xx.c | smsc95xx.c | zaurus.c

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    USB音频设备驱动在内核位置:kernel2.6.35.11/sound/usb/card.c & endpoint.c & urb.c & pcm.c

    USB摄像头驱动在内核位置:kernel2.6.35.11/driver/media/video/cpia_usb.c | dabusb.c | ov511.c | s2255drv.c | s2255drv.c | se401.c | stk-webcam.c | stv680.c | w9968cf.c | zr364xx.c

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    USB转串口驱动在内核位置:kernel2.6.35.11/driver/usb/serial/sierra.c等等,还有其他。这里就只列举一些有代表性的,其他不再列举。

三、Linux USB主机控制器驱动程序(移植部分)

    以mstar平台为例,相关位置:

    先说下USB Core的位置:kernel2.6.35.11/driver/usb/core/buffer.c & hcd.c & hub.c

    以下是USB Host(基于EHCI-HCD即USB2.0的主机控制器)的驱动:kernel2.6.35.11/driver/usb/host/ehci-hcd.c & ehci-mstar.c

Logo

更多推荐