?? transfer.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 + -