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……
猜您喜欢
推荐内容
开源项目推荐 更多
热门活动
热门器件
用户搜过
随便看看
热门下载
热门文章
热门标签
评论