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

📄 pe_my_usbtable.c

📁 FIC8120方案的 StartCell_Driver
💻 C
📖 第 1 页 / 共 5 页
字号:
///////////////////////////////////////////////////////////////////////////////
//
//	File name: my_usbtable.c
//	Version: 1.0
//	Date: 2003/8/05
//
//	Author: Andrew
//	Email: yping@faraday.com.tw
//	Phone: (03) 578-7888
//	Company: Faraday Tech. Corp.
//
//	Description: USB high & full speed descriptor table
//
//		Device Descriptor (High Speed)
//		|
//		-- 1th CONFIGURATION Descriptor
//		|	|
//		|	-- 0th INTERFACE
//		|	|	|
//		|	|	-- 0th Alternate setting Descriptor
//		|	|	|	|
//		|	|	|	-- 1th EP descriptor
//		|	|	|	|
//		|	|	|	-- 2th EP descriptor
//		|	|	|	|
//		|	|	|	-- 3th EP descriptor
//		|	|	|
//		|	|	-- 1th Alternate setting Descriptor
//		|	|
//		|	-- 1th INTERFACE
//		|		|
//		|		.
//		|		.
//		|
//		-- 2th CONFIGURATION Descriptor
//			|
//			.
//			.
//
//
//		String00 descriptor
//		String10 descriptor
//			.
//			.
//
///////////////////////////////////////////////////////////////////////////////
#define MY_USBTABLE_GLOBALS

#include "Pe_usb.h"
#include "Pe_my_usbtable.h"

// High speed Configuration
INT8U u8OTGHSDeviceDescriptor[DEVICE_LENGTH] =
{
	//	DEVICE descriptor
	DEVICE_LENGTH,					// bLength
	DT_DEVICE,						// bDescriptorType
	mLowByte(HS_USB_SPEC_VER),			// bcdUSB
	mHighByte(HS_USB_SPEC_VER),
	HS_bDeviceClass,			    // bDeviceClass
	HS_bDeviceSubClass,			    // bDeviceSubClass
	HS_bDeviceProtocol,			    // bDeviceProtocol
	EP0MAXPACKETSIZE,				// bMaxPacketSize0
	mLowByte(HS_VENDOR_ID),			// idVendor
	mHighByte(HS_VENDOR_ID),
	mLowByte(HS_PRODUCT_ID),			// idProduct
	mHighByte(HS_PRODUCT_ID),
	mLowByte(HS_DEVICE_RELEASE_NO),	// bcdDeviceReleaseNumber
	mHighByte(HS_DEVICE_RELEASE_NO),
	HS_iManufacturer,			    // iManufacturer
	HS_iProduct,				    // iProduct
	HS_iSerialNumber, 			    // iSerialNumber
	HS_CONFIGURATION_NUMBER			// bNumConfigurations
};

// High speed Configuration
#if (HS_CONFIGURATION_NUMBER >= 1)
// Configuration 1
INT8U u8HSConfigOTGDescriptor01[HS_C1_CONFIG_TOTAL_LENGTH] =
{
	//	CONFIGURATION descriptor
	CONFIG_LENGTH,					// bLength
	DT_CONFIGURATION,				// bDescriptorType CONFIGURATION
	mLowByte(HS_C1_CONFIG_TOTAL_LENGTH),	// wTotalLength, include all descriptors
	mHighByte(HS_C1_CONFIG_TOTAL_LENGTH),
	HS_C1_INTERFACE_NUMBER,			// bNumInterface
	HS_C1,							// bConfigurationValue
	HS_C1_iConfiguration,			// iConfiguration
	HS_C1_bmAttribute,				// bmAttribute
									// D7: Reserved(set to one), D6: Self-powered, D5: Remote Wakeup, D4..0: Reserved(reset to zero)
	HS_C1_iMaxPower,				// iMaxPower (2mA / units)

	#if (HS_C1_INTERFACE_NUMBER >= 1)
		// Interface 0
		#if (HS_C1_I0_ALT_NUMBER >= 1)
			// Alternate Setting 0
			INTERFACE_LENGTH,				// bLength
			DT_INTERFACE,					// bDescriptorType INTERFACE
			HS_C1_I0_A0_bInterfaceNumber,      // bInterfaceNumber
			HS_C1_I0_A0_bAlternateSetting,	    // bAlternateSetting
			HS_C1_I0_A0_EP_NUMBER,			// bNumEndpoints(excluding endpoint zero)
			HS_C1_I0_A0_bInterfaceClass,	// bInterfaceClass
			HS_C1_I0_A0_bInterfaceSubClass,// bInterfaceSubClass
			HS_C1_I0_A0_bInterfaceProtocol,// bInterfaceProtocol
			HS_C1_I0_A0_iInterface,		// iInterface

			#if (HS_C1_I0_A0_EP_NUMBER >= 1)
				// EP1
				EP_LENGTH,						// bLength
				DT_ENDPOINT,					// bDescriptorType ENDPOINT
				(((1 - HS_C1_I0_A0_EP1_DIRECTION) << 7) | EP1),	// bEndpointAddress
									// D7: Direction, 1=IN, 0=OUT
									// D6..4: Reserved(reset to zero), D3..0: The endpointer number
				HS_C1_I0_A0_EP1_TYPE,			// bmAttributes
									// D1..0: Transfer Type 00=Control, 01=Isochronous, 10=Bulk, 11=Interrupt
									// if not an isochronous endpoint, D7..2 are Reserved
				mLowByte(HS_C1_I0_A0_EP1_MAX_PACKET),	// wMaxPacketSize
				mHighByte(HS_C1_I0_A0_EP1_MAX_PACKET),
				HS_C1_I0_A0_EP1_bInterval,			// Interval for polling endpoint for data transfers.
			#endif
			#if (HS_C1_I0_A0_EP_NUMBER >= 2)
				// EP2
				EP_LENGTH,
				DT_ENDPOINT,
				(((1 - HS_C1_I0_A0_EP2_DIRECTION) << 7) | EP2),
				HS_C1_I0_A0_EP2_TYPE,	
				mLowByte(HS_C1_I0_A0_EP2_MAX_PACKET),
				mHighByte(HS_C1_I0_A0_EP2_MAX_PACKET),
				HS_C1_I0_A0_EP2_bInterval,
			#endif
			#if (HS_C1_I0_A0_EP_NUMBER >= 3)
				// EP3
				EP_LENGTH,
				DT_ENDPOINT,
				(((1 - HS_C1_I0_A0_EP3_DIRECTION) << 7) | EP3),
				HS_C1_I0_A0_EP3_TYPE,	
				mLowByte(HS_C1_I0_A0_EP3_MAX_PACKET),
				mHighByte(HS_C1_I0_A0_EP3_MAX_PACKET),
				HS_C1_I0_A0_EP3_bInterval,
			#endif
			#if (HS_C1_I0_A0_EP_NUMBER >= 4)
				// EP4
				EP_LENGTH,
				DT_ENDPOINT,
				(((1 - HS_C1_I0_A0_EP4_DIRECTION) << 7) | EP4),
				HS_C1_I0_A0_EP4_TYPE,	
				mLowByte(HS_C1_I0_A0_EP4_MAX_PACKET),
				mHighByte(HS_C1_I0_A0_EP4_MAX_PACKET),
				HS_C1_I0_A0_EP4_bInterval,
			#endif
			#if (HS_C1_I0_A0_EP_NUMBER >= 5)
				// EP5
				EP_LENGTH,
				DT_ENDPOINT,
				(((1 - HS_C1_I0_A0_EP5_DIRECTION) << 7) | EP5),
				HS_C1_I0_A0_EP5_TYPE,	
				mLowByte(HS_C1_I0_A0_EP5_MAX_PACKET),
				mHighByte(HS_C1_I0_A0_EP5_MAX_PACKET),
				HS_C1_I0_A0_EP5_bInterval,
			#endif
			#if (HS_C1_I0_A0_EP_NUMBER >= 6)
				// EP6
				EP_LENGTH,
				DT_ENDPOINT,
				(((1 - HS_C1_I0_A0_EP6_DIRECTION) << 7) | EP6),
				HS_C1_I0_A0_EP6_TYPE,	
				mLowByte(HS_C1_I0_A0_EP6_MAX_PACKET),
				mHighByte(HS_C1_I0_A0_EP6_MAX_PACKET),
				HS_C1_I0_A0_EP6_bInterval,
			#endif
			#if (HS_C1_I0_A0_EP_NUMBER >= 7)
				// EP7
				EP_LENGTH,
				DT_ENDPOINT,
				(((1 - HS_C1_I0_A0_EP7_DIRECTION) << 7) | EP7),
				HS_C1_I0_A0_EP7_TYPE,	
				mLowByte(HS_C1_I0_A0_EP7_MAX_PACKET),
				mHighByte(HS_C1_I0_A0_EP7_MAX_PACKET),
				HS_C1_I0_A0_EP7_bInterval,
			#endif
			#if (HS_C1_I0_A0_EP_NUMBER >= 8)
				// EP8
				EP_LENGTH,
				DT_ENDPOINT,
				(((1 - HS_C1_I0_A0_EP8_DIRECTION) << 7) | EP8),
				HS_C1_I0_A0_EP8_TYPE,	
				mLowByte(HS_C1_I0_A0_EP8_MAX_PACKET),
				mHighByte(HS_C1_I0_A0_EP8_MAX_PACKET),
				HS_C1_I0_A0_EP8_bInterval,
			#endif
			#if (HS_C1_I0_A0_EP_NUMBER >= 9)
				// EP9
				EP_LENGTH,
				DT_ENDPOINT,
				(((1 - HS_C1_I0_A0_EP9_DIRECTION) << 7) | EP9),
				HS_C1_I0_A0_EP9_TYPE,	
				mLowByte(HS_C1_I0_A0_EP9_MAX_PACKET),
				mHighByte(HS_C1_I0_A0_EP9_MAX_PACKET),
				HS_C1_I0_A0_EP9_bInterval,
			#endif
			#if (HS_C1_I0_A0_EP_NUMBER >= 10)
				// EP10
				EP_LENGTH,
				DT_ENDPOINT,
				(((1 - HS_C1_I0_A0_EP10_DIRECTION) << 7) | EP10),
				HS_C1_I0_A0_EP10_TYPE,	
				mLowByte(HS_C1_I0_A0_EP10_MAX_PACKET),
				mHighByte(HS_C1_I0_A0_EP10_MAX_PACKET),
				HS_C1_I0_A0_EP10_bInterval,
			#endif
			#if (HS_C1_I0_A0_EP_NUMBER >= 11)
				// EP11
				EP_LENGTH,
				DT_ENDPOINT,
				(((1 - HS_C1_I0_A0_EP11_DIRECTION) << 7) | EP11),
				HS_C1_I0_A0_EP11_TYPE,	
				mLowByte(HS_C1_I0_A0_EP11_MAX_PACKET),
				mHighByte(HS_C1_I0_A0_EP11_MAX_PACKET),
				HS_C1_I0_A0_EP11_bInterval,
			#endif
			#if (HS_C1_I0_A0_EP_NUMBER >= 12)
				// EP12
				EP_LENGTH,
				DT_ENDPOINT,
				(((1 - HS_C1_I0_A0_EP12_DIRECTION) << 7) | EP12),
				HS_C1_I0_A0_EP12_TYPE,	
				mLowByte(HS_C1_I0_A0_EP12_MAX_PACKET),
				mHighByte(HS_C1_I0_A0_EP12_MAX_PACKET),
				HS_C1_I0_A0_EP12_bInterval,
			#endif
			#if (HS_C1_I0_A0_EP_NUMBER >= 13)
				// EP13
				EP_LENGTH,
				DT_ENDPOINT,
				(((1 - HS_C1_I0_A0_EP13_DIRECTION) << 7) | EP13),
				HS_C1_I0_A0_EP13_TYPE,	
				mLowByte(HS_C1_I0_A0_EP13_MAX_PACKET),
				mHighByte(HS_C1_I0_A0_EP13_MAX_PACKET),
				HS_C1_I0_A0_EP13_bInterval,
			#endif
			#if (HS_C1_I0_A0_EP_NUMBER >= 14)
				// EP14
				EP_LENGTH,
				DT_ENDPOINT,
				(((1 - HS_C1_I0_A0_EP14_DIRECTION) << 7) | EP14),
				HS_C1_I0_A0_EP14_TYPE,	
				mLowByte(HS_C1_I0_A0_EP14_MAX_PACKET),
				mHighByte(HS_C1_I0_A0_EP14_MAX_PACKET),
				HS_C1_I0_A0_EP14_bInterval,
			#endif
			#if (HS_C1_I0_A0_EP_NUMBER >= 15)
				// EP15
				EP_LENGTH,
				DT_ENDPOINT,
				(((1 - HS_C1_I0_A0_EP15_DIRECTION) << 7) | EP15),
				HS_C1_I0_A0_EP15_TYPE,	
				mLowByte(HS_C1_I0_A0_EP15_MAX_PACKET),
				mHighByte(HS_C1_I0_A0_EP15_MAX_PACKET),
				HS_C1_I0_A0_EP15_bInterval,
			#endif
		#endif
		#if (HS_C1_I0_ALT_NUMBER >= 2)
			// Alternate Setting 0
			INTERFACE_LENGTH,				// bLength
			DT_INTERFACE,					// bDescriptorType INTERFACE
			HS_C1_I0_A1_bInterfaceNumber,   // bInterfaceNumber
			HS_C1_I0_A1_bAlternateSetting,	// bAlternateSetting
			HS_C1_I0_A1_EP_NUMBER,			// bNumEndpoints(excluding endpoint zero)
			HS_C1_I0_A1_bInterfaceClass,	// bInterfaceClass
			HS_C1_I0_A1_bInterfaceSubClass,// bInterfaceSubClass
			HS_C1_I0_A1_bInterfaceProtocol,// bInterfaceProtocol
			HS_C1_I0_A1_iInterface,		// iInterface

			#if (HS_C1_I0_A1_EP_NUMBER >= 1)
				// EP1
				EP_LENGTH,						// bLength
				DT_ENDPOINT,					// bDescriptorType ENDPOINT
				(((1 - HS_C1_I0_A1_EP1_DIRECTION) << 7) | EP1),	// bEndpointAddress
									// D7: Direction, 1=IN, 0=OUT
									// D6..4: Reserved(reset to zero), D3..0: The endpointer number
				HS_C1_I0_A1_EP1_TYPE,			// bmAttributes
									// D1..0: Transfer Type 00=Control, 01=Isochronous, 10=Bulk, 11=Interrupt
									// if not an isochronous endpoint, D7..2 are Reserved
				mLowByte(HS_C1_I0_A1_EP1_MAX_PACKET),	// wMaxPacketSize
				mHighByte(HS_C1_I0_A1_EP1_MAX_PACKET),
				HS_C1_I0_A1_EP1_bInterval,			// Interval for polling endpoint for data transfers.
			#endif
			#if (HS_C1_I0_A1_EP_NUMBER >= 2)
				// EP2
				EP_LENGTH,
				DT_ENDPOINT,
				(((1 - HS_C1_I0_A1_EP2_DIRECTION) << 7) | EP2),
				HS_C1_I0_A1_EP2_TYPE,	
				mLowByte(HS_C1_I0_A1_EP2_MAX_PACKET),
				mHighByte(HS_C1_I0_A1_EP2_MAX_PACKET),
				HS_C1_I0_A1_EP2_bInterval,
			#endif
			#if (HS_C1_I0_A1_EP_NUMBER >= 3)
				// EP3
				EP_LENGTH,
				DT_ENDPOINT,
				(((1 - HS_C1_I0_A1_EP3_DIRECTION) << 7) | EP3),
				HS_C1_I0_A1_EP3_TYPE,	
				mLowByte(HS_C1_I0_A1_EP3_MAX_PACKET),
				mHighByte(HS_C1_I0_A1_EP3_MAX_PACKET),
				HS_C1_I0_A1_EP3_bInterval,
			#endif
			#if (HS_C1_I0_A1_EP_NUMBER >= 4)
				// EP4
				EP_LENGTH,
				DT_ENDPOINT,
				(((1 - HS_C1_I0_A1_EP4_DIRECTION) << 7) | EP4),
				HS_C1_I0_A1_EP4_TYPE,	
				mLowByte(HS_C1_I0_A1_EP4_MAX_PACKET),
				mHighByte(HS_C1_I0_A1_EP4_MAX_PACKET),
				HS_C1_I0_A1_EP4_bInterval,
			#endif
			#if (HS_C1_I0_A1_EP_NUMBER >= 5)
				// EP5
				EP_LENGTH,
				DT_ENDPOINT,
				(((1 - HS_C1_I0_A1_EP5_DIRECTION) << 7) | EP5),
				HS_C1_I0_A1_EP5_TYPE,	
				mLowByte(HS_C1_I0_A1_EP5_MAX_PACKET),
				mHighByte(HS_C1_I0_A1_EP5_MAX_PACKET),
				HS_C1_I0_A1_EP5_bInterval,
			#endif
			#if (HS_C1_I0_A1_EP_NUMBER >= 6)
				// EP6
				EP_LENGTH,
				DT_ENDPOINT,
				(((1 - HS_C1_I0_A1_EP6_DIRECTION) << 7) | EP6),
				HS_C1_I0_A1_EP6_TYPE,	
				mLowByte(HS_C1_I0_A1_EP6_MAX_PACKET),
				mHighByte(HS_C1_I0_A1_EP6_MAX_PACKET),
				HS_C1_I0_A1_EP6_bInterval,
			#endif
			#if (HS_C1_I0_A1_EP_NUMBER >= 7)
				// EP7
				EP_LENGTH,
				DT_ENDPOINT,
				(((1 - HS_C1_I0_A1_EP7_DIRECTION) << 7) | EP7),
				HS_C1_I0_A1_EP7_TYPE,	
				mLowByte(HS_C1_I0_A1_EP7_MAX_PACKET),
				mHighByte(HS_C1_I0_A1_EP7_MAX_PACKET),
				HS_C1_I0_A1_EP7_bInterval,
			#endif
			#if (HS_C1_I0_A1_EP_NUMBER >= 8)
				// EP8
				EP_LENGTH,
				DT_ENDPOINT,
				(((1 - HS_C1_I0_A1_EP8_DIRECTION) << 7) | EP8),
				HS_C1_I0_A1_EP8_TYPE,	
				mLowByte(HS_C1_I0_A1_EP8_MAX_PACKET),
				mHighByte(HS_C1_I0_A1_EP8_MAX_PACKET),
				HS_C1_I0_A1_EP8_bInterval,
			#endif
			#if (HS_C1_I0_A1_EP_NUMBER >= 9)
				// EP9
				EP_LENGTH,
				DT_ENDPOINT,
				(((1 - HS_C1_I0_A1_EP9_DIRECTION) << 7) | EP9),
				HS_C1_I0_A1_EP9_TYPE,	
				mLowByte(HS_C1_I0_A1_EP9_MAX_PACKET),
				mHighByte(HS_C1_I0_A1_EP9_MAX_PACKET),
				HS_C1_I0_A1_EP9_bInterval,
			#endif
			#if (HS_C1_I0_A1_EP_NUMBER >= 10)
				// EP10
				EP_LENGTH,
				DT_ENDPOINT,
				(((1 - HS_C1_I0_A1_EP10_DIRECTION) << 7) | EP10),
				HS_C1_I0_A1_EP10_TYPE,	
				mLowByte(HS_C1_I0_A1_EP10_MAX_PACKET),
				mHighByte(HS_C1_I0_A1_EP10_MAX_PACKET),
				HS_C1_I0_A1_EP10_bInterval,
			#endif
			#if (HS_C1_I0_A1_EP_NUMBER >= 11)
				// EP11
				EP_LENGTH,
				DT_ENDPOINT,
				(((1 - HS_C1_I0_A1_EP11_DIRECTION) << 7) | EP11),
				HS_C1_I0_A1_EP11_TYPE,	
				mLowByte(HS_C1_I0_A1_EP11_MAX_PACKET),
				mHighByte(HS_C1_I0_A1_EP11_MAX_PACKET),
				HS_C1_I0_A1_EP11_bInterval,
			#endif
			#if (HS_C1_I0_A1_EP_NUMBER >= 12)
				// EP12
				EP_LENGTH,
				DT_ENDPOINT,
				(((1 - HS_C1_I0_A1_EP12_DIRECTION) << 7) | EP12),
				HS_C1_I0_A1_EP12_TYPE,	
				mLowByte(HS_C1_I0_A1_EP12_MAX_PACKET),
				mHighByte(HS_C1_I0_A1_EP12_MAX_PACKET),
				HS_C1_I0_A1_EP12_bInterval,
			#endif
			#if (HS_C1_I0_A1_EP_NUMBER >= 13)
				// EP13
				EP_LENGTH,
				DT_ENDPOINT,
				(((1 - HS_C1_I0_A1_EP13_DIRECTION) << 7) | EP13),
				HS_C1_I0_A1_EP13_TYPE,	
				mLowByte(HS_C1_I0_A1_EP13_MAX_PACKET),
				mHighByte(HS_C1_I0_A1_EP13_MAX_PACKET),
				HS_C1_I0_A1_EP13_bInterval,
			#endif
			#if (HS_C1_I0_A1_EP_NUMBER >= 14)
				// EP14

⌨️ 快捷键说明

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