📄 tpbulk.h
字号:
#ifndef __TPBULK_h__
#define __TPBULK_h__
/*H**************************************************************************
* 文件名: filename.h
*----------------------------------------------------------------------------
* 版权 (c) 2004 TGE.
*----------------------------------------------------------------------------
* 释放: Spce061A
* 版本: 1.13
*----------------------------------------------------------------------------
* 目的:
*
*****************************************************************************/
/*_____ 包括 ________________________________________________________*/
#include "Rbccmd.h"
/*_____ 宏 ________________________________________________________*/
#define CSW_GOOD 0x00
#define CSW_FAIL 0x01
#define CSW_PHASE_ERROR 0x02
#define CBW_FLAG_IN 0x80
#define MAX_CDBLEN 0x10
#define TRUE 1
#define FALSE 0
/*_____ 定义 ________________________________________________________*/
typedef struct _COMMAND_BLOCK_WRAPPER{
unsigned char dCBW_Signature[4];
unsigned char dCBW_Tag[4];
unsigned char dCBW_DataXferLen[4];
unsigned char bCBW_Flag;
unsigned char bCBW_LUN;
unsigned char bCBW_CDBLen;
CDB_RBC cdbRBC;
} CBW, *PCBW;
typedef struct _COMMAND_STATUS_WRAPPER{
unsigned char dCSW_Signature[4];
unsigned char dCSW_Tag[4];
unsigned char dCSW_DataResidue[4];
unsigned char bCSW_Status;
} CSW, *PCSW;
typedef union _TPBULK_STRUC {
CBW TPBulk_CommandBlock;
CSW TPBulk_CommandStatus;
} TPBLK_STRUC, * PTPBLK_STRUC;
typedef struct _BIT_STATUS
{
unsigned int ABORT : 1;
unsigned int STALLATBULKOUT : 1;
unsigned int STALLATBULKIN : 1;
unsigned int ATROMORRAM : 1;
unsigned int ATNF : 1;
} BIT_STATUS;
//BIT_STATUS bFlags; Define at Tpbulk.c
#define Abort bFlags.ABORT
#define StallAtBulkOut bFlags.STALLATBULKOUT
#define StallAtBulkIn bFlags.STALLATBULKIN
#define BOTXfer_atROMorRAM bFlags.ATROMORRAM
#define BOTXfer_atNF bFlags.ATNF
//unsigned int BOTFSMstate; At TPBulk.c define
#define BOTFSM_IDLE BOTFSMstate & 0x01
#define BOTFSM_CBWProc BOTFSMstate & 0x02
#define BOTFSM_DataIn BOTFSMstate & 0x04
#define BOTFSM_DataOut BOTFSMstate & 0x08
#define BOTFSM_CSWProc BOTFSMstate & 0x10
#define BOTFSM_CSW BOTFSMstate & 0x20
#define BOTFSM_Stall BOTFSMstate & 0x80
// FSM for Bulk-Only Transfer
// One-Hot dinfition4BOTFSM
#define USBFSM4BOT_IDLE 0x01
#define USBFSM4BOT_CBWPROC 0x02
#define USBFSM4BOT_DATAIN 0x04
#define USBFSM4BOT_DATAOUT 0x08
#define USBFSM4BOT_CSWPROC 0x10
#define USBFSM4BOT_CSW 0x20
#define USBFSM4BOT_STALL 0x80
/*
typedef struct _BIT_STATUS
{
unsigned int Abort : 1;
unsigned int StallAtBulkOut : 1;
unsigned int StallAtBulkIn : 1;
unsigned int atROMorRAM : 1;
unsigned int atNF : 1;
} BIT_STATUS;
#define BOTFSM_CBWProc Mstate.bits.CBWProc
#define BOTFSM_DataIn Mstate.bits.DataIn
#define BOTFSM_DataOut Mstate.bits.DataOut
#define BOTFSM_CSWProc Mstate.bits.CSWProc
#define BOTFSM_CSW Mstate.bits.CSW
#define BOTFSM_IDLE Mstate.bits.IDLE
#define BOTFSM_Stall Mstate.bits.Stall
#define BOTBF_StallAtBulkOut Mstate.bits.StallAtBulkOut
#define BOTBF_StallAtBulkIn Mstate.bits.StallAtBulkIn
#define BOTXfer_atROMorRAM Mstate.bits.atROMorRAM
#define BOTXfer_atNF Mstate.bits.atNF
*/
/*
//*************************************************************************
// USB Class Request Functions
// and
// Public Functions
//*************************************************************************
*/
/*
// Host Device Disagreement Matrix
*/
enum _HOST_DEV_DISAGREE {
CASEOK = 0,
CASE1,
CASE2,
CASE3,
CASE4,
CASE5,
CASE6,
CASE7,
CASE8,
CASE9,
CASE10,
CASE11,
CASE12,
CASE13,
CASECBW,
CASECMDFAIL
};
/*_____ 声明 ________________________________________________________*/
/*
//*************************************************************************
// C[ommand]D[ata]S[tatus] architecture for mass storage device over Bulk
// only Transport
//*************************************************************************
*/
void TPBulk_CBWHandler( void );
void TPBulk_CSWHandler( void );
/*
//*************************************************************************
// Bulk Only Transport support functions
//*************************************************************************
*/
unsigned int TPBulksup_IsCBWValid(void);
void TPBulksup_ErrorHandler(unsigned int HostDevCase,unsigned int wByteCounterDevWillXfer);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -