Edit online

测试指南

28 May 2024
Read time: 1 minute(s)

在测试 USB 时,普通的做法是找一些 U 盘、鼠标、键盘 等外设来做一些测试,但是这些测试还是偏上层偏功能的。相比较 HC (USB Host Controller) 和 UDC (USB Device Controller) 按照 USB 协议提供的完整功能来说,这种测试验证时不充分的。

在 Linux Kernel 中对 HC/UDC 有一套专有的测试方案,在底层对 control/bulk/int/iso 几种 endpoint 进行针对性的功能和压力测试。


image0

上图的测试方案由几部分组成:

  1. Device 侧的 gadget zero 测试设备,提供了测试通道,详见 Device 侧 gadget zero
  2. Host 侧的 usbtest.ko 测试驱动,封装了 30 个 endpoint 层级的测试用例。
  3. Host 侧的 testusb 用户程序,用来调用 usbtest.ko 提供的测试用例。