我正在开发USB mass storage device。我让设备基本上工作了(它太慢了,但这是另一个对话)。我不喜欢的是处理设备删除 - 不是来自USB端,而是当USB设备被(强制)媒体强制离线时USB设备对主机的正确响应去除。
我尝试使用带有MEDIUM_NOT_PRESENT附加信息的NOT_READY检测键响应读/写请求,但主机似乎没有采取与断开USB电缆相同的方式做出反应
在操作过程中将介质拉出时,带有可移动介质的USB设备的预期行为是什么?
答案 0 :(得分:0)
感谢LUFA的Dean Camera解决这个问题(我不知道他在这里是否有身份)。解决方案是不更改LUN计数,而是使用ILLEGAL_REQUEST检测键响应PREVENT_ALLOW_MEDIUM_REMOVAL,并针对设备状态(成功或NOT_READY / MEDIUM_NOT_PRESENT)正确响应TEST_UNIT_READY。在状态发生任何变化后,我还会为第一个命令生成一个UNIT_ATTENTION。现在,设备在移除和插入介质时正确运行。