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

📄 u_ram_data.h

📁 EPSON USB DEVICE MASS-STORAGE CLASS driver, BULK ONLY on Ram disk
💻 H
字号:
/******************************************************************************
 * File name   : rom_data.h
 * Module name : A definition of a RAM variable
 * Author	   : Hiromichi.Kondo
 *-----------------------------------------------------------------------------
 * $Id: ram_data.h,v 1.1 2003/04/16 06:56:40 9551619 Exp $
 *****************************************************************************/
#ifndef _RAM_DATA_H_
#define _RAM_DATA_H_

#include "u_macro.h"
#include "u_value.h"
#include "u_regNikka.h"
/***************************************
 
 ***************************************/

GLOBAL S_rMainIntStat	main_int_stat;	/* Main */
GLOBAL S_rSIE_IntStat	sie_int_stat;	/* SIE */
GLOBAL S_rEPrIntStat	epr_int_stat;	/* EPr */
GLOBAL S_rDMA_IntStat	dma_int_stat;	/* DMA */
GLOBAL S_rFIFO_IntStat	fifo_int_stat;	/* FIFO */
GLOBAL S_rEP0IntStat	ep0_int_stat;	/* EP0 */
GLOBAL S_rEPaIntStat	epa_int_stat;	/* EPa */
GLOBAL S_rEPbIntStat	epb_int_stat;	/* EPb */
GLOBAL S_rEPcIntStat	epc_int_stat;	/* EPc */

GLOBAL BYTE control_state;				/* Control 
										   00h 
										   01h 
										   02h 
										   03h 
										   04h 
										   05h 
										   06h 
										   07h 
										   08h IDLE
										 */

GLOBAL BYTE bulk_in_state;				/* Bulk IN 
										   00h Bulk IN
										   01h Bulk IN
										   02h IDLE
										   03h STALL
										*/

GLOBAL BYTE bulk_out_state;				/* Bulk OUT 
										   00h Bulk OUT
										   01h Bulk OUT
										   02h IDLE
										   03h STALL
										*/

GLOBAL BYTE int_in_state;				/* Interrupt IN
										   00h Interrupt IN
										   01h Interrupt IN
										   02h IDLE
										   03h STALL
										*/

GLOBAL BYTE device_state;				/* Device
										   00h 
										   01h 
										   02h 
										   03h CSW
										*/

GLOBAL BYTE protocol_phase;				/* 
										   00h 
										   01h 
										   02h 
										   03h 
										*/

typedef struct {
	BYTE	RcvCommand:1;				/*  		*/
	BYTE	WaitCBW:1;					/* CBW	 					*/
	BYTE	Reserved5:1;				/* Reserved */
	BYTE	Reserved4:1;				/* Reserved */
	BYTE	Reserved3:1;				/* Reserved */
	BYTE	Reserved2:1;				/* Reserved */
	BYTE	Reserved1:1;				/* Reserved */
	BYTE	Reserved0:1;				/* Reserved */
} DeviceFlag;
GLOBAL DeviceFlag device_flag;			/* Device */

typedef struct {
	BYTE	Attach:1;					/* Attach */
	BYTE	Detach:1;					/* Detach */
	BYTE	Reset:1;					/* USB Reset */
	BYTE	Suspend:1;					/* Suspend */
	BYTE	Reserved3:1;				/* Reserved */
	BYTE	Reserved2:1;				/* Reserved */
	BYTE	Reserved1:1;				/* Reserved */
	BYTE	Reserved0:1;				/* Reserved */
} SpecialFlag;
GLOBAL SpecialFlag special_flag;		/*  */

GLOBAL BYTE timer0_cnt;					/* Timer0 */
GLOBAL BYTE timer1_cnt;					/* Timer1 */

GLOBAL DWORD wk_lba;
GLOBAL DWORD wk_cnt;					/*  */
GLOBAL BYTE  *wk_ptr;					/*  */

GLOBAL BYTE cmd_status;					/*  */

/***************************************
 USB
 **************************************/
GLOBAL int vbus_on_1st;			// VBUS

 
GLOBAL BYTE usb_state;					/* USB
										   00h Default State
										   01h Address State
										   02h Configured State
										*/

GLOBAL WORD desc_addr_fs_device;			/* FSDevice Descriptor	*/
GLOBAL WORD desc_addr_fs_config;			/* FSConfiguration Descriptor  */
GLOBAL WORD desc_addr_string[NUM_STRING];	/* String Descriptor	*/

GLOBAL BYTE ep_number[NUM_ENDPOINT];		/* Endpoint Number */


typedef struct {
	BYTE	USBReqRcvd:1;				/* USB	*/
	BYTE	Init:1;						/* 				*/
	BYTE	Address:1;					/* Address			*/
	BYTE	TestMode:1;					/* TestMode			*/
	BYTE	ReplyDescriptor:1;			/* Descriptor	*/
	BYTE	Reserved2:1;				/* 	*/
	BYTE	RemoteWakeup:1;				/* Remote Wakeup		*/
	BYTE	EnbRemoteWakeup:1;			/* Remote Wakeup/(1:,0:) */
} USBFlag;
GLOBAL USBFlag usb_flag;				/* USB */

GLOBAL BYTE tran_protocol;				/* 
										   00h BulkOnly
										   01h CBI
										*/

GLOBAL BYTE *tran_start_addr;			/*  */

GLOBAL WORD req_tran_cnt;				/*  */

GLOBAL WORD total_tran_cnt;				/*  */

GLOBAL WORD actual_tran_cnt;			/*  */

GLOBAL BYTE retry_cnt_0;				/* EP0 */
GLOBAL BYTE retry_cnt_a;				/* EPa */
GLOBAL BYTE retry_cnt_b;				/* EPb */
GLOBAL BYTE retry_cnt_c;				/* EPc */

GLOBAL BYTE usb_wk_data[256];			/* USB */

GLOBAL BYTE control_result;				/* Control
										   00h No Result
										   01h EP0OutACK
										   02h EP0OutNAK
										   03h EP0OutERR
										   04h EP0InACK
										   05h EP0InNAK
										   06h EP0InERR
										*/

GLOBAL BYTE bulk_in_result;				/* Bulk IN */
GLOBAL BYTE bulk_out_result;			/* Bulk OUT */
GLOBAL BYTE int_in_result;				/* Interrupt IN
										   00h No Result
										   01h EPxOutACK
										   02h EPxOutNAK
										   03h EPxOutERR
										   04h EPxInACK
										   05h EPxInNAK
										   06h EPxInERR
										   07h FIFO_IN_CMP
										   08h FIFO_OUT_CMP
										*/
GLOBAL BYTE assigned_addr;				/*  */

GLOBAL BYTE max_pkt_size_0;				/* EP0MaxPacketSize */

GLOBAL WORD max_pkt_size_a;				/* EPaMaxPacketSize */

GLOBAL WORD max_pkt_size_b;				/* EPbMaxPacketSize */

GLOBAL WORD max_pkt_size_c;				/* EPcMaxPacketSize */

GLOBAL BYTE current_alt_set;			/* AlternateSetting */

/***************************************
 Device
 ***************************************/
GLOBAL BYTE cbw[31];					/* CBW */
GLOBAL BYTE csw[13];					/* CSW */
GLOBAL BYTE cmd_block[12];				/* ATAPI  */
GLOBAL BYTE sense_data[3];				/*  */

GLOBAL BYTE usb_wk_buf[LBA_DATA_BUFF_MAX];	/* USB Bulk Data work Buffer 64kb */


GLOBAL unsigned int sram_start_addr;	/* RAMDISK START addr */
GLOBAL DWORD last_lba;					/* LBA */
GLOBAL DWORD block_size;				/*  */

GLOBAL BYTE *bulk_tran_start_addr;		/* Bulk */

GLOBAL DWORD bulk_req_tran_cnt;			/* Bulk */

GLOBAL DWORD bulk_total_tran_cnt;		/* Bulk */

GLOBAL DWORD bulk_actual_tran_cnt;		/* Bulk */

typedef struct {
	BYTE	PowerOnReset:1;				/* PowerOn or Reset */
	BYTE	Reserved6:1;				/* Reserved */
	BYTE	Reserved5:1;				/* Reserved */
	BYTE	Reserved4:1;				/* Reserved */
	BYTE	Reserved3:1;				/* Reserved */
	BYTE	Reserved2:1;				/* Reserved */
	BYTE	Reserved1:1;				/* Reserved */
	BYTE	Reserved0:1;				/* Reserved */
} AttenFlag;
GLOBAL AttenFlag atten_flag;			/*  */

typedef struct {
	BYTE	XferCmp:1;					/*  */
	BYTE	Reserved6:1;				/* Bit6 Reserved */
	BYTE	Reserved5:1;				/* Bit5 Reserved */
	BYTE	Reserved4:1;				/* Bit4 Reserved */
	BYTE	Reserved3:1;				/* Bit3 Reserved */
	BYTE	Reserved2:1;				/* Bit2 Reserved */
	BYTE	Direction:1;				/* Bit1 (1:IN,0:OUT) */
	BYTE	DMA:1;						/* Bit0 DMA */
} TranFlag;
GLOBAL TranFlag tran_flag;				/*  */

GLOBAL BYTE wk_data[2048];				/* Device */

GLOBAL DWORD ata_lba;					/* LBA */

GLOBAL BYTE *mode_data_addr;			/* Mode Page */

GLOBAL BYTE *mode_chg_addr;				/* Changeable Page */

GLOBAL BYTE mode_data_cnt;				/* Mode Page */

GLOBAL BYTE test_unit_ready_cnt;

GLOBAL DWORD DiagRegErrorCount;
GLOBAL DWORD DiagFIFOErrorCount;


#ifdef DEBUG_PRINT
GLOBAL char  sci_rxdata[64];
GLOBAL int	 sci_rxoffset;
GLOBAL char  sci_txdata[64];
GLOBAL int	 sci_txoffset;
GLOBAL int	 sci_rxbusy;
GLOBAL int	 sci_rxerror;
GLOBAL int	 sci_txbusy;
GLOBAL unsigned long rs232c_dumpaddr;
GLOBAL int	 rs232c_dumpline;
GLOBAL int	 sci_msgon;

typedef struct {
	BYTE	rs232c_rx:1;
	BYTE	rs232c_tx:1;
	BYTE	Reserved:6;
} RS232CFLAG;
GLOBAL	RS232CFLAG	rs232c_flag;

/*  */
GLOBAL DWORD USBResetCount;
GLOBAL DWORD EP0INErrorCount;
GLOBAL DWORD EP0OUTErrorCount;
GLOBAL DWORD INErrorCount;
GLOBAL DWORD OUTErrorCount;

#endif	/* DEBUG_PRINT */

#endif /* RAM_DATA_H */

⌨️ 快捷键说明

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