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

📄 tpbulk.h

📁 该软件为在sunplus的61单片机上实现的mp3播放器.里面有完整的源代码.
💻 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 + -