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

📄 data_tr.h

📁 isp1160_isa_evel_codeUSB主机软件
💻 H
字号:
/*
**  Kenobi2          version 1.3
**
**      ** This code has been made to check/learn the 1161 functionalities ** 
**      ** Release 25-Feb-2002                                             **
**
**      OKANO, Akifumi 
**      
**		Computing Segment, Semisonductors Div, Philips Japan Ltd.
**      akifumi.okano@philips.com
**      +81-3-3740-4668 
*/

#ifndef _DATA_TR_H
#define _DATA_TR_H


#define		CompletionCode_NoEror				0x0
#define		CompletionCode_CRC					0x1
#define		CompletionCode_BitStuffing			0x2
#define		CompletionCode_DataToggleMismatch	0x3
#define		CompletionCode_Stall				0x4
#define		CompletionCode_DeviceNotResponding	0x5
#define		CompletionCode_PIDCheckFailure		0x6
#define		CompletionCode_UnexpectedPID		0x7
#define		CompletionCode_DataOverrun			0x8
#define		CompletionCode_DataUnderrun			0x9
#define		CompletionCode_BufferOverrun		0xC
#define		CompletionCode_BufferUnderrun		0xD

#define		STILL_ACTIVE						0x80


#define		Speed_Full							0
#define		Speed_Low							1

#define		DirectionPID_SETUP					0
#define		DirectionPID_OUT					1
#define		DirectionPID_IN						2

#define		SETUP								DirectionPID_SETUP
#define		OUT									DirectionPID_OUT
#define		IN									DirectionPID_IN

#define		ATL_FULL_RW							0x0
#define		ATL_SHORT_READ						0x1
#define		ATL_SHORT_WRITE						0x2

#define		Format_Async						0
#define		Format_Iso							1



#define		ATL_idle							0x0
#define		ATL_ready							0x1
#define		ATL_busy							0x2
#define		ATL_done							0x4
#define		ATL_abort							0x8




typedef	struct	PTD_h		{
								unsigned char	byte[ 8 ];
							}
							PTD_header;
									
typedef	struct	PTD_h_p		{
								unsigned short	ActualBytes;
								unsigned char	CompletionCode;
								unsigned char	Active;
								unsigned char	Toggle;
								unsigned short	MaxPacketSize;
								unsigned char	EndpointNumber;
								unsigned char	Last;
								unsigned char	Speed;
								unsigned short	TotalBytes;
								unsigned char	DirectionPID;
								unsigned char	Format;
								unsigned char	FunctionAddress;
							}
							PTD_header_param;


typedef	struct	atl_mng		*ATLD_ptr;

typedef	struct	atl_mng		{
								unsigned char		*atl_buffer_ptr;
								unsigned short		size;
								unsigned char		busy_flag;
								unsigned char		short_rw;
								ATLD_ptr			next;
							}
							ATLD;


ATLD			*open_single_PTD_ATLD( PTD_header_param *ptd_param_ptr, unsigned char *data );
void			readout_ATLD( unsigned char *data, unsigned short length, ATLD *atldPtr );
int				close_ATLD( ATLD *atldPtr );
void			link_ATLDs( ATLD *previousATLD, ATLD *currentATLD );
unsigned short	ATL_buffer_state_FULL( void );
unsigned short	ATL_buffer_state_DONE( void );
unsigned char 	completion_check_ATLD( PTD_header_param *ptd_param_ptr, ATLD *atldPtr );
int				wait_ATLD_done( ATLD *atldPtr, int timeout );

void			enable_transfer( void );
void			abort_transfer( void );
int				is_transfer_enabled( void );
void			set_ATLD_base_ptr( ATLD *atldPtr );
ATLD			*get_current_ATLD_ptr( void );
int 			is_DMA_enabled( void );


void			write_ATL_buffer( ATLD *atldPtr );
void			read_ATL_buffer( ATLD *atldPtr );


#define			is_ATLD_ready( x )		((x)->busy_flag & ATL_ready)
#define			is_ATLD_busy( x )		((x)->busy_flag & ATL_busy )
#define			is_ATLD_done( x )		((x)->busy_flag & ATL_done )



#endif _DATA_TR_H

⌨️ 快捷键说明

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