transfer.h

来自「zlg/fs源代码」· C头文件 代码 · 共 85 行

H
85
字号
#ifndef TRANSFER_H
#define TRANSFER_H

#include "Sl811.h"
#include "Chap9.h"

#ifdef  TRANSFER_GLOBALS
#define TRANSFER_GLOBALS_EXT
#else
#define TRANSFER_GLOBALS_EXT extern
#endif

#define TIMEOUT_RETRY		0x06	// Maximum no. of timeout retry during USB xfer

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


#define DEFAULT_BUFFER_SIZE 8
#define MAX_ENDPOINT_NUM   0x05
							
typedef struct 	epi
{
	//INT16U				max_packet_size;
	//INT8U				address;
	//INT8U				speed;
	//INT8U				ep_num;
	//INT8U				direction;
	//INT8U				transfer_type;
	INT8U				toggle;
	std_endpoint_descriptor endpoint_descriptor;
	struct dev			*dvi_ptr;
}endpoint_info;

typedef struct dev 
{
	INT8U				address;						// 设备地址
	INT8U				speed;							// 设备速度
	INT8U				state;
	void					*class_instance_ptr;
	std_dev_descriptor		dev_descriptor;					// 设备描述符
	std_conf_descriptor	conf_descriptor;					// 配置描述符
	std_interface_descriptor	interfacef_descriptor;				// 接口描述符
	endpoint_info			epi_info[ MAX_ENDPOINT_NUM ];	// 端点描述信息指针列表
}device_instance;


typedef	struct		req			
{
	
	INT8U	bmRequestType;
	INT8U	bRequest;
	INT16U	wValue;
	INT16U	wIndex;
	INT16U	wLength;
} USB_Device_Request;


TRANSFER_GLOBALS_EXT INT16U Control_Transfer(	USB_Device_Request	*dev_req, 
												device_instance *dvi_ptr, 
												INT8U *data_ptr );

TRANSFER_GLOBALS_EXT INT16U Bulk_Transfer(	INT8U direction, 
												INT8U * data_ptr, 
												INT32U size, 
												device_instance * dvi_ptr);
	
#ifdef  TRANSFER_GLOBALS
#define TRANSFER_GLOBALS_INT

TRANSFER_GLOBALS_INT INT8U Control_In(INT8U * data_ptr, INT16U size, endpoint_info * epi_ptr);
TRANSFER_GLOBALS_INT INT8U Control_Out(INT8U * data_ptr, INT16U size, endpoint_info * epi_ptr);
TRANSFER_GLOBALS_INT INT8U Control_Setup(USB_Device_Request * dev_req, endpoint_info * epi_ptr);
TRANSFER_GLOBALS_INT INT8U Bulk_In(INT8U * data_ptr, INT32U size, endpoint_info * epi_ptr);
TRANSFER_GLOBALS_INT INT8U Bulk_Out(INT8U * data_ptr, INT32U size, endpoint_info * epi_ptr);

#endif


#endif



⌨️ 快捷键说明

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