linux usb hid 工具,Linux下USB HID device driver研究(二)

本文深入探讨了Linux系统中USB HID设备驱动的工作原理,包括hid_init函数的调用过程,usbhid_quirks_init解析设备特性,hiddev_init在特定配置下的设备注册,以及usb_register注册USB驱动。此外,还分析了当USB设备插入时,hid_driver如何通过probe函数进行配置,并介绍了模块参数和宏在驱动中的应用。
摘要由CSDN通过智能技术生成

作者:Sam(甄峰) sam_code@hotmail.com

在drivers/hid/usbhid/hid-core.c中,有如下语句:

module_init(hid_init);

表明当hid-usb.o(hid-core.o等三个组成)添加入kernel core时,会调用hid_init.

1. hid_init分析:

hid_init首先调用usbhid_quirks_init();

1.1. usbhid_quirks_init() 解析:

其实就是查找insmod 时给的pid,vid参数在quirks列表中是否有,如果有,就替换。没有就创建。

1.2. hiddev_init();

此function只有在选中CONFIG_USB_HIDDEV才会真正做事。

也就是说:只有在配置kernel时选中下面条目才有效.

config USB_HIDDEV

bool "/dev/hiddev raw HID device support"

它只是简单的注册一个USB设备。但这个设备在USB 硬件插入时什么都不作。

1.3 usb_register(&hid_driver);

注册一个USB driver.

从这个driver的id_table来看:

.match_flags = USB_DEVICE_ID_MATCH_INT_CLASS

表明匹配的是:Interface class

.bInterfaceClass = USB_INTERFACE_CLASS_HID

表明Interface Class为HID设备

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值