USB描述符工具?


9

谁能推荐任何类似向导的工具来创建USB设备描述符?

到目前为止,我研究过的大多数(全部?)USB固件示例都将描述符定义为.c文件中的简单字节数组,并手动填充(在宏的帮助下)。

显然,这不是一个黑魔法,但我仍然相信一个简单的专用工具可能会有用。谷歌搜索没有给出有用的结果,但是...

Answers:


1

类似于向导的工具在您初次使用时可能很可爱,但后来却成为了障碍。更好的方法是在内存中使用适当的描述符结构,并提供一些有用的宏和其他预处理逻辑,以便您可以提供更高级别的信息,并自动填充正确的字节和位。

我用于PIC 18的USB堆栈就是这样工作的。您可以从我的软件下载页面上安装该文件以及许多其他文件。静态USB设置在两个文件中定义。这些模板的模板在SOURCE> PIC目录中分别命名为QQQ_USB.INS.ASPIC和QQQ_USB0.INS.ASPIC。首先,在usb.ins.aspic文件中定义VID / PID,使用的端点以及每个端点的传输类型。然后,您需要一点点定制来修改usb0.ins.aspic中的描述符。由于它已经知道传输类型和缓冲区大小之类的信息,因此您不必理会这些符号,而只需更改实现的独特之处即可。在大多数情况下,这只是调整制造商名称和产品名称。这些是作为普通字符串编写的,而宏负责正确的格式设置。


好吧,这两种方式各有利弊。我假设编写正确的工具可以将设置存储在某种文本文件中(这样就可以将其保存在代码存储库中),并允许在需要时重新编辑设置并重新生成描述符文件。我认为这至少有两个原因可能是有用的:a)确保描述符有效,b)为每个字段提供某种有用的上下文帮助。另一个有用的用例是从连接到PC的实际USB设备导入描述符。
代码画家

@Czajnik:您是否看过我提到的代码?填写您想要的东西真的并不难。
奥林·拉斯洛普

1
是的,我做到了(顺便说一句,exe文件对Linux用户而言有点不友好)。正如我所说,我之前已经做过自己的描述符,对我来说这不是妖术。我想这真的是个人喜好问题:)
Code Painters
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.