一、关于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 ...文章来源:https://www.toymoban.com/news/detail-853214.html
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://www.toymoban.com/news/detail-853214.html
到了这里,关于Vela-OS: 记录一个class层,处理MSC协议的bug的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!