USB驱动-host 驱动
文章平均质量分 61
USB作为主机模式的驱动
Water Water Water
别看我
展开
-
USB 网卡驱动数据流
1)应用层通过系统调用,进入到内核层;(2)内核的数据链路层将数据送入驱动层;(3)USB网卡驱动将数据发送到UDC控制器;(将req写入in端点)(4)UDC控制器写寄存器将数据通过phy发送出去。...原创 2022-07-23 17:35:22 · 1069 阅读 · 1 评论 -
usb host 驱动 - UVC 掉包
yavta 是一款测试APP,测试UVC 摄像头的数据采集回传。帧率60FPS 不能正常运行,blocked, all frame fail。帧率30FPS 能正常运行,但中间也会有一些丢包。帧率:FPS(每秒钟要多少帧画面); 以及Gop(表示多少秒一个I帧),影响流畅度。分辨率:单位英寸中所包含的像素点数; VGA:Video Graphics Array(视频图像分辨率),影响清晰度。视频大小:分辨率 x 2(每个像素占多少字节) x 8 x 帧率 x 时间(s) /1024/1024原创 2022-07-05 20:05:50 · 613 阅读 · 0 评论 -
usb host 驱动 - device 插入枚举过程
hub 检测到端口有 usb 设备连接时,hub_port_connect枚举设备过程:== usb_alloc_dev(hdev, hdev->bus, port1); //构建udev== usb_set_device_state(udev, USB_STATE_POWERED); //设置udev 的状态为 powered== hub_port_init(hub, udev, port1, i); //复位设备, 分配地址, 获取设备描述符 == hub_port_reset(原创 2022-03-02 16:29:52 · 1299 阅读 · 0 评论 -
usb host 驱动之设备层次
1、device 层次架构设备:struct device =(派生)=> struct usb_device =(包含)=> struct usb_interface(派生自device)驱动:struct device_driver =(派生)=> struct usb_device_driver =(派生)=> struct usb_driver1.1 usb 设备驱动(1) USB设备的注册:usb_new_device(struct usb原创 2022-03-24 18:13:59 · 1426 阅读 · 0 评论 -
usb host 驱动之 urb
1、URB 处理流程(1)usb 设备驱动程序创建并初始化一个访问特定usb设备特定端点的 urb,并提交给 usb core;(2)usb core 提交该 urb 到 usb 主控制器驱动程序;(3)usb 主控制器驱动程序根据 urb 描述的信息,来访问 usb 设备;(4)当设备访问结束后,usb 主控制器驱动程序通知 usb core(调用这个函数usb_complete_t complete;)然后其再通知usb设备驱动程序。1.1 创建URBstruct urb *usb_allo原创 2022-03-16 19:22:56 · 4649 阅读 · 0 评论 -
usb host 驱动 - device 拔插
1、disconnect1.1 上层卸载usb 设备驱动[ 709.471619] [T29796] Kernel panic - not syncing: Object already free[ 709.478060] [T29796] CPU: 4 PID: 29796 Comm: GConnection0 Tainted: G S B O 5.4.134-qgki-debug-g8c50b8eb5d9c #1[ 709.489217] [T29796] Hardware name: Qual原创 2022-04-07 15:57:03 · 11768 阅读 · 3 评论