首页 | 嵌入式系统 | 显示技术 | 模拟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鼠标驱动注解及测试
本地下载

评论