网站首页

人工智能P2P分享搜索全网发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

Gadget框架构造描述符

时间:2023-07-13 11:34

人气:

作者:admin

标签: 框架 

导读:假设你要【模拟】一个 USB 设备: 这个 USB 设备含有厂家信息:它记录在设备描述符里,所以设备描述符应该由你提供 这个芯片可能有多种配置,这也是由你决定,所以配置描述符应该...

假设你要【模拟】一个 USB 设备:

这个 USB 设备含有厂家信息:它记录在设备描述符里,所以设备描述符应该由你提供

这个芯片可能有多种配置,这也是由你决定,所以配置描述符应该由你提供

某个配置下多个接口,接口就是功能,Linux 内核里事先提供了很多功能的驱动程序,所以:接口描述符是内核提供的

某个接口下需要什么端点,也是内核里各类功能的驱动程序提供的

以 zero.c 为例:

配置 1:loopback,Host 写数据给它,就可以读出原样的数据

配置 2:sourcesink,Host 写数据给它(它只是记录下数据),Host 还可以读数据(读到的都是0)

从下到上涉及这些文件:

图片

阅读源码时,入口函数是usb_composite_probe(&zero_driver):

图片

函数调用过程中主要的函数如下,重点关注“xxx_bind”函数,bind 就是初始化的意思:

usb_composite_probe

composite_bind

zero_bind

sourcesink_bind/loopback_bind

图片

深入解读描述符的构造过程,可以得到下面的图:

构造出一个 usb_composite_dev 结构体

它把各层串联起来,里面构造有设备描述符、配置描述符、接口描述符、端点描述符

图片

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信