📄 dc_chap9.h
字号:
/*
** WASABI-Hot! version 1.2c (DeviceController sub-unit)
**
**
** -- copyright (c) 2001-2004 by Philips Japan, Ltd. -- All rights reserved --
**
**
** ** This code has been made to check/learn **
** ** the ISP1362/ISP1363 functionalities **
** ** Release 06-Aug-2004 **
**
** HIGASHIYAMA, Ken
**
** Application Laboratory, Mobile and Connectivity
** Semiconductors Div, Philips Japan Ltd.
** ken.higashiyama@philips.com
** +81-3-3740-5136
**
**
*/
#include "general.h"
#ifndef _DC_CHAP9_
#define _DC_CHAP9_
#define PHILIPS_VID 0x04CC
#define WASABI_PID 0x1A62
void dc_control_handler();
#define XFER_DIRECTION 0x0080
#define TYPE 0x0060
#define RECIPIENT 0x001F
#define MAX_PACKET_SIZE0 64
extern unsigned char bRequest;
extern unsigned short wValue, wIndex, wLength;
extern unsigned short dc_config_value, dc_alt_setting_value;
void Stall_handshake();
void start_transmit(unsigned short *table, unsigned short len );
void zero_packet();
extern void io_request( void );
void string_descriptor_init( void );
void overwrite_OTG_descriptor( unsigned char value );
/* DESCRIPTOR TYPE */
#define DEVICE 1
#define CONFIGURATION 2
#define STRING 3
#define INTERFACE 4
#define ENDPOINT 5
#define OTG 9
//#define MaxPacketSize 64
typedef struct _DEVICE_DESCRIPTOR {
unsigned char bLength;
unsigned char bDescriptorType;
unsigned short bcdUSB;
unsigned char bDeviceClass;
unsigned char bDeviceSubClass;
unsigned char bDeviceProtocol;
unsigned char bMaxPacketSize0;
unsigned short idVendor;
unsigned short idProduct;
unsigned short bcdDevice;
unsigned char iManufacturer;
unsigned char iProdcut;
unsigned char iSerialNumber;
unsigned char bNumConfigurations;
} DEVICE_DESCRIPTOR;
typedef struct _CONFIGURATION_DESCRIPTOR {
unsigned char bLength;
unsigned char bDescriptorType;
unsigned short wTotalLength;
unsigned char bNumInterfaces;
unsigned char bConfigurationValue;
unsigned char iConfiguration;
unsigned char bmAttributes;
unsigned char MaxPower;
} CONFIGURATION_DESCRIPTOR;
typedef struct _INTERFACE_DESCRIPTOR {
unsigned char bLength;
unsigned char bDescriptorType;
unsigned char bInterfaceNumber;
unsigned char bAlternateSetting;
unsigned char bNumEndpoints;
unsigned char bInterfaceClass;
unsigned char bInterfaceSubClass;
unsigned char bInterfaceProtocol;
unsigned char Index;
} INTERFACE_DESCRIPTOR;
typedef struct _ENDPOINT_DESCRIPTOR {
unsigned char bLength;
unsigned char bDescriptorType;
unsigned char bEndpointAddress;
unsigned char bmAttributes;
unsigned short wMaxPacketSize;
unsigned char bInterval;
} ENDPOINT_DESCRIPTOR;
typedef struct _OTG_DESCRIPTOR {
unsigned char bLength;
unsigned char bDescriptorType;
unsigned char bmAttributes;
} OTG_DESCRIPTOR;
typedef struct _STRING_LANGID {
unsigned char bLength;
unsigned char bDescriptorType;
unsigned char bString[2];
} STRING_LANGID;
typedef struct _STRING_DESCRIPTOR {
unsigned char bLength;
unsigned char bDescriptorType;
////
////
//// unsigned char bString[32];
unsigned char *bString;
} STRING_DESCRIPTOR;
extern DEVICE_DESCRIPTOR device_dscrptr;
extern CONFIGURATION_DESCRIPTOR configuration_dscrptr;
extern INTERFACE_DESCRIPTOR interface_dscrptr;
extern ENDPOINT_DESCRIPTOR endpoint_dscrptr_10;
extern STRING_DESCRIPTOR string_dscrptr_manufacturer, string_dscrptr_product, string_dscrptr_serialnumber;
extern STRING_LANGID string_langid;
extern OTG_DESCRIPTOR otg_dscrptr;
typedef struct _CONFIG_DESCRIPTOR_TABLE
{
CONFIGURATION_DESCRIPTOR uCdsc;
INTERFACE_DESCRIPTOR uIdsc_0;
INTERFACE_DESCRIPTOR uIdsc_1;
ENDPOINT_DESCRIPTOR uEdsc_1;
ENDPOINT_DESCRIPTOR uEdsc_2;
ENDPOINT_DESCRIPTOR uEdsc_3;
ENDPOINT_DESCRIPTOR uEdsc_4;
OTG_DESCRIPTOR uOdsc;
} CONFIG_DESCRIPTOR_TABLE;
extern CONFIG_DESCRIPTOR_TABLE configuration_dscrptr_table;
extern unsigned short wCount;
extern unsigned short *pControlData;
// Feature Selector
#define DEVICE_REMOTE_WAKEUP 1
#define ENDPOINT_STALL 0
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -