参考资料:
- 《06_libusb的使用》
- 《11.5_从数据传输的角度理解Gadget框架》
- 实验代码:GIT仓库
source\12_USB\05_libusb_zero
1. 编写程序
1.1 编程思路
涉及的程序如下图所示:

基于libusb编写程序:
- 找到设备
- 选择配置:loopback、sourcesink
- 得到端点:找到interface进而得到endpoint
- 读写数据:操作endpoint
1.2 zero设备的描述符
在Ubuntu里执行如下命令:
可以列出zero设备的描述符:
它有2个配置:
- 第1个配置(bConfigurationValue = 2)对应loopback功能:里面有1个接口,接口有1个setting,下面有2个endpoint
- 第2个配置(bConfigurationValue = 3)对应SourceSink功能:里面有1个接口,接口有2个setting
- 第1个setting下面有2个endpoint:都是bulk端点
- 第2个setting下面有4个endpoint:2个是bulk端点,另外2个是Isochronous端点
1.3 编程
参考libusb示例:libusb.c
2. 上机实验
实验步骤:
- 先安装g_zero驱动程序:在开发板上执行
modprobe g_zero
- 然后连接OTG线到PC
- 在Ubuntu中识别出设备
- 执行测试程序
- 先编译:在Ubuntu里执行如下命令
- 测试:在Ubuntu里执行如下命令






