测试指南
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 进行针对性的功能和压力测试。
上图的测试方案由几部分组成:
- Device 侧的
gadget zero
测试设备,提供了测试通道,详见 Device 侧 gadget zero。 - Host 侧的
usbtest.ko
测试驱动,封装了 30 个 endpoint 层级的测试用例。 - Host 侧的
testusb
用户程序,用来调用usbtest.ko
提供的测试用例。