Embedded 是否可以将单个物理USB设备显示为两个独立的设备类?

Embedded 是否可以将单个物理USB设备显示为两个独立的设备类?,embedded,usb,Embedded,Usb,我正在开发需要USB连接的设备的早期阶段。作为最低要求,该设备必须显示为传统串行端口,但如果它可以同时显示为大容量存储设备,则它将非常有用 这是可能的,还是设备需要在大容量存储和通信设备之间切换,以便一次只做一件事 **[编辑]**我可能有点快地提出了一个问题;这表明,使用USB复合设备框架确实可以做到这一点。我仍然感兴趣的是,是否有人对此有任何经验,可能有一些提示或指针,使用了什么平台,以及他们可能使用过的任何第三方工具或堆栈。是的,您可以将同一设备显示为两个(或更多)逻辑设备 几年前我为一个

我正在开发需要USB连接的设备的早期阶段。作为最低要求,该设备必须显示为传统串行端口,但如果它可以同时显示为大容量存储设备,则它将非常有用

这是可能的,还是设备需要在大容量存储和通信设备之间切换,以便一次只做一件事


**[编辑]**我可能有点快地提出了一个问题;这表明,使用USB复合设备框架确实可以做到这一点。我仍然感兴趣的是,是否有人对此有任何经验,可能有一些提示或指针,使用了什么平台,以及他们可能使用过的任何第三方工具或堆栈。是的,您可以将同一设备显示为两个(或更多)逻辑设备

几年前我为一个项目做了这个,但现在已经有一段时间了,我已经忘记了细节。我想我的大容量存储、视频捕获和串行端口都是同时运行的


是的,复合设备听起来很熟悉。我参与的项目没有使用任何第三方操作系统或USB库;这是飞思卡尔i.MX21 CPU的全部“裸机”代码。Jan Axelson的非常宝贵,USB分析仪也是如此。

是的,这是可能的。例如,我有一个用于UMTS(3G移动)连接的华为E220 U盘,它有四个接口:两个是特定于供应商的接口(内核驱动程序最终将它们映射为
/dev/ttyUSB{0,1}
),两个是大容量存储


我知道你可以同时使用这两个
/dev/ttyUSB{0,1}

你不必在这里做任何复杂的事情,只需正确使用描述符即可

只需为您想要的每个“功能”提供一个接口描述符(显然,您需要与该“功能”一起使用的所有其他描述符),操作系统就会整理出所有组合设备的内容

我建议,如果你要做任何一个甚至稍微严肃的USB开发,你可以得到一个USB分析仪-你不仅可以分析你自己的东西,而且你还可以插入其他人的工具包,看看他们如何做他们的描述符

谢谢。看来“USB复合设备框架”是我需要的,如果它触发了你的内存?我已经编辑了这个问题,现在正在征求经验,而不是回答是/否。