📄 bulkcmd.h
字号:
/*
**********************************************************************************************
* File: BulkCmd.h
* Contents:
*
*
* $Date: 08/23/06 Derek V1.0
*
* Copyright (c) 2006 Fameg, Inc. All rights reserved
***********************************************************************************************
*/
#ifndef _BulkCmd_H_
#define _BulkCmd_H_
#define CBW_SIGNATURE 0x55534243L // 0x43425355L
#define CSW_SIGNATURE 0x55534253L // 0x53425355L
#define CBWCB_OFFSET 0xf
#define CBW_LENGTH 31
#define CBW_LENGTH_98 32
#define CSW_LENGTH 13
#define CBWCB_ADDR (DMA_FIFOA0 + CBWCB_OFFSET)
// Bulk Completed State definitions
#define CBW_GET_COMPLETED 0x00
#define BULK_DMA_IN_COMPLETED 0x01
#define BULK_DMA_OUT_COMPLETED 0x02
#define SHORT_PACKET_STALL_COMPLETED 0x03
#define STALL_IN_COMPLETED 0x04
#define CSW_REPLY_COMPLETED 0x05
// Command Block Status Values
#define COMMAND_PASSED 0x00
#define COMMAND_FAILED 0x01
#define PHASE_ERROR 0x02 // Internal Device Error, Bit direction error, 13 cases
#define BulkSetDmaOut() (EP1CS=EP1CS|bmEP_RXTXEN) //使能Out端点接收数据 //Derek 06.09.01
#define BulkOutTogErr() (EP1CS&bmEP_TOGERR)
#define BulkInStall() (EP2CS=EP2CS|bmEP_SESTALL) //置位IN EP的stall位。modified by Derek-06.08.31
//----------------------------------------------------------------------------
// Command Block Wrapper Structure
//----------------------------------------------------------------------------
typedef struct
{
UINT32 Sign;
UINT32 Tag;
UINT32 DataXsferLen;
BYTE Flags;
BYTE CbwcbLun;
BYTE CbwcbLen;
}CMD_BLOCK_WRAPPER, *PCMD_BLOCK_WRAPPER;
//----------------------------------------------------------------------------
// Command Status Wrapper Structure
//----------------------------------------------------------------------------
typedef struct
{
UINT32 Sign;
UINT32 Tag;
UINT32 DataResidueLen;
BYTE Status;
}CMD_STATUS_WRAPPER, *PCMD_STATUS_WRAPPER;
//----------------------------------------------------------------------------
// Mode Page Table Structure
//----------------------------------------------------------------------------
typedef struct
{
PBYTE PagePtr;
BYTE Size;
}MODE_PAGE_TABLE;
void BulkSetDmaIn(UINT16 DmaLen);
void BulkPrepareCSW(BYTE Status);
void BulkWaitOutDataReady();
void BulkFreeBuffer();
void InitBulkPipe();
void SetBulkInFull(void);
void SelectInFifo(void);//2007.01.22
void SelectOutFifo(void);
void BusResetDeal(void);//2007.01.22
void SetBulkInFullForReadSector(void);//2007.01.22
extern bool ScsiCmdSTALLed;
extern volatile BYTE SW_IN_FIFO_Toggle;
extern volatile INT16U FIFO_ADDRESS_IN;
extern volatile BYTE SW_OUT_FIFO_Toggle;
extern volatile INT16U FIFO_ADDRESS_OUT;
extern BOOLEAN HighSpeed;
#define WR_CONTINOUS //
#define RD_CONTINOUS //
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -