问题描述:
- 2014年的时候,我们为客户开发USB音频外设。这款USB音频外设是基于USB Audio Class 1.0,使用ARM Linux - USB UAC1 gadget。
- Windows原生支持USB Audio Class 1.0。
- ARM Linux USB UAC1 gadget的代码有问题,导致Windows不能自动探测此Linux USB UAC1 gadget。
挑战:
- Windows像个黑盒子,无法在Windows设置断点或查看Windows的运行状况。
我们的方案:
- 我们的方案是:使用USB分析仪抓取使用单片机的USB Audio Class 1.0外设的USB数据包,仔细阅读USB Audio Class 1.0规格书,比较单片机USB方案的数据包和Linux UAC1 gadget的数据包,找到之间的差别和仔细阅读UAC1规格书,修改Linux UAC1 gadget代码,并验证测试。
- 我们上传了代码到kernel.org,链接是: