简单分析USB设备驱动框架(秒懂~)

2022年09月27日18:51:10 科技 1709

在生活、工作中经常会接触到USB设备,如鼠标、键盘、摄像头、可移动硬盘、扫码枪等。这些设备通过USB接口连接到电脑上后,电脑会立刻提示“检测到新硬件...”、安装驱动等。这里需要强调下USB设备使用的是USB总线,window或Linux内核中都会自带usb总线驱动,所以接上USB设备后,主机能够立刻检测到,提醒需要安装设备驱动是指安装USB设备驱动。

USB设备驱动使用USB总线,所以很多操作由USB总线驱动帮我们完成了,我们只需要的按照总线、设备、驱动框架来实现USB设备的驱动既可。USB设备数据的读写操作由总线驱动现在,我们可以直接使用总线读取到的数据,然后解析这些数据的含义、再进行相关的操作就可以了(这里需要注意的一点是USB总线驱动只提供USB设备的读写操作函数,这函数是通用的,即里面的数据的含义总线驱动并不知道)。

USB设备驱动的框架图下,具体的代码可以参考内核中的/drivers/hid/usbhid/usbmouse.c

分配/设置usb_driver结构体,填充里面的.id_table、.probe、.disconnect成员。
调用usb_register把usb_driver结构体注册到内核中。

static struct usb_driver usbtouch_driver = {
	.name		= "myusb",
	.probe		= usbtouch_probe,
	.disconnect	= usbtouch_disconnect,
	.id_table	= usbtouch_devices,
};
 
static int __init usbtouch_init(void)
{
	return usb_register(&usbtouch_driver);
}
 
static void __exit usbtouch_cleanup(void)
{
	usb_deregister(&usbtouch_driver);
}

struct usb_driver中的id_table成员是用与和usb设备进行匹配的选项,表示这个驱动支持的设备。

.probe成员为函数指针,就是在设备和驱动匹配成功的时候执行。

.disconnect成员也为函数指针,在设备和驱动关联成功后再断开执行,如拔了USB设备或卸载USB设备驱动。


更多linux内核视频教程文档资料免费领取后台私信【内核】自行获取.

简单分析USB设备驱动框架(秒懂~) - 天天要闻

简单分析USB设备驱动框架(秒懂~) - 天天要闻

简单分析USB设备驱动框架(秒懂~) - 天天要闻

科技分类资讯推荐

从聊天机器人到协作伙伴:AI智能体如何重塑企业工作 - 天天要闻

从聊天机器人到协作伙伴:AI智能体如何重塑企业工作

Scott White至今仍对人工智能从新奇技术转变为真正工作伙伴的速度感到惊叹。仅仅一年多前,这位Anthropic公司Claude AI产品负责人目睹了早期AI编程工具甚至无法完成一行代码的窘境。如今,尽管并非专业程序员,他却能亲自构建
小米 16 系列迎最新爆料,Pro 系列镜头模组大改,横向延伸全尺寸设计 - 天天要闻

小米 16 系列迎最新爆料,Pro 系列镜头模组大改,横向延伸全尺寸设计

近日,包括数码闲聊站在内等多个消息源,就下一代旗舰新机纷纷进行了最新爆料,其中小米 16 系列也在近日迎来了最新消息。根据最新爆料来看,小米 16 系列将会在以往的标准版、Pro 版、Ultra 的基础上新增一款 Pro Max 型号。但一一对应来看,新款的小米 16 Pro 即对标标准版 , 为大家熟悉的 6.3 英寸小尺寸旗舰机型。而 1...
魅族 22 系列手机本月到来,提供全新开模小尺寸旗舰版本 - 天天要闻

魅族 22 系列手机本月到来,提供全新开模小尺寸旗舰版本

伴随着时间来到 7 月,各大手机厂商的新机更新计划有所放缓,不过根据多方爆料来看,“小厂代表” 星纪魅族旗下的魅族 22 系列将会在本月与大家见面。目前魅族 22 系列仍然十分 “神秘”,欠缺主要的配置爆料与外观图片作为参考。但根据部分什么爆料者的消息来看,魅族 22 系列将会全新开模,并提供小尺寸旗舰版本可供选择...
vivo X300 Pro 更多细节曝光,大 R 角直面屏,新款大底主摄方案加持 - 天天要闻

vivo X300 Pro 更多细节曝光,大 R 角直面屏,新款大底主摄方案加持

今天数码博主数码闲聊站在与网友互动中,透露了一款搭载联发科天玑 9500 的 “大杯” 工程机的最新进展。参考爆料内容与评论区互动来看,预计为 vivo X300 Pro。除搭载联发科天玑 9500 外,据悉该机一大变化之处在于屏幕部分,根据最新消息来看将会搭载一块大 R 角直屏,不再采用曲面屏或微曲面屏设计。而这也将成为下一代...
数据驱动,柔性智能建造平台助力高效管理 - 天天要闻

数据驱动,柔性智能建造平台助力高效管理

长沙晚报掌上长沙7月1日讯(全媒体记者 刘嘉)6月30日,由长沙市智能建造产业链推进办公室与中建五局三公司联合承办的“创新驱动 智建未来”科技活动举行。该活动不仅展示了长沙在智能建造领域的创新成果,也为行业高质量发展提供了可复制的实践经验。
以前不敢想,机械革命搭配出4959元的RTX5050本,还有2.5K屏 - 天天要闻

以前不敢想,机械革命搭配出4959元的RTX5050本,还有2.5K屏

最近RTX5050本开始大面积登场,很多消费者也想知道,厂商到底能搭配出什么样配置?结果机械革命没有让大家失望,搭配出一个6199元的新品,补贴后价格4959元,再一次刷新新显卡笔记本的价格新低。同时,其配置还不是很潦草,还是很平衡的,让我们来看看。这款本配置了R9 7845HX处理器,12核心,24线程,台积电5nm工艺,Zen4...
中国移动三大核心布局 助力南亚东南亚数字经济新发展 - 天天要闻

中国移动三大核心布局 助力南亚东南亚数字经济新发展

【来源:云南网】6月30日,由云南省人民政府和云南省工业和信息化厅联合举办的面向南亚东南亚数字合作推介会在北京举行,中国移动副总经理陈怀达出席,中国移动数智化部副总经理陶涛发表主题为《建设跨境数据交易高速公路,服务数字信息大通道建设》的演讲