首页|嵌入式系统|显示技术|模拟IC/电源|元件与制造|其他IC/制程|消费类电子|无线/通信|汽车电子|工业控制|医疗电子|测试测量
首页 > 分享下载 > 消费类电子 > USB鼠标驱动注解及测试

USB鼠标驱动注解及测试

资料介绍
USB鼠标驱动注解及测试usb 鼠标驱动注解及测试
作者:刘洪涛,华清远见嵌入式培训中心高级讲师,ARM ATC 授权培训讲师。

参考 2.6.14 版本中的 driver/usb/input/usbmouse.c。鼠标驱动可分为几个部分:驱动加载部分、probe 部分、 open 部分、urb 回调函数处理部分。 下文阴影部分为注解。

一、驱动加载部分

static int __init usb_mouse_init(void) { int retval = usb_register(&usb_mouse_driver);//注册鼠标驱动 if (retval == 0) info(DRIVER_VERSION ":" DRIVER_DESC); return retval; }

其中 usb_mouse_driver 的定义为:

static struct usb_driver usb_mouse_driver = { .owner .name .probe .disconnect .id_table }; = THIS_MODULE, = "usbmouse", = usb_mouse_probe, = usb_mouse_disconnect, = usb_mouse_id_table,

如果注册成功的话,将会调用 usb_mouse_probe。那么什么时候才算注册成功呢?

和其它驱动注册过程一样,只有在其对应的“总线”上发现匹配的“设备”才会调用 probe。总线匹配的方法和 具体总线相关,如:platform_bus_type 中是判断驱动名称和平台设备名称是否相同;那如何确认 usb 总线 的匹配方法呢?

Usb 设备是注册在 usb_bus_type 总线下的。查看 usb_bus_type 的匹配方法。

struct bus_type usb_bus_typ
标签:鼠标驱动注解及测
USB鼠标驱动注解及测试
本地下载

评论