📄 nouse.h
字号:
//******************************************************************
//Belows are of No use!!!
uint8 UFI_Unknown(void) //Good supported
{
CBW MassStorageCBW;
uint8 i;
puts("UFI_Unknown process!");
MassStorageCBW.dCBWSignature = 0;
MassStorageCBW.dCBWTag = 0;
Bulk_Transfer_Out(8,(uint8*)&MassStorageCBW,0);
return 0;
}
uint8 UFI_StartStop(uint8 Start) //Supported
{
CBW MassStorageCBW;
uint8 i;
puts("UFI_StartStop process!");
MassStorageCBW.dCBWSignature = 0x43425355;
MassStorageCBW.dCBWTag = 0x12345678;
MassStorageCBW.dCBWDataTransferLength = 0; //Modify
MassStorageCBW.bmCBWFlags = 0; //Modify
MassStorageCBW.bCBWLUN = 0;
MassStorageCBW.bCBWCBLength = 0x0c;
for(i=0;i<12;i++)
MassStorageCBW.CBWCB[i] = 0;
MassStorageCBW.CBWCB[0] = 0x1B;
if(Start)MassStorageCBW.CBWCB[4] = 1;
else MassStorageCBW.CBWCB[4] = 0;
if(Bulk_Transfer_Out(31,(uint8*)&MassStorageCBW,0) == 0)
{
puts("Good Bulk Transfer!");
i = Bulk_Transfer_In(64,GetDataBuffer,1);
if( i == 0xFF ) return 0x11;
printf("Get data num is %x\n",i);
Printf_buffer();
return GetDataBuffer[12]; //Return 0 if success, 0x01 = fail, 0x02 = segment error
}
else
{
puts("Bad Bulk Transfer!");
return 0xFF;
}
}
uint8 UFI_Seek(void) //Bad
{
CBW MassStorageCBW;
uint8 i;
puts("UFI_Seek process!");
MassStorageCBW.dCBWSignature = 0x43425355;
MassStorageCBW.dCBWTag = 0x12345678;
MassStorageCBW.dCBWDataTransferLength = 0; //Modify
MassStorageCBW.bmCBWFlags = 0x80; //Modify
MassStorageCBW.bCBWLUN = 0;
MassStorageCBW.bCBWCBLength = 0x0c;
MassStorageCBW.CBWCB[0] = 0x2B;
MassStorageCBW.CBWCB[1] = 0;
MassStorageCBW.CBWCB[2] = 0;
MassStorageCBW.CBWCB[3] = 0;
MassStorageCBW.CBWCB[4] = 0;
MassStorageCBW.CBWCB[5] = 0;
if(Bulk_Transfer_Out(31,(uint8*)&MassStorageCBW,0) == 0)
{
puts("Good Bulk Transfer!");
i = Bulk_Transfer_In(64,GetDataBuffer,1);
if( i == 0xFF ) return 0x11;
printf("Get data num is %x\n",i);
Printf_buffer();
return GetDataBuffer[12]; //Return 0 if success, 0x01 = fail, 0x02 = segment error
}
else
{
puts("Bad Bulk Transfer!");
return 0xFF;
}
}
uint8 UFI_TestUnitReady() //Bad
{
CBW MassStorageCBW;
uint8 i;
puts("UFI_TestUnitReady process!");
MassStorageCBW.dCBWSignature = 0x43425355;
MassStorageCBW.dCBWTag = 0x12345678;
MassStorageCBW.dCBWDataTransferLength = 0; //Modify
MassStorageCBW.bmCBWFlags = 0x80; //Modify
MassStorageCBW.bCBWLUN = 0;
MassStorageCBW.bCBWCBLength = 0x0c;
for(i=0;i<12;i++)
MassStorageCBW.CBWCB[i] = 0;
if(Bulk_Transfer_Out(31,(uint8*)&MassStorageCBW,0) == 0)
{
puts("Good Bulk Transfer!");
i = Bulk_Transfer_In(64,GetDataBuffer,1);
if( i == 0xFF ) return 0x11;
printf("Get data num is %x\n",i);
Printf_buffer();
return GetDataBuffer[12]; //Return 0 if success, 0x01 = fail, 0x02 = segment error
}
else
{
puts("Bad Bulk Transfer!");
return 0xFF;
}
}
uint8 UFI_Diagnostics(void) //Bad
{
CBW MassStorageCBW;
uint8 i;
puts("UFI_Diagnostics process!");
MassStorageCBW.dCBWSignature = 0x43425355;
MassStorageCBW.dCBWTag = 0x12345678;
MassStorageCBW.dCBWDataTransferLength = 0; //Modify
MassStorageCBW.bmCBWFlags = 0x80; //Modify
MassStorageCBW.bCBWLUN = 0;
MassStorageCBW.bCBWCBLength = 0x0c;
MassStorageCBW.CBWCB[0] = 0x1D;
MassStorageCBW.CBWCB[1] = 0x04;
if(Bulk_Transfer_Out(31,(uint8*)&MassStorageCBW,0) == 0)
{
puts("Good Bulk Transfer!");
i = Bulk_Transfer_In(64,GetDataBuffer,1);
if( i == 0xFF ) return 0x11;
printf("Get data num is %x\n",i);
Printf_buffer();
return GetDataBuffer[12]; //Return 0 if success, 0x01 = fail, 0x02 = segment error
}
else
{
puts("Bad Bulk Transfer!");
return 0xFF;
}
}
uint8 Write2Inport()
{
uint8 i;
SL811_ADDR = SL811_USBA_BaseAddress;
SL811_COMM = USBA_BASEADDRESS;
SL811_COMM = 0;
SL811_COMM = OUT_PID | BulkOut_PortNum;
SL811_COMM = UDisk_Address;
SL811_ADDR = SL811_Interrupt_Status;
SL811_COMM = 0xFF; // clear the DONE bit
SL811_ADDR = SL811_USBA_Control;
if(Bulk_Data_Toggle++) SL811_COMM = 0x47;
else SL811_COMM = 0x07;
delayms(1);
if((USBA_Status & 0x01) == 0x01)
{
puts("Good Bulk Transfer!");
i = Bulk_Transfer_In(64,GetDataBuffer,0);
if( i == 0xFF ) return 0x11;
printf("Get data num is %x\n",i);
Printf_buffer();
return GetDataBuffer[12]; //Return 0 if success, 0x01 = fail, 0x02 = segment error
}
else
{
puts("Bad Bulk Transfer!");
return 0xFF;
}
}
uint8 UFI_Read12(uint32 LogiclBlockAddress)
{
CBW MassStorageCBW;
uint8 i;
puts("Write 12 process!");
MassStorageCBW.dCBWSignature = 0x43425355;
MassStorageCBW.dCBWTag = 0xFF31E828;
MassStorageCBW.dCBWDataTransferLength = 0x0200;
MassStorageCBW.bmCBWFlags = 0x80;
MassStorageCBW.bCBWLUN = 0;
MassStorageCBW.bCBWCBLength = 0x0a;
MassStorageCBW.CBWCB[0] = 0x28;
MassStorageCBW.CBWCB[1] = 0;
MassStorageCBW.CBWCB[2] = *((uint8*)&LogiclBlockAddress+3);
MassStorageCBW.CBWCB[3] = *((uint8*)&LogiclBlockAddress+2);
MassStorageCBW.CBWCB[4] = *((uint8*)&LogiclBlockAddress+1);
MassStorageCBW.CBWCB[5] = *((uint8*)&LogiclBlockAddress+0);
MassStorageCBW.CBWCB[6] = 0;
MassStorageCBW.CBWCB[7] = 0; //Transfer data len MSB
MassStorageCBW.CBWCB[8] = 1; //Transfer data len LSB
MassStorageCBW.CBWCB[9] = 0;
MassStorageCBW.CBWCB[10] = 0;
MassStorageCBW.CBWCB[11] = 0;
Bulk_Transfer_Out(0x0d,(uint8*)&MassStorageCBW,0);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -