2

我正在开发一个USB 大容量存储设备。我让设备基本上工作了(它太慢了,但那是另一个话题)。没有像我想要的那样工作的是处理设备删除 - 不是从 USB 端,而是当 USB 设备被(强制)媒体删除强制脱机时,USB 设备向主机呈现正确的响应。

我尝试使用带有 MEDIUM_NOT_PRESENT 附加信息的 NOT_READY 感应键响应读/写请求,但主机似乎并没有以与断开 USB 电缆相同的方式对此作出反应。

在操作期间将媒体拉出时,带有可移动媒体的 USB 设备的预期行为是什么?

4

1 回答 1

0

感谢LUFA的Dean Camera解决了这个问题(我不知道他是否在这里有身份)。解决方案是不更改 LUN 计数,而是使用 ILLEGAL_REQUEST 感应键响应 PREVENT_ALLOW_MEDIUM_REMOVAL,并针对设备状态(成功或 NOT_READY/MEDIUM_NOT_PRESENT)适当地响应 TEST_UNIT_READY。在状态发生任何变化后,我还会为第一个命令生成 UNIT_ATTENTION。现在,该设备在移除和插入媒体时可以完全正确地运行。

于 2017-04-29T01:02:08.113 回答