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

📄 scsi.lst

📁 D12和89s52+K9F5608组成的系统
💻 LST
📖 第 1 页 / 共 2 页
字号:
 281   2                      case 0x23:
 282   2                              SCSICMD_ReadFormatCapacities();
 283   2                                              BulkStausPhase = InCSWPhase;
 284   2                                              break;
 285   2                      case 0x25:
 286   2                              SCSICMD_ReadCapacity();
 287   2                              BulkStausPhase=InCSWPhase;
 288   2                              break;
 289   2                      case 0x28:
 290   2                              SCSICMD_Read10();
 291   2                              BulkStausPhase=InCSWPhase;
 292   2                              break;
 293   2                      case 0x2a:
 294   2                              SCSICMD_Write10();
 295   2                              BulkPhase =OutDataPhase;
 296   2                              break;
 297   2                      case 0x2f:
 298   2                              SCSICMD_Verify10();
 299   2                              BulkStausPhase=InCSWPhase;
 300   2                              break;
 301   2                      case 0x5a:
 302   2                              SCSICMD_ModeSense10();
 303   2                              BulkStausPhase=InCSWPhase;
C51 COMPILER V7.50   SCSI                                                                  12/29/2005 19:53:02 PAGE 6   

 304   2                              break;
 305   2                      default:
 306   2                              BulkStausPhase=InCSWPhase;
 307   2                              break;
 308   2                      }
 309   1              }
 310          
 311          
 312          
 313          
 314          /************************************************************
 315          **函数功能:PC输入数据处理
 316          **函数输入参数及说明:无
 317          
 318          **函数返回值:无
 319          **在本函数以外定义的变量:
 320          **调用的函数说明:无
 321          
 322          **修改人:胡琦宗
 323          **修改日期:2005.11.22
 324          **修改说明:创建
 325          *************************************************************/
 326          
 327          void Usb_BoBulkInData(void)
 328          {
 329   1         flashWrite();
 330   1              if(WriteResidueVal == 0)
 331   1              {
 332   2                      BulkPhase = CommandPhase;
 333   2              }
 334   1      }
 335                          
 336          
 337          /************************************************************
 338          **函数功能:回应批量传输包
 339          **函数输入参数及说明:无
 340          
 341          
 342          **函数返回值:无
 343          **在本函数以外定义的变量:
 344          **调用的函数说明:无
 345          
 346          **修改人:胡琦宗
 347          **修改日期:2005.11.22
 348          **修改说明:创建
 349          *************************************************************/
 350          
 351          void Bulk_In_Packet(void)
 352          {
 353   1              if(BULKLength != 0)
 354   1                      BULK_submit(BULKLength);
 355   1              else if(ReadResidueVal != 0)
 356   1                      flashRead();
 357   1              else if(BulkStausPhase == InCSWPhase){
 358   2                      ControlData.pData = setcsw;
 359   2                      BULKLength = 13;
 360   2                      BULK_submit(BULKLength);
 361   2              }
 362   1      }
 363          
 364          
 365          /************************************************************
C51 COMPILER V7.50   SCSI                                                                  12/29/2005 19:53:02 PAGE 7   

 366          **函数功能:设置CSW包
 367          **函数输入参数及说明:无
 368          
 369          
 370          **函数返回值:无
 371          **在本函数以外定义的变量:
 372          **调用的函数说明:无
 373          
 374          **修改人:胡琦宗
 375          **修改日期:2005.11.22
 376          **修改说明:创建
 377          *************************************************************/
 378          /*
 379          void Usb_Set_Csw(void){
 380                  Usb_Csw.dCSWSignature[0] = 0x55;
 381                  Usb_Csw.dCSWSignature[1] = 0x53;
 382                  Usb_Csw.dCSWSignature[2] = 0x42;
 383                  Usb_Csw.dCSWSignature[3] = 0x53;
 384                  Usb_Csw.dCSWTag[0] = ControlData.dataBuffer[4];
 385                  Usb_Csw.dCSWTag[1] = ControlData.dataBuffer[5];
 386                  Usb_Csw.dCSWTag[2] = ControlData.dataBuffer[6];
 387                  Usb_Csw.dCSWTag[3] = ControlData.dataBuffer[7];
 388                  Usb_Csw.bCSWStatus = 0;
 389          }
 390          
 391          */
 392          /*
 393          void Usb_Set_Csw(void){
 394                  ControlData.dataBuffer[0] = 0x55;
 395                  ControlData.dataBuffer[1] = 0x53;
 396                  ControlData.dataBuffer[2] = 0x42;
 397                  ControlData.dataBuffer[3] = 0x53;
 398                  ControlData.dataBuffer[8] = 0;
 399                  ControlData.dataBuffer[9] = 0;
 400                  ControlData.dataBuffer[10] = 0;
 401                  ControlData.dataBuffer[11] = 0;
 402                  
 403                  ControlData.dataBuffer[12] = 0;
 404          }
 405          
 406          */
 407          void Usb_Set_Csw(void){
 408   1              setcsw[0] = 0x55;
 409   1              setcsw[1] = 0x53;
 410   1              setcsw[2] = 0x42;
 411   1              setcsw[3] = 0x53;
 412   1      
 413   1              setcsw[4] = ControlData.dataBuffer[4];
 414   1              setcsw[5] = ControlData.dataBuffer[5];
 415   1              setcsw[6] = ControlData.dataBuffer[6];
 416   1              setcsw[7] = ControlData.dataBuffer[7];
 417   1      
 418   1              setcsw[8] = 0;
 419   1              setcsw[9] = 0;
 420   1              setcsw[10] = 0;
 421   1              setcsw[11] = 0;
 422   1              
 423   1              setcsw[12] = 0;
 424   1      }
 425          /************************************************************
 426          **函数功能:SCSI命令
 427          **函数输入参数及说明:无
C51 COMPILER V7.50   SCSI                                                                  12/29/2005 19:53:02 PAGE 8   

 428          
 429          
 430          **函数返回值:无
 431          **在本函数以外定义的变量:
 432          **调用的函数说明:无
 433          
 434          **修改人:胡琦宗
 435          **修改日期:2005.11.22
 436          **修改说明:创建
 437          *************************************************************/
 438          
 439          
 440          
 441          
 442          void SCSICMD_Inquiry(void)
 443          {       
 444   1              Usb_Set_Csw();
 445   1      
 446   1              ControlData.pData = SCSI_INQUIRY;
 447   1              BULKLength = 36;
 448   1              BULK_submit(BULKLength);
 449   1      
 450   1      }
 451          
 452          
 453          void SCSICMD_ReadFormatCapacities(void)
 454          {
 455   1              
 456   1              ControlData.dataBuffer[8] = (unsigned char)(dCBWDaTrLen-0x0c);
 457   1              Usb_Set_Csw();
 458   1              ControlData.pData = SCSIDATA_ReadFormatCapacities;
 459   1              BULKLength = 12;
 460   1              BULK_submit(BULKLength);
 461   1      }
 462          
 463          void SCSICMD_ReadCapacity(void)
 464          {
 465   1              Usb_Set_Csw();  
 466   1       
 467   1              ControlData.pData = SCSIDATA_ReadCapacity;
 468   1              BULKLength = 8; 
 469   1              BULK_submit(BULKLength);
 470   1      }
 471          
 472          void SCSICMD_Read10(void)
 473          {       
 474   1              Usb_Set_Csw(); 
 475   1              ControlData.pData = setcsw;
 476   1              flashReadcmd();
 477   1              flashRead();
 478   1      }
 479          
 480          void SCSICMD_TestUnitReady(void)
 481          {
 482   1      
 483   1              Usb_Set_Csw();  
 484   1      
 485   1              ControlData.pData = setcsw;
 486   1              BULKLength = 13;
 487   1              BULK_submit(BULKLength);
 488   1      }
 489          
C51 COMPILER V7.50   SCSI                                                                  12/29/2005 19:53:02 PAGE 9   

 490          void SCSICMD_RequestSense(void)
 491          {
 492   1              Usb_Set_Csw();  
 493   1      
 494   1              ControlData.pData = SCSIDATA_RequestSense;
 495   1              BULKLength = 18;
 496   1              BULK_submit(BULKLength);
 497   1      }
 498          
 499          void SCSICMD_ModeSense06(void)
 500          {
 501   1              
 502   1          ControlData.dataBuffer[8]=(unsigned char)(dCBWDaTrLen-0x04);    
 503   1              Usb_Set_Csw();
 504   1              ControlData.pData = SCSIDATA_Sense;
 505   1              BULKLength = 4;
 506   1              BULK_submit(BULKLength);
 507   1      }
 508          
 509          void SCSICMD_PreventAllowMediumRemoval(void)
 510          {
 511   1              
 512   1              Usb_Set_Csw();  
 513   1      
 514   1              ControlData.pData = setcsw;
 515   1              BULKLength = 13;
 516   1              BULK_submit(BULKLength);
 517   1      }
 518          
 519          void SCSICMD_Write10(void)
 520          {
 521   1      
 522   1              Usb_Set_Csw();
 523   1      
 524   1              flashWritecmd();
 525   1              ControlData.pData = setcsw;
 526   1              BULKLength = 13;
 527   1              BULK_submit(BULKLength);
 528   1      }
 529          
 530          void SCSICMD_Verify10(void)
 531          {
 532   1      
 533   1              Usb_Set_Csw();
 534   1      
 535   1              ControlData.pData = setcsw;
 536   1              BULKLength = 13;
 537   1              BULK_submit(BULKLength);
 538   1      }
 539          
 540          void SCSICMD_ModeSense10(void)
 541          {
 542   1      
 543   1              Usb_Set_Csw();
 544   1      
 545   1              ControlData.pData = setcsw;
 546   1              BULKLength = 13;
 547   1              BULK_submit(BULKLength);
 548   1      }
 549          
 550          
 551          
C51 COMPILER V7.50   SCSI                                                                  12/29/2005 19:53:02 PAGE 10  



MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    537    ----
   CONSTANT SIZE    =    122    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      7       1
   IDATA SIZE       =     13    ----
   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 + -