
usb
文章平均质量分 79
知秋贺
这个作者很懒,什么都没留下…
展开
-
usb驱动开发6之端点描述符
学到这里不容易,先说一段故事吧。 二兄弟住一大楼的第80层,某深夜回家忘看通知(内容今夜停电)。 兄弟俩背着沉重的大背包,在楼底下商量一下,决定一鼓作气,爬楼梯回家。两人抖擞精神,开始爬楼。爬到20楼的时候,开始觉得背包很重了。两人商量,决定把背包存在20楼,到时候再回过头来取。卸下了背包,两个人觉得很轻松,说说笑笑地继续往上爬。 爬到40楼的时候,两人已经很累了,就开始互相抱怨指责。哥哥说:你为什么不看通知啊?弟弟说:我忘了看通知这件事,你怎么不提醒我昵?两个人就这样吵吵闹闹,一路吵到60层。 到转载 2022-03-24 19:36:02 · 525 阅读 · 0 评论 -
usb驱动开发5之总线设备与接口
Linux设备模型中的总线落实在USB子系统里就是usb_bus_type,它在usb_init的函数bus_register(&usb_bus_type)里注册。usb_bus_type定义如下: struct bus_type usb_bus_type = { .name = "usb", .match = usb_device_match, .uevent = usb_uevent, .suspend = usb_suspend, .resume = usb_res...转载 2022-03-24 18:33:02 · 472 阅读 · 0 评论 -
usb驱动开发4之总线设备驱动模型
在上文说usb_init函数,却给我们留下了很多岔路口。这次就来好好聊聊关于总线设备驱动模型。这节只讲理论,不讲其中的函数方法,关于函数方法使用参考其他资料。 总线、设备、驱动对应内核结构体分别为bus_type、device、device_driver。 我们会发现,struct bus_type 结构中有成员struct kset drivers 和struct kset devices,同时struct device结构中有两个成员struct bu...转载 2022-03-24 18:21:11 · 159 阅读 · 0 评论 -
usb驱动开发3之先看core
上节中看到usb目录中有一个core目录,凡是认识这个core单词的人都会想要先看看它是什么,对不?用LDD3中一幅图,来表述usb core所处地位。 usb core负责实现一些核心的功能,为别的设备驱动程序提供服务,提供一个用于访问和控制USB硬件的接口,而不用去考虑系统当前存在哪种host controller。 上述就是core的作用和地位,下面就分析core目录下的代码。首先用ls命令看一下它包含哪些文件,顺便用wc –l命令统计一下多少文件和代码。是不是吓了一跳?几万行的代码,c.转载 2022-03-24 18:00:00 · 402 阅读 · 0 评论 -
usb驱动开发2之代码地图
SB只是Linux庞大家族里的一个小部落,host controller是它们的族长,族里的每个USB设备都需要被系统识别。下图显示包含一个USB接口的USB鼠标导出的结果。 USB系统中的第一个USB设备是root hub,它是和host controller绑定在一起的。这个root hub通常包含在PCI设备中,是连接PCI总线和USB总线的bridge,控制着连接到其上的整个USB总线。所有的root hub,内核的usb core都分配有独特的编号,上面贴出来的例子里,就是usb2,因为它注转载 2022-03-24 17:39:20 · 180 阅读 · 0 评论 -
usb驱动开发1之学习准备
此系列是fudan_abc的博客_优快云博客-Linux那些事儿 之 我是U盘,Linux那些事儿之戏说USB,Linux那些事儿 之 戏说USB领域博主博文的整理,同时加入了自己的理解。很敬佩fudan_abc的文章,仔细学习和分析受益很多。注:fundan_abc所分析linux内核代码所用的版本是2.6.22.6。 Q:学习linux下的usb通信要怎样进行? 熟悉linux驱动开发,同时需要了解usb协议规范,对照linux下的usb驱动代码慢慢分析和学习 Q:为什么要开发usb? 在us转载 2022-03-24 17:34:10 · 363 阅读 · 0 评论