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

📄 usb.h

📁 mips cpu 君正4730 4740的 ucosii 源码 包括系统 摄像头 网络 文件系统等等测试
💻 H
字号:
#ifndef __USB_H#define	__USB_H#ifndef u8#define u8	unsigned char#endif#ifndef u16#define u16	unsigned short#endif#ifndef u32#define u32	unsigned int#endif#ifndef s8#define s8	char#endif#ifndef s16#define s16	short#endif#ifndef s32#define s32	int#endifextern int usbdebug;enum USB_ENDPOINT_TYPE{	ENDPOINT_TYPE_CONTROL,	/* Typically used to configure a device when attached to the host.	 * It may also be used for other device specific purposes, including	 * control of other pipes on the device.	 */	ENDPOINT_TYPE_ISOCHRONOUS,	/* Typically used for applications which need guaranteed speed.	 * Isochronous transfer is fast but with possible data loss. A typical	 * use is audio data which requires a constant data rate.	 */	ENDPOINT_TYPE_BULK,	/* Typically used by devices that generate or consume data in relatively	 * large and bursty quantities. Bulk transfer has wide dynamic latitude	 * in transmission constraints. It can use all remaining available bandwidth,	 * but with no guarantees on bandwidth or latency. Since the USB bus is	 * normally not very busy, there is typically 90% or more of the bandwidth	 * available for USB transfers.	 */	ENDPOINT_TYPE_INTERRUPT	/* Typically used by devices that need guaranteed quick responses	 * (bounded latency).	 */};enum USB_STANDARD_REQUEST_CODE {	GET_STATUS,	CLEAR_FEATURE,	SET_FEATURE = 3,	SET_ADDRESS = 5,	GET_DESCRIPTOR,	SET_DESCRIPTOR,	GET_CONFIGURATION,	SET_CONFIGURATION,	GET_INTERFACE,	SET_INTERFACE,	SYNCH_FRAME};enum USB_DESCRIPTOR_TYPE {	DEVICE_DESCRIPTOR = 1,	CONFIGURATION_DESCRIPTOR,	STRING_DESCRIPTOR,	INTERFACE_DESCRIPTOR,	ENDPOINT_DESCRIPTOR,	DEVICE_QUALIFIER_DESCRIPTOR,	OTHER_SPEED_CONFIGURATION_DESCRIPTOR,	INTERFACE_POWER1_DESCRIPTOR};enum USB_FEATURE_SELECTOR {	ENDPOINT_HALT,	DEVICE_REMOTE_WAKEUP,	TEST_MODE};enum USB_CLASS_CODE {	CLASS_DEVICE,	CLASS_AUDIO,	CLASS_COMM_AND_CDC_CONTROL,	CLASS_HID,	CLASS_PHYSICAL = 0x05,	CLASS_STILL_IMAGING,	CLASS_PRINTER,	CLASS_MASS_STORAGE,	CLASS_HUB,	CLASS_CDC_DATA,	CLASS_SMART_CARD,	CLASS_CONTENT_SECURITY = 0x0d,	CLASS_VIDEO,	CLASS_DIAGNOSTIC_DEVICE = 0xdc,	CLASS_WIRELESS_CONTROLLER = 0xe0,	CLASS_MISCELLANEOUS = 0xef,	CLASS_APP_SPECIFIC = 0xfe,	CLASS_VENDOR_SPECIFIC = 0xff};typedef struct {	u8 bmRequestType;	u8 bRequest;	u16 wValue;	u16 wIndex;	u16 wLength;} __attribute__ ((packed)) USB_DeviceRequest;typedef struct {	u8 bLength;	u8 bDescriptorType;	u16 bcdUSB;	u8 bDeviceClass;	u8 bDeviceSubClass;	u8 bDeviceProtocol;	u8 bMaxPacketSize0;	u16 idVendor;	u16 idProduct;	u16 bcdDevice;	u8 iManufacturer;	u8 iProduct;	u8 iSerialNumber;	u8 bNumConfigurations;} __attribute__ ((packed)) USB_DeviceDescriptor;typedef struct {	u8 bLength;	u8 bDescriptorType;	u16 bcdUSB;	u8 bDeviceClass;	u8 bDeviceSubClass;	u8 bDeviceProtocol;	u8 bMaxPacketSize0;	u8 bNumConfigurations;	u8 bReserved;} __attribute__ ((packed)) USB_DeviceQualifierDescriptor;typedef struct {	u8 bLength;	u8 bDescriptorType;	u16 wTotalLength;	u8 bNumInterfaces;	u8 bConfigurationValue;	u8 iConfiguration;	u8 bmAttributes;	u8 MaxPower;} __attribute__ ((packed)) USB_ConfigDescriptor;typedef struct {	u8 bLength;	u8 bDescriptorType;	u16 wTotalLength;	u8 bNumInterfaces;	u8 bConfigurationValue;	u8 iConfiguration;	u8 bmAttributes;	u8 bMaxPower;} __attribute__ ((packed)) USB_OtherSpeedConfigDescriptor;typedef struct {	u8 bLength;	u8 bDescriptorType;	u8 bInterfaceNumber;	u8 bAlternateSetting;	u8 bNumEndpoints;	u8 bInterfaceClass;	u8 bInterfaceSubClass;	u8 bInterfaceProtocol;	u8 iInterface;} __attribute__ ((packed)) USB_InterfaceDescriptor;typedef struct {	u8 bLegth;	u8 bDescriptorType;	u8 bEndpointAddress;	u8 bmAttributes;	u16 wMaxPacketSize;	u8 bInterval;} __attribute__ ((packed)) USB_EndPointDescriptor;typedef struct {	u8 bLength;	u8 bDescriptorType;	u16 SomeDesriptor[1];} __attribute__ ((packed)) USB_StringDescriptor;#endif // !defined(__USB_H)

⌨️ 快捷键说明

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