我正在使用OHCI实现USB作为主机来读取存储在Flashdrive中的文件。要读取我在SCSI中实现read(10)命令。逻辑块地址是扇区号。以下是我发送的读取(10)读取LBA 0x0000-的命令的图像 http://i.imgur.com/ky4FHlm.png
我读取512字节(一个扇区的大小或1个LBA),以下是我为LBA 0x0000获得的输出 http://imgur.com/jL6OEjE
上面图片中的字节不存在于pendrive上的任何位置,我使用HXD进行了检查。现在,为了测试我将pendrive装满了。如果我读取除0x0000之外的任何其他LBA,那么我总是得到512字节的0x00。
有谁能告诉我问题是什么? 我是否应该在执行读取(10)之前执行其他命令,以便USB向我发送正确的数据?
根据我的理解,我已经把DPO,FUA和FUA_NV = 0以及RDPROTECT = 2