Linux3.10.x的USB学习笔记之HUB

本文详细介绍了Linux 3.10.x版本中USB HUB的驱动学习,包括入口函数usb_hub_init的注册驱动和开启内核线程,以及退出函数usb_hub_cleanup的线程停止和驱动卸载。当USB设备插入时,会触发中断,通过Hub_irq处理urb状态并启动hub守护进程。hub_thread线程解析hub,hub_port_connect_change函数处理端口变化,涉及设备描述符的获取和设备的初始化。整个过程中,设备的配置信息被读取并解析,然后将设备添加到总线,并尝试匹配合适的驱动进行probe操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

入口函数usb_hub_init:

       注册usb_driver

       开启内核线程kthread_run()

卸载usb_driver //如果线程开启失败


出口函数usb_hub_cleanup:

       停止线程:kthread_stop

usb_deregister(&hub_driver);

   

插入一个USB设备,产生一个中断

Hub_irq  断主控制器处理urb的结果状态,如是OK的,则继续处理。

       Kick_khubd  hub 加入到hub驱动队列hub_event_list中,唤醒hub守护进程wake_up(khubd_wait),开始解析hub

        hub_thread  开启hub线程

             hub_port_connect_change  hu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值