linux那些事之我是USB
这两天闲着没事,就翻开这本看了一下,这里做些笔记,帮助自己以后复习用。 usb的主要代码位于/driver/usb/storage下面,核心代码在/driver/usb/storage/core目录下面,这幅图是看书的过程中画的,这就是一个简单的总线设备模型,相信不难理解,当设备连接上时会被添加到总线的devices链表中,那么驱动通过usb_register注册的时
·
这两天闲着没事,就翻开这本<linux那些事之我是USB>看了一下,这里做些笔记,帮助自己以后复习用。
usb的主要代码位于/driver/usb/storage下面,核心代码在/driver/usb/storage/core目录下面,
这幅图是看书的过程中画的,这就是一个简单的总线设备模型,相信不难理解,当设备连接上时会被添加到总线的devices链表中,那么驱动通过usb_register注册的时候也会加入到对应的drivers链表中,那么设备和驱动是怎么联系起来的呢?
相信从图中不难看出,首先,要说的是,一个设备只能对于一个驱动,但是一个驱动却可以支持多种设备。
驱动遍历devices链表,找到device_driver指正为空的device,然后查看这个设备的特征,如果是自己支持的设备,那么就让这个指针指向自己,并且把这个device加入到自己的list_head链表中,到这里总线、设备、驱动这个三角形就简历起来了。
更多推荐
已为社区贡献4条内容
所有评论(0)