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

📄 transfer.h

📁 使用ISP1362芯片的USB_OTG参考设计源代码比较新的版本
💻 H
字号:
/*
**  WASABI-Hot! version 1.2c   
**
**
**      -- copyright (c) 2001-2004 by Philips Japan, Ltd. -- All rights reserved --
**
**
**      ** This code has been made to check/learn                          ** 
**      **                             the ISP1362/ISP1363 functionalities **
**      ** Release 06-Aug-2004                                             **
**
**      OKANO, Akifumi
**      
**		Application Laboratory, Mobile and Connectivity
**      Semiconductors Div, Philips Japan Ltd.
**      akifumi.okano@philips.com
**      +81-3-3740-4668 
*/


#ifndef _TR_GENE_H
#define _TR_GENE_H


/****************************************************************************/
/*	includes																*/
/****************************************************************************/

#include	"_hc_core/chap9.h"
#include	"_hc_core/dev_ep.h"


/****************************************************************************/
/*	constants																*/
/****************************************************************************/

#define		reqtype( x )					(x >> 8)
#define		request( x )					(x & 0xFF)


#define			UNLOCK									False
#define			LOCK									True


#define			NUMBER_OF_TRANSFER_TYPES				4		//	3 = control + interr + bulk (Transfer types for ATL)

#define			ISOCHRONOUS_TRANSFER					0
#define			INTERRUPT_TRANSFER						1
#define			CONTROL_TRANSFER						2
#define			BULK_TRANSFER							3
#define			CTRL_BULK_TRANSFER						4

#define			PROCESS_STAGE_READY						0
#define			PROCESS_STAGE_PROCESS_WAIT
#define			PROCESS_STAGE_PROCESS_DONE


/****************************************************************************/
/*	types																	*/
/****************************************************************************/

typedef	struct		req			{
									unsigned char	bmRequestType;
									unsigned char	bRequest;
									unsigned short	wValue;
									unsigned short	wIndex;
									unsigned short	wLength;
								} 
								USB_Device_Request;
							

typedef	struct		_transfer_instance
								{
									/*  for general ATL transfers		*/
									
									unsigned char		lock;
									unsigned char		*data_ptr_base;
									unsigned char		*data_ptr_start;
									unsigned char		*data_ptr_end;
									endpoint_info_ptr	epi_ptr;
									void				(*callback)( endpoint_info_ptr epi_ptr );
									unsigned short		transferred_size;
									unsigned char		direction;
									unsigned char		completion_code;
									unsigned char		fatal_error;
									unsigned char		transfer_type;
									unsigned char		index;
									unsigned short		target_address;
									unsigned short		target_block_index;
									unsigned short		retry_count;
									unsigned long		timeout;
									unsigned long		time_of_service;
									unsigned long		process_stage;
									

									/*  for interrupt transfer			*/
									
									unsigned char		polling_rate;
									
									/*  for bulk-OUT transfer			*/
									
									unsigned char		nak_wait_threshold;
									unsigned char		nak_wait_threshold_counter;
									unsigned short		nak_wait_time_ms;
									unsigned short		nak_wait_time_ms_counter;
									unsigned char		test;

									/*  for Ping-Pong buffering			*/
									
									unsigned char		paired;
									unsigned char		ping_pong;
								}
								transfer_instance;
								
typedef			transfer_instance	*transfer_instance_ptr;


typedef	struct		_buffer_params
								{
									unsigned short		total_buffer_size;
									unsigned short		base_address;
									unsigned short		number_of_blocks;
									unsigned short		payload_size;
								}
								buffer_params;


/****************************************************************************/
/*	function prototypes														*/
/****************************************************************************/

unsigned short		transfer_control_transfer( USB_Device_Request *dev_req, device_instance *dvi_ptr, unsigned char *data_ptr );
unsigned char		transfer_control_transaction( unsigned char direction, unsigned char *data_ptr, unsigned short *size_ptr, endpoint_info_ptr epi_ptr );

#endif

⌨️ 快捷键说明

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