?? descriptor.h
字號:
/*
**********************************************************************************************
* Project: TK7821
* File: Descriptor.h
* Contents:
*
*
* $Date: 02/25/05 Jason v0.1
* 05/12/05 Mingo v0.2 www.fameg.com
*
* Copyright (c) 2005 Fameg, Inc. All rights reserved
***********************************************************************************************
*/
#ifndef DescriptorH
#define DescriptorH
// Descriptor Types
#define DEVICE_DESC_TYPE 1
#define CONFIGURATION_DESC_TYPE 2
#define STRING_DESC_TYPE 3
#define INTERFACE_DESC_TYPE 4
#define ENDPOINT_DESC_TYPE 5
// Exist on USB 2.0 Spec.
#define DEVICE_QUALIFIER_DESC_TYPE 6
#define OTHER_SPEED_CONFIG_DESC_TYPE 7
#define INTERFACE_POWER_DESC_TYPE 8
#define END_DESC_TYPE INTERFACE_POWER_DESC_TYPE
// Descriptor Related.
#define DEV_DESC_EP0_MAX_PKT_SIZE_OFFSET 7
#define CONFIG_DESC_LEN 9
#define DFU_CONFIG_DESC_TOTAL_LEN 18
#define STR_DESC_HEADER_LEN 2
#define STR_DESC_VENDOR_INDEX 1
#define STR_DESC_PRODUCT_INDEX 2
#define STR_DESC_SERIALNUM_INDEX 3
// Descriptor Information Related
#define DI_DESC_DETECT_TOKEN_OFFSET 0
#define DI_DESC_START_OFFSET 2
#define DI_CONFIG_VALUE_FIELD_OFFSET 5
//----------------------------------------------------------------------------
// USB Device Descriptor Structure.
//----------------------------------------------------------------------------
typedef struct
{
BYTE bLength;
BYTE bDescriptorType;
UINT16 bcdUSB;
BYTE bDeviceClass;
BYTE bDeviceSubClass;
BYTE bDeviceProtocol;
BYTE bMaxPacketSize0;
UINT16 idVendor;
UINT16 idProduct;
UINT16 bcdDevice;
BYTE iManufacture;
BYTE iProduct;
BYTE iSerialNumber;
BYTE bNumConfigurations;
}USB_DEVICE_DESCRIPTOR, *PUSB_DEVICE_DESCRIPTOR;
//----------------------------------------------------------------------------
// USB Configuration Descriptor Structure.
//----------------------------------------------------------------------------
typedef struct
{
BYTE bLength;
BYTE bDescriptorType;
UINT16 wTotalLength;
BYTE bNumInterfaces;
BYTE bConfigurationValue;
BYTE iConfiguration;
BYTE bmAttributes;
BYTE MaxPower;
}USB_CONFIGURATION_DESCRIPTOR, *PUSB_CONFIGURATION_DESCRIPTOR;
//----------------------------------------------------------------------------
// USB Interface Descriptor Structure.
//----------------------------------------------------------------------------
typedef struct
{
BYTE bLength;
BYTE bDescriptorType;
BYTE bInterfaceNumber;
BYTE bAlternateSetting;
BYTE bNumEndpoints;
BYTE bInterfaceClass;
BYTE bInterfaceSubClass;
BYTE bInterfaceProtocol;
BYTE iInterface;
}USB_INTERFACE_DESCRIPTOR, *PUSB_INTERFACE_DESCRIPTOR;
//----------------------------------------------------------------------------
// USB Endpoint Descriptor Structure.
//----------------------------------------------------------------------------
typedef struct
{
BYTE bLength;
BYTE bDescriptorType;
BYTE bEndpointAddress;
BYTE bmAttributes;
UINT16 wMaxPacketSize;
BYTE bInterval;
}USB_ENDPOINT_DESCRIPTOR, *PUSB_ENDPOINT_DESCRIPTOR;
//----------------------------------------------------------------------------
// USB String Descriptor Structure.
//----------------------------------------------------------------------------
typedef struct
{
BYTE bLength;
BYTE bDesciptorType;
PBYTE bString;
}USB_STRING_DESCRIPTOR, *PUSB_STRING_DESCRIPTOR;
typedef enum {USE_EEPROM, USE_SM, USE_DEFAULT} DESC_INFO_SOURCE;
extern xdata UINT16 CtrlXferLen;
extern code BYTE DeviceDesc[];
extern code BYTE ConfigDesc[];
extern code BYTE Str0Desc[];
extern code BYTE Str1Desc[];
extern code BYTE Str2Desc[];
extern code BYTE Str3Desc[];
extern code PBYTE StrDescPtr[4];
extern code BYTE StrDescLen[4];
extern code BYTE DeviceQualifierDesc[];
extern code BYTE OtherSpeedConfigDesc[];
extern code BYTE DeviceDescLen;
extern code BYTE ConfigDescLen;
extern code BYTE DeviceQualifierDescLen;
BYTE SeekDescFrmEeprom(BYTE Type, BYTE *Offset);
void GetDiskInfoFrmEeprom(BYTE InfoIndex, PBYTE Buffer, BYTE StartOffset, BYTE Length);
void GetDiskInfoFrmStrDesc();
void CtrlReqGetDescriptor();
void DescInfoSrcDetect();
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -