aasa2
驱动中牛
驱动中牛
  • 注册日期2004-04-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分525分
  • 威望339点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
阅读:921回复:1

我修改了read_10函数,大家觉得有没有问题

楼主#
更多 发布于:2004-05-11 17:08
请看下面read_10函数.我的参数dCBW_DataXferLen,bCBW_LUN,XferLength有没有错误?
        同时对我的read函数有什么意见?
/*
PARA. FOR READ/WRITE/FORMAT
para[1]=feature
para[2]=Sector Count
para[3]=Sector Number(LBA 7-0)
para[4]=Cylinder Low (LBA 15-8)
para[5]=Cylinder High (LBA 23-16)
para[6]=Head          (LBA 27-24)
*/      
unsigned char CF_WRITE()
{
//下面是CBW
MassStorageCBW.dCBW_Signature=CBW_SIGNATURE;
MassStorageCBW.dCBW_Tag=0x60a624de;
MassStorageCBW.dCBW_DataXferLen=para[2]*512;
MassStorageCBW.bCBW_Flag=0x00;
MassStorageCBW.bCBW_LUN=0;
MassStorageCBW.bCBW_CDBLen=sizeof(WRITE_RBC);//0x0C
//下面是CBWCB
MassStorageCBW.cdbRBC.WRITE_RBC.OperationCode=write10;//0x2A
MassStorageCBW.cdbRBC.WRITE_RBC.VendorSpecific=0;//
MassStorageCBW.cdbRBC.WRITE_RBC.LBA.LBA_W8.LBA_3=para[6];
MassStorageCBW.cdbRBC.WRITE_RBC.LBA.LBA_W8.LBA_2=para[5];
MassStorageCBW.cdbRBC.WRITE_RBC.LBA.LBA_W8.LBA_1=para[4];
MassStorageCBW.cdbRBC.WRITE_RBC.LBA.LBA_W8.LBA_0=para[3];
MassStorageCBW.cdbRBC.WRITE_RBC.Reserved=0;
MassStorageCBW.cdbRBC.WRITE_RBC.XferLength=para[2];
MassStorageCBW.cdbRBC.WRITE_RBC.Reserved1[0]=0;
MassStorageCBW.cdbRBC.WRITE_RBC.Reserved1[1]=0;
MassStorageCBW.cdbRBC.WRITE_RBC.Reserved1[2]=0;
//三步,发CBW,发数据,接收CSW.
if(!BULK_Transfer_OUT((unsigned char *)&MassStorageCBW,sizeof(MassStorageCBW)))
return FALSE;
DelayMs(15);
if(!BULK_Transfer_OUT(BX,para[2]))
return FALSE;
//DelayMs(10);
if(!BULK_Transfer_IN((unsigned char *)&MassStorageCSW,13))
return FALSE;
return TRUE;
}

最新喜欢:

wdy9927wdy992...
技术交流:aasa2@21cn.com QQ群:10863699
aasa2
驱动中牛
驱动中牛
  • 注册日期2004-04-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分525分
  • 威望339点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-05-11 20:28
我发现错误了。
“发数据”的程序,参数para[2]应该改为512
错误程序:
if(!BULK_Transfer_OUT(BX,para[2]))
     return FALSE;
正确程序:
if(!BULK_Transfer_OUT(BX,512))
     return FALSE;
技术交流:aasa2@21cn.com QQ群:10863699
游客

返回顶部