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

📄 bulkcmd.h

📁 SdCard_V2.1TinyFatFs.rar是单片机实现SD卡功能的FAT文件系统
💻 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 + -