Lazy loaded image
Gadget应用实例之zero
Words 1825Read Time 5 min
2025-4-29
 
参考资料:
  • 《06_libusb的使用》
  • 《11.5_从数据传输的角度理解Gadget框架》
  • 实验代码:GIT仓库source\12_USB\05_libusb_zero

1. 编写程序

1.1 编程思路

涉及的程序如下图所示:
notion image
基于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里执行如下命令
      上一篇
      宏的用法
      下一篇
      Guide to Linux System

      Comments
      Loading...