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

📄 transfer.h

📁 zlg/fs源代码
💻 H
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -