Vela-OS: 记录一个class层,处理MSC协议的bug
一、关于USC-MSC类设备驱动层,处理SCSI指令的代码逻辑问题
1. 源文件
\nuttx\drivers\usbdev\usbmsc_scsi.c
2. 问题描述
对于INQUIRY指令,长度一般是6个字节,cdblen字段嵌入在CBW数据包中,如下:
命令阶段的CBW数据包:
55 53 42 43 60 2a c0 8b 24 00 00 00 0x80 0x0 [06] 12 ...
但是HOST也有可能下发12字节,比如在格式化盘符的时候:
命令阶段的CBW数据包:
55 53 42 43 60 2a c0 8b 24 00 00 00 0x80 0x0 [0C] 12 ...
3. 一般性处理方法
对比一般的U盘,设备端在数据阶段,直接返回数据。
-------------------------------------------------------------------------
30.2 31 OUT 55 53 42 43 20 5a 81 83 38 00 00 00 80 00 [0c] 12
00 00 00 38 00 00 00 00 00 00 00 00 00 00 00
30.1 56 IN 00 80 06 02 1f 00 00 00 47 65 6e 65 72 69 63 20
53 54 4f 52 41 47 45 20 44 45 56 49 43 45 20 20
31 34 30 34 05 e3 07 51 47 45 4e 45 00 25 00 00
30.1 13 IN 55 53 42 53 20 5a 81 83 00
原文地址:https://blog.csdn.net/qq_40088639/article/details/137651853
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!