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

📄 scsi2.h

📁 DSP+MP3+USB+FAT12的所有源程序(C语言编写)
💻 H
字号:

/*******************************************************************/

//scsi data format and construct 

extern UWord16 SCSI_INQUIRY[36];
extern UWord16 SCSIDATA_ReadFormatCapacities[];
extern UWord16 SCSIDATA_ReadCapacities[];
extern UWord16 SCSIDATA_Sense[];

UWord32 SCSI_Read10logicalBlockAddress;
UWord32 SCSI_Write10logicalBlockAddress;
UWord16 SCSI_DataLength;

UWord16 SCSI_BulkIn_Data_BufLen;
UWord32 SCSI_WriteAddress;

/*******************************************************************/
//Command Block Wrapper (CBW)
#define K_USBMSDC_CBW_SIZE              0x1f
typedef struct _USBMSDC_CBW
{
        UWord16   dCBWSignature[4];
        UWord16   dCBWTag[4];
        UWord16   dCBWDataTransferLength[4];
        UWord16   bmCBWFlags;
        UWord16   bCBWLUN;
        UWord16   bCBWCBLength;
        UWord16   CBWCB[16];
} USBMSDC_CBW,*PUSBMSDC_CBW;



//Command Status Wrapper (CSW)
#define K_USBMSDC_CSW_SIZE              0x0d
typedef struct _USBMSDC_CSW
{
        UWord16   dCSWSignature[4];
        UWord16   dCSWTag[4];
        UWord16   dCSWDataResidue[4];
        UWord16   bCSWStatus;
} USBMSDC_CSW;



/*******************************************************************/
//  tansfer for main endpoint 2 flag
extern UWord16    G_ucBulkPhase=0 ;
UWord16    G_ucBulkStausPhase;

/*******************************************************************/


extern void USBMSDC_BoCommand(void) ;
extern void USBMSDC_BoBulkInData(void);


extern void SCSICMD_TestUnitReady(void);
extern void SCSICMD_RequestSense(void);
extern void SCSICMD_Inquiry(void);
extern void SCSICMD_PreventAllowMediumRemoval(void);
extern void SCSICMD_ReadCapacity(void);
extern void SCSICMD_Read10(void);
extern void SCSICMD_Write10(void);
extern void SCSICMD_Verify10(void);
extern void SCSICMD_ModeSense10(void);
extern void SCSICMD_ReadFormatCapacities(void);
extern void USBMSDC_pCSW(void);
extern void SCSICMD_ModeSense06(void);                

/*******************************************************************/
#define K_SCSICMD_TEST_UNIT_READY                 0x00
#define K_SCSICMD_REZERO_UNIT                     0x01
#define K_SCSICMD_REQUEST_SENSE                   0x03
#define K_SCSICMD_FORMAT_UNIT                     0x04
#define K_SCSICMD_INQUIRY                         0x12
#define K_SCSICMD_MODE_SENSE_06                   0x1a
#define K_SCSICMD_START_STOP_UNIT                 0x1b
#define K_SCSICMD_SEND_DIAGNOSTIC                 0x1d
#define K_SCSICMD_PREVENT_ALLOW_MEDIUM_REMOVAL    0x1e
#define K_SCSICMD_READ_FORMAT_CAPACITIES          0x23
#define K_SCSICMD_READ_CAPACITY                   0x25
#define K_SCSICMD_READ_10                         0x28
#define K_SCSICMD_WRITE_10                        0x2a
#define K_SCSICMD_SEEK_10                         0x2b
#define K_SCSICMD_WRITE_AND_VERIFY_10             0x2e
#define K_SCSICMD_VERIFY_10                       0x2f
#define K_SCSICMD_MODE_SELECT_10                  0x55                
#define K_SCSICMD_MODE_SENSE_10                   0x5a               
#define K_SCSICMD_READ_12                         0xa8
#define K_SCSICMD_WRITE_12                        0xaa

/*******************************************************************/
//Phase of Transfer
#define K_CommandPhase                  0x00
#define K_OutDataPhase                  0x01
#define K_OutDataPhaseWrite             0x02
#define K_OutResponsePhase              0x03
#define K_InDataPhase                   0x81
#define K_InDataPhaseRead               0x82
#define K_InResponsePhase               0x83
#define K_InCompletionPhase             0x84
#define K_XferDirMask                   0x80
#define K_InCSWPhase                    0x08
/*******************************************************************/


/*******************************************************************/

⌨️ 快捷键说明

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