⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bulk_only.lst

📁 用89C51SND1C实现的USB存储器的代码,包括USB通信和FLASH的读写操作.
💻 LST
📖 第 1 页 / 共 2 页
字号:
 148                  long unsigned int dCBWDataTransferLength;//dCBWDataTransferLength of CBW
 149                  unsigned char bmCBWFlags;
 150                  unsigned char bCBWLUN;
 151                  unsigned char bCBWCBLength;
 152                  unsigned char CBWCB[12];//for UFI Command all have 12bit
 153          } struct_CBW;
 154          
 155          struct_CBW bulk_CBW;
 156          
 157          void InterpretCBW()
 158          {
 159   1              int i;
 160   1              printu("InterpretCBW\n");
 161   1              
 162   1              bulk_CSW[4]                             =       Bulk_Out_Buf[4];
 163   1              bulk_CSW[5]                             =       Bulk_Out_Buf[5];
 164   1              bulk_CSW[6]                             =       Bulk_Out_Buf[6];
 165   1              bulk_CSW[7]                             =       Bulk_Out_Buf[7];
 166   1              
 167   1      //      for(i=0;i<4;i++) bulk_CBW.dCBWDataTransferLength = (bulk_CBW.dCBWDataTransferLength<<8) +*(EpBuf+11-i);
 168   1      //      bulk_CBW.bmCBWFlags                     =       *(EpBuf+12);
 169   1      //      bulk_CBW.bCBWLUN                                =       *(EpBuf+13)&0x0f;
 170   1      //      bulk_CBW.bCBWCBLength                   =       *(EpBuf+14)&0x1f;
 171   1      
 172   1              for(i=0;i<12;i++)
 173   1              bulk_CBW.CBWCB  [i]                             =       Bulk_Out_Buf[i+15];
 174   1      //      printu("\n\nSCSI:");
 175   1      //      for(j=0;j<12;j++) {printuf("%x ",bulk_CBW.CBWCB[j]);}
 176   1      
 177   1              switch(bulk_CBW.CBWCB[0]){
 178   2      //              case 0x04                                               :SCSI_Reserved();break;
 179   2                      case Inquiry                                    :SCSI_Inquiry();break;
C51 COMPILER V6.23a  BULK_ONLY                                                             11/21/2003 09:01:32 PAGE 4   

 180   2      //              case 0x55                                               :SCSI_Reserved();break;
 181   2                      case Mode_Sense                                 :SCSI_Mode_Sense();break;
 182   2                      case Read10                                             :SCSI_Read10();break;
 183   2      //              case 0xA8                                               :SCSI_Reserved();break;
 184   2                      case Read_Capacity                              :SCSI_Read_Capacity();break;
 185   2                      case Read_Format_Capacities             :SCSI_Read_Format_Capacities();break;
 186   2      //              case 0x03                                               :SCSI_Reserved();break;
 187   2      //              case 0x01                                               :SCSI_Reserved();break;
 188   2      //              case 0x2B                                               :SCSI_Reserved();break;
 189   2      //              case 0x1D                                               :SCSI_Reserved();break;
 190   2      //              case 0x1B                                               :SCSI_Reserved();break;
 191   2                      case Test_Unit_Ready                    :SCSI_Test_Unit_Ready();break;
 192   2                      case Verify                                             :SCSI_Verify();break;
 193   2                      case Write10                                    :SCSI_Write10();break;
 194   2      //              case 0xAA                                               :SCSI_Reserved();break;
 195   2      //              case 0x2E                                               :SCSI_Reserved();break;
 196   2                      case Medium_Removal                             :SCSI_Medium_Removal();break;
 197   2                      default                                                 :SCSI_Reserved();break;
 198   2              }
 199   1                      
 200   1      }
 201          
 202          void SCSI_Inquiry()
 203          {
 204   1              printu("SCSI_Inquiry\n");
 205   1              bulk_state = BULK_DATA_END;
 206   1              WriteEpBulk(1, sizeof(B_InquiryData), B_InquiryData);
 207   1      }
 208          
 209          
 210          void SCSI_Read_Format_Capacities()
 211          {
 212   1              printu("SCSI_Read_Format_Capacities\n");
 213   1      }
 214          
 215          
 216          void SCSI_Read_Capacity()
 217          {
 218   1              printu("SCSI_Read_Format_Capacities\n");
 219   1      
 220   1      }
 221          
 222          void SCSI_Read10()
 223          {
 224   1              printu("SCSI_Read10\n");
 225   1      
 226   1      }
 227          
 228          void TransDataGoOn()
 229          {
 230   1              printu("TransDataGoOn\n");
 231   1      
 232   1      }
 233          
 234          void SCSI_Write10()
 235          {
 236   1              printu("SCSI_Write10\n");
 237   1      }
 238          
 239                  
 240          void RecieveData()
 241          {
C51 COMPILER V6.23a  BULK_ONLY                                                             11/21/2003 09:01:32 PAGE 5   

 242   1              printu("RecieveData\n");
 243   1      
 244   1      }
 245          
 246          void SCSI_Mode_Sense()
 247          {
 248   1              printu("SCSI_Mode_Sense\n");
 249   1      
 250   1      }
 251          
 252          void SCSI_Medium_Removal()
 253          {
 254   1              printu("SCSI_Medium_Removal\n");
 255   1      }
 256          
 257          void SCSI_Test_Unit_Ready()
 258          {
 259   1              printu("SCSI_Test_Unit_Ready\n");
 260   1      }
 261          
 262          
 263          void TransmitCSW()
 264          {
 265   1              printu("TransmitCSW\n");
 266   1      
 267   1      }
 268          
 269          
 270          
 271          void TransRequestGoOn()
 272          {
 273   1              printu("TransRequestGoOn\n");
 274   1      
 275   1      }
 276          
 277          
 278          
 279          
 280          
 281          
 282          void SCSI_Reserved()
 283          {
 284   1              printuf("\nUFI Function 0x%x doesn't Defined!",bulk_CBW.CBWCB[0]);
 285   1              
 286   1      }
 287          
 288          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    288    ----
   CONSTANT SIZE    =    352    ----
   XDATA SIZE       =    654    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -