南京回收三菱FX3U-32MS/ES公司
主机控制器的初始化及驱动执行(以EHCI为例);模块注册分配和初始化HCD结构体。对设备数据空间进行分配,初始化计数器、总线、定时器、hcd结构体各成员值。完成HCD结构体的初始化和注册。申请buffer,注册总线、分配设备端内存空间,向中断向量表中申请中断,注册根集线器,对根集线器状态进行轮询。在USB系统驱动加载的过程中,创建了集线器的线程(khubd),并且一直查询相应的线程事务。HCD驱动中,将集线器作为一个设备添加到主机控制器驱动中,然后进行集线器端口的初始化。在USB主机看来,根集线器本身也是USB主机的设备。USB主机驱动加载完成之后,即开始注册根集线器,并且作为一个设备加载到主机驱动之中。
南京回收三菱FX3U-32MS/ES公司
为节省电源,USB设备在探测不到总线传输时自动进入中止状态。当中止时,USB设备保持本身的内部状态,包括它的地址及配置。的设备在一段特定的时间内探测不到总线活动时进入中止态。不管设备是被分配了非缺省的地址或者是被配置了,已经连接的设备在加电的时刻准备中止。总线活动的中止可能是因为主机本身进入了中止状态。另外,USB设备在所连接的集线器端口失效时进入中止态。这就是所指的选择性中止(Selectivesuspend)。
南京回收三菱FX3U-32MS/ES公司
那么请求处理函数和请求对列又是怎么联系到一起的呢?blk_init_queue该函数用来申请一个消息对列。参数request_fn_proc*rfn为函数指针,该函数用来处理消息对列中的消息;参数spinlock_t*lock为一个自旋锁,该锁为队列创建过程的一部分。当调用rfn函数时,该锁是由内核控制的。与该函数对应的函数为:voidmmc_cleanup_queue(structmmc_queue*mq)。销毁队列。
urb:事务传输中的urb•dev:事务传输的目的设备•pipe:USB主机与USB设备之间数输的通道•transfer_buffer:发送数据所申请的内存缓冲区首地址•length:发送数据缓冲区的长度•context:complete函数的上下文•complete_fn:调用完成函数•usb_fill_control_urb()的setup_packet:即将被发送的设备数据包•usb_fill_int_urb()的interval:中断传输中两个URB调度的时间间隔root_hub传输若为roothub,将调用rh_urb_enqueue(),共有两种传输事务(控制传输和中断传输)非root_hub传输对于root_hub传输,它调用:root_hub本身没有批量传输流程,按照控制传输流程,控制传输要通过switch语句跳转到Bulk-Only传输流程中。
专业回收日本基恩士KEYENCE激光传感器,光电开关,压力传感器,光纤传感器,相机控制器,读码器,PLC视觉触摸屏,回收品牌:基恩士,康耐视,西门子,三菱等