cherry-embedded / CherryUSB

CherryUSB is a tiny, beautiful and portable USB host and device stack for embedded system with USB IP
https://cherryusb.readthedocs.io/
Apache License 2.0
1.21k stars 256 forks source link

优化U盘枚举过程 #92

Closed babboys closed 1 year ago

babboys commented 1 year ago

更新内容

  1. 优化U盘枚举时的兼容性,如有些U盘需要发送requestsense请求,才能获取到容量。
  2. U盘枚举时,scsi命令失败进行重试。
sakumisu commented 1 year ago

个人不推荐重试,u盘垃圾的话,没必要使用

babboys commented 1 year ago

客户那里还是容易出现挂载不上的情况,有些U盘还需要requestsense请求才能挂载,比如aigo,你看发送requestsense这个功能可以保留不。

sakumisu commented 1 year ago

客户那里还是容易出现挂载不上的情况,有些U盘还需要requestsense请求才能挂载,比如aigo,你看发送requestsense这个功能可以保留不。

可以的,顺便代码里的 rt delay 记得删除

babboys commented 1 year ago

大佬,有空看一下,把延时去掉了,在我的板子上测了下,可以正常挂载。

sakumisu commented 1 year ago

requestsense 为啥是在 testunity里面而不是在外面呢

babboys commented 1 year ago
     有些U盘在发送testunity命令后,返回的csw的bStatus状态为1(表示失败),这时需要发送requestsense命令,后续的usbh_msc_scsi_readcapacity10才能成功获取到容量信息。
     如果testunity命令返回的bStatus为0(成功),则不需要发送requestsense。