ChinaUnix.net
相关文章推荐:

Linux设备驱动之USB hub驱动

linux设备驱动usb hub驱动 ------------------------------------------ 本文系本站原创,欢迎转载! 转载请注明出处:http://ericxiao.cublog.cn/ ------------------------------------------ 一:前言 继UHCI的驱动后,我们对usb Control的运作有了一定的了解.在接下来的分析中,我们对usb设备驱动做一个全面的分析,我们先从hub驱动说起.关于hub,usb2.0 spec上有详细的定义,基于这部份的代码位于linux-2.6.25/drivers/usb/c...

by 583893280 - Linux文档专区 - 2010-01-29 01:31:58 阅读(3341) 回复(0)

相关讨论

------------------------------------------ 本文系本站原创,欢迎转载! 转载请注明出处:http://ericxiao.cublog.cn/ ------------------------------------------ 一:前言 继UHCI的驱动后,我们对usb Control的运作有了一定的了解.在接下来的分析中,我们对usb设备驱动做一个全面的分析,我们先从hub驱动说起.关于hub,usb2.0 spec上有详细的定义,基于这部份的代码位于linux-2.6.25/drivers/usb/core下,也就是说,这部份代码是...

by xgr180 - Linux文档专区 - 2008-09-26 17:46:48 阅读(1406) 回复(0)

5.2.2:接口驱动中的hub_thread()函数 我们前在分析usb_hub_init()的代码的时候,忽略掉了一部份. 代码片段如下所示: int usb_hub_init(void) { …… khubd_task = kthread_run(hub_thread, NULL, "khubd"); …… } Kthread_run()是kernel中用来启动一个新kernel线程的接口,它所要执行的函数就是后面跟的第一个参数.在这里,也就是hub_thread().另外,顺带提一句,要终止kthread_run()创建的线程,可以调用kthread_stop()....

by 583893280 - Linux文档专区 - 2014-03-11 13:17:57 阅读(4198) 回复(3)

5.2.2:接口驱动中的hub_thread()函数 我们前在分析usb_hub_init()的代码的时候,忽略掉了一部份. 代码片段如下所示: int usb_hub_init(void) { …… khubd_task = kthread_run(hub_thread, NULL, "khubd"); …… } Kthread_run()是kernel中用来启动一个新kernel线程的接口,它所要执行的函数就是后面跟的第一个参数.在这里,也就是hub_thread().另外,顺带提一句,要终止kthread_run()创建的线程,可以调用kthread_stop(). ...

by xgr180 - Linux文档专区 - 2008-09-26 17:51:06 阅读(1050) 回复(0)

一:前言usb是一个很复杂的系统.在usb2.0规范中,将其定义成了一个分层模型.linux中的代码也是按照这个分层模型来设计的.具体的分为usb设备,hub和主机控制器三部份.在阅读代码的时候,必须要参考相应的规范.最基本的就是usb2.0的spec.它定义了usb协议.另外的一个是usb控制器的规范.有UHCI,EHCI,OHCI三种.其中UHCI是Intel推出的一种usb控制器标准.它将很多功能交给软件处理.相比下,它也是最为复杂的.因此,本文档以UHCI为例分析.另外,...

by zhiqiang0071 - Linux文档专区 - 2008-09-20 13:34:46 阅读(1739) 回复(0)

------------------------------------------ 本文系本站原创,欢迎转载! 转载请注明出处:http://ericxiao.cublog.cn/ ------------------------------------------ 一:前言 usb是一个很复杂的系统.在usb2.0规范中,将其定义成了一个分层模型.linux中的代码也是按照这个分层模型来设计的.具体的分为usb设备,hub和主机控制器三部份.在阅读代码的时候,必须要参考相应的规范.最基本的就是usb2.0的spec.它定义了usb协议.另外的一个是US...

by xgr180 - Linux文档专区 - 2008-09-09 09:54:36 阅读(1125) 回复(0)

三:传输过程的实现说到传输过程,我们必须要从URB开始说起,这个结构的就好比是网络子系统中的skb,好比是I/O中的bio.usb系统的信息传输就是打成URB结构,然后再过行传送的.URB的全称叫usb request block.下面从它的接口说起.3.1:URB的相关接口1:URB的创建URB的创建是由usb_alloc_urb()完成的.这个函数会完成URB内存的分配和基本成员的初始化工作.代码如下:struct urb *usb_alloc_urb(int iso_packets, gfp_t mem_flags){ ...

by zhiqiang0071 - Linux文档专区 - 2008-09-20 13:44:59 阅读(1334) 回复(0)

------------------------------------------ 本文系本站原创,欢迎转载! 转载请注明出处:http://ericxiao.cublog.cn/ ------------------------------------------ 三:传输过程的实现 说到传输过程,我们必须要从URB开始说起,这个结构的就好比是网络子系统中的skb,好比是I/O中的bio.usb系统的信息传输就是打成URB结构,然后再过行传送的. URB的全称叫usb request block.下面从它的接口说起. 3.1:URB的相关接口 1:URB的创建 URB的创...

by xgr180 - Linux文档专区 - 2008-09-18 11:23:07 阅读(1152) 回复(0)

uhci_scan_schedule()是这个函数的核心操作.也是经常出现的一个函数.代码如下: static void uhci_scan_schedule(struct uhci_hcd *uhci) { int i; struct uhci_qh *qh; /* Don't allow re-entrant calls */ //如果正在进行scan处理.设置need_rescan后退出 if (uhci->scan_in_progress) { uhci->need_rescan = 1; return; } //设置scan_in_progess.防止被其它进程打扰 uhci->s...

by xgr180 - Linux文档专区 - 2008-09-18 11:27:01 阅读(1083) 回复(0)

uhci_scan_schedule()是这个函数的核心操作.也是经常出现的一个函数.代码如下:static void uhci_scan_schedule(struct uhci_hcd *uhci){   int i;    struct uhci_qh *qh;     /* Don't allow re-entrant calls */    //如果正在进行scan处理.设置need_rescan后退出    if (uhci->scan_in_progress) {       ...

by zhiqiang0071 - Linux文档专区 - 2008-09-20 13:51:15 阅读(1091) 回复(0)

文件: linux usb gadget设备驱动.rar 大小: 222KB 下载: 下载 copy 刘洪涛老师的!(感谢刘老师无私奉献) 本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/71164/showart_2129715.html

by tomoowang - Linux文档专区 - 2009-12-24 14:53:42 阅读(1528) 回复(0)