USB学习——12、usb初始化和插拔驱动软件流程大致框架描述

usb初始化和插拔驱动软件流程大致框架描述:
当设备启动时,usb的主机控制器设备驱动(HCD)和 usb的root hub会先初始化:
1、xhci-plat.c主机控制器驱动那里,__usb_creat_hcd创建usb主机数据结构,main_hcd(primary_hcd)和shared_hcd,前者usb2.0,后者usb3.0,然后通过usb_add_hcd添加一个新的主机设备
2、hcd.c那里会注册一个 root hub ,usb_add_hcd来使用它, register_root_hub,然后会添加一个新设备roothub, 通过usb_new_device和device_add
3、hub.c那里会初始化hub通用驱动(usb_hub_init),并注册usb hub驱动,通过 usb_register_driver 和 driver_register
4、之后hub_probe开始,hub_event 和 hub_configure ,hub的端口上有事件时去处理事件读取配置usb设备接口的描述符等配置,hub控制传输,hub状态变化,hub中断,hub port状态变化,
5、然后有事件产生的话,会产生xhci中断,usb_hcd_irq, xhci_handle_event, handle_port_status
6、判断port状态是否有变化,设置hub轮询标志,轮询hub的状态,usb_hcd_poll_rh_status,port有变化时回调到hub_irq
7、然后hub事件通过hub_event处理,遍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值