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

📄 usb.h

📁 COLDFIRE 5275板极初始化程序
💻 H
字号:
/*
 * File:		usb.h
 * Purpose:		USB Header File
 */

#ifndef __USB_H__
#define __USB_H__

#include "usb_cfgbuf.h"
#include "usb_desc.h"


/********************************************************************/

#define swap16(x)   ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))  
#define swap32(x)	((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >>  8) | (((x) & 0x0000ff00) <<  8) | (((x) & 0x000000ff) << 24))		  
 

/********************************************************************/

#define STARTOFDESC 0x00000000
#define STARTOFSTRD 0x0200

/* Default size to malloc() when needed */
#define BUFFER_SIZE			1024

/* Total number of EPs in this USB core */
#define NUM_ENDPOINTS		4

/* Depth of the FIFOs in packet lengths (Must be at */
/* least 2 for non-isochronous endpoints) */
#define FIFO_DEPTH			4

/* Definitions for Device Config Change events */
#define CONFIGURATION_CHG	1
#define INTERFACE_CHG		2
#define ADDRESS_CHG			4

/* Definitions for Bus Change events */
#define SUSPEND             1 
#define RESUME              2
#define ENABLE_WAKEUP       4
#define RESET               8

/* Definitions for Transfer Status */
#define SUCCESS				1
#define OVERFLOW_ERROR		2
#define MALLOC_ERROR		4

/* Definition for LED Command */
#define MCF5275_CMD_LED		0x00000001

/********************************************************************/

/* Structure for storing IN and OUT transfer data */
typedef struct {
	uint8 *start;				/* Starting address for buffer */
	uint16 position;			/* Offset pointer within buffer */
	uint16 length;				/* Length of the buffer in bytes */
	uint8 free;					/* Was this buffer malloc()ed? */
} USB_BUFFER;

/* USB Endpoint State Info */
typedef struct {
	uint32 fifo_length;		/* Length of FIFO */
	uint32 in_fifo_start;	/* Starting address of IN-FIFO */
	uint32 out_fifo_start;	/* Starting address of OUT-FIFO */
	uint32 packet_size;		/* Maximum Packet Size */
	uint8 ttype;			/* Transfer Type */
	uint8 dir;				/* Direction of transfer */
	USB_BUFFER buffer;		/* Data Buffer for IN and OUT transfers */
} USB_EP_STATE;


/********************************************************************
* Standardized Function Prototypes
*********************************************************************/

/* 
 * The following functions are provided in usb.c
 */
 
void usb_setup(void); 
void usb_init(void);
void usb_reset(void);

void usb_handler (void);
void usb_ep0_handler (void);
void usb_ep1_handler (void);
void usb_ep2_handler (void);
void usb_ep3_handler (void);

/* 
 * These are old functions provided in usb.c
 */ 
void usb_isr_init(void);
void usb_fifo_init(void);
void usb_handle_device_request(void);


void usb_in_service(uint32, uint32);
uint8* usb_get_desc(int8, int8, int8, int8);


void usb_ep_tx_done(uint32 epnum);
void usb_devreq_done(uint32 error);

/********************************************************************/
#endif /* __USB_H__ */

⌨️ 快捷键说明

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