reqcode.c
资源名称:USB_2.0.rar [点击查看]
上传用户:ids068
上传日期:2013-04-04
资源大小:639k
文件大小:19k
源码类别:
USB编程
开发平台:
C/C++
- //***********************************************************************
- // *
- // P H I L I P S P R O P R I E T A R Y *
- // *
- // COPYRIGHT (c) 1999 BY PHILIPS SINGAPORE (APIC). *
- // -- ALL RIGHTS RESERVED -- *
- // *
- // File Name : RequestCode.c *
- // Author : Albert Goh *
- // Created : 3 March 2000 *
- // *
- //***********************************************************************
- //***********************************************************************
- // *
- // Debug.c file contain the location of the routine for debugging of *
- // the D14. It consist of PIO,USB,UDMA,MDMA,GDMA debugging location *
- // It will branch to the respective routine via the UART or the CODE *
- // definition *
- // *
- //***********************************************************************
- //***********************************************************************
- // *
- // Module History *
- // ************** *
- // *
- // Date Version Author Changes *
- // ==== ======= ====== ======= *
- // 030300 0.1 Albert Created *
- // *
- // *
- //***********************************************************************
- //***********************************************************************
- //* *
- //* Include Files Definition *
- //* *
- //***********************************************************************
- #include "standard.h"
- #include "Usb.h"
- #include "kernel.h"
- //***********************************************************************
- //* *
- //* Variable Definition *
- //* *
- //***********************************************************************
- //***********************************************************************
- //* *
- //* Routine Definition *
- //* *
- //***********************************************************************
- //***********************************************************************
- //* *
- //* Routine : Standard Device Descriptor *
- //* Input : None *
- //* Output : None *
- //* Function : None *
- //* *
- //***********************************************************************
- DEVICE_DESCRIPTOR code Standard_Device_Descriptor[] =
- {
- sizeof(DEVICE_DESCRIPTOR), /* length */
- 0x01, /* 1. bDescriptorType */
- SWAP(0x0110), /* 2.-3. Version 1.1 USB spec Word */
- 0x00, /* 4. Class */
- 0x00, /* 5. bDeviceSubClass */
- 0x00, /* 6. bDeviceProtocol */
- 0x40, /* 7. bMaxPacketSize0 */
- SWAP(0x04CC), /* 8.-9. idVendor */
- SWAP(0x1B49), /* a.-b. idProduct for no Filter Driver */
- SWAP(0x0000), /* c.-d. bcdDevice */
- 0x01, /* e. iManufacturer */
- 0x02, /* f. iProduct */
- 0x00, /* 10. iSerialNumber */
- 0x01 /* 11. bNumConfigurations */
- };
- DEVICE_DESCRIPTOR code HS_Device_Descriptor[] =
- {
- sizeof(DEVICE_DESCRIPTOR), /* length */
- 0x01, /* 1. bDescriptorType */
- SWAP(0x0200), /* 2.-3. Version 2.0 USB spec Word */
- 0x00, /* 4. Class */
- 0x00, /* 5. bDeviceSubClass */
- 0x00, /* 6. bDeviceProtocol */
- 0x40, /* 7. bMaxPacketSize0 */
- SWAP(0x04CC), /* 8.-9. idVendor */
- SWAP(0x1B49), /* a.-b. idProduct */
- SWAP(0x0000), /* c.-d. bcdDevice */
- 0x01, /* e. iManufacturer */
- 0x02, /* f. iProduct */
- 0x00, /* 10. iSerialNumber */
- 0x01 /* 11. bNumConfigurations */
- };
- //***********************************************************************
- //* *
- //* Routine : HS Device Qualifier *
- //* Input : None *
- //* Output : None *
- //* Function : None *
- //* *
- //***********************************************************************
- HS_DEVICE_QUALIFIER code HS_Device_Qualifier[] =
- {
- sizeof(HS_DEVICE_QUALIFIER), //length of HS Device Descriptor
- 0x06, //HS Device Qualifier Type
- SWAP(0x0200), // USB 2.0 version
- 0x00, //Device class
- 0x00, //Device SubClass
- 0x00, //Device Protocol Code
- 0x40, //Maximum Packet SIze for other speed
- 0x01, //Number of Other speed configurations
- 0x00 //Reserved
- };
- //***********************************************************************
- //* *
- //* Routine : Standard Configuration Descriptor *
- //* Input : None *
- //* Output : None *
- //* Function : None *
- //* *
- //***********************************************************************
- CONFIGURATION_DESCRIPTOR code Standard_Config_Descriptor[] =
- {
- sizeof(CONFIGURATION_DESCRIPTOR), //Length of the configuration Descriptor
- 0x02, //Configuration Descriptor
- SWAP(CONFIG_LENGTH), //Total length of the configurations,interface and class/endpoint
- 0x01, //No. of interface supported
- 0x01, //Configuration Value
- 0x00, //Index of string descriptor
- 0xC0, //Configurations Characteristic
- 0x32 //Maximun Power
- };
- //***********************************************************************
- //* *
- //* Routine : Other speed Configuration Descriptor *
- //* Input : None *
- //* Output : None *
- //* Function : None *
- //* *
- //***********************************************************************
- OTHER_SPEED_CONFIG_DESCRIPTOR code Other_Speed_Config_Descriptor[] =
- {
- sizeof(OTHER_SPEED_CONFIG_DESCRIPTOR), //length of other speed configuration descriptor
- 0x07, //Other speed configuration Type
- SWAP(CONFIG_LENGTH), //Total length
- 0x01, //No of interface supported
- 0x01, //Configuration Value
- 0x00, //Index of string descriptor
- 0xC0, //Configurations Characteristic
- 0x32 //Maximun Power
- };
- //***********************************************************************
- //* *
- //* Routine : Standard Interface Descriptor *
- //* Input : None *
- //* Output : None *
- //* Function : None *
- //* *
- //***********************************************************************
- INTERFACE_DESCRIPTOR code Bulk_Interface_Descriptor[] =
- {
- sizeof(INTERFACE_DESCRIPTOR), //Length of standard interface descriptor
- 0x04, //Standard Interface Type
- 0x00, //No of Interface
- 0x00, //Alternate Setting Selector
- 0x04, //No of Endpoints
- 0x00, //Interface Class
- 0x00, //ATAPI Interface Sub Class
- 0x00, //Bulk Only Interface Protocol
- 0x00 //Index of interface string desriptor
- };
- INTERFACE_DESCRIPTOR code HS_Bulk_Interface_Descriptor[] =
- {
- sizeof(INTERFACE_DESCRIPTOR), //Length of standard interface descriptor
- 0x04, //Standard Interface Type
- 0x00, //No of Interface
- 0x00, //Alternate Setting Selector
- 0x04, //No of Endpoints
- 0x00, //Interface Class
- 0x00, //ATAPI Interface Sub Class
- 0x00, //Bulk Only Interface Protocol
- 0x00 //Index of interface string desriptor
- };
- //***********************************************************************
- //* *
- //* Routine : Standard Endpoint Descriptor *
- //* Input : None *
- //* Output : None *
- //* Function : None *
- //* *
- //***********************************************************************
- ENDPOINT_DESCRIPTOR code Bulk_Out_Descriptor[] =
- {
- sizeof(ENDPOINT_DESCRIPTOR), //Length of Standard Endpoint Descriptor
- 0x05, //Standard Endpoint Type
- 0x02, //Set Bulk endpoint to 1 for ATAPI mode
- 0x02, //Endpoint Characteristic
- SWAP(0x0040), //Endpoint Max Packet Size
- 0x00 //Interval for Polling Endpoint for data transfer
- };
- ENDPOINT_DESCRIPTOR code Bulk_In_Descriptor[] =
- {
- sizeof(ENDPOINT_DESCRIPTOR), //Length of Standard Endpoint Descriptor
- 0x05, //Standard Endpoint Type
- 0x82, //Set Bulk endpoint to 1 for ATAPI mode
- 0x02, //Endpoint Characteristic
- SWAP(0x0040), //Endpoint Max Packet Size
- 0x00 //Interval for Polling Endpoint for data transfer
- };
- ENDPOINT_DESCRIPTOR code HS_Bulk_Out_Descriptor[] =
- {
- sizeof(ENDPOINT_DESCRIPTOR), //Length of Standard Endpoint Descriptor
- 0x05, //Standard Endpoint Type
- 0x02, //Set Bulk endpoint to 1 for ATAPI mode
- 0x02, //Endpoint Characteristic
- SWAP(0x0200), //Endpoint Max Packet Size
- 0x00 //Interval for Polling Endpoint for data transfer
- };
- ENDPOINT_DESCRIPTOR code HS_Bulk_In_Descriptor[] =
- {
- sizeof(ENDPOINT_DESCRIPTOR), //Length of Standard Endpoint Descriptor
- 0x05, //Standard Endpoint Type
- 0x82, //Set Bulk endpoint to 1 for ATAPI mode
- 0x02, //Endpoint Characteristic
- SWAP(0x0200), //Endpoint Max Packet Size
- 0x00 //Interval for Polling Endpoint for data transfer
- };
- ENDPOINT_DESCRIPTOR code Int_Out_Descriptor[] =
- {
- sizeof(ENDPOINT_DESCRIPTOR), //Length of Standard Endpoint Descriptor
- 0x05, //Standard Endpoint Type
- 0x01, //Set Int endpoint to 2 for ATAPI mode
- 0x03, //Endpoint Characteristic
- SWAP(0x0040), //Endpoint Max Packet Size
- 0x01 //Interval for Polling Endpoint for data transfer
- };
- ENDPOINT_DESCRIPTOR code Int_In_Descriptor[] =
- {
- sizeof(ENDPOINT_DESCRIPTOR), //Length of Standard Endpoint Descriptor
- 0x05, //Standard Endpoint Type
- 0x81, //Set Int endpoint to 2 for ATAPI mode
- 0x03, //Endpoint Characteristic
- SWAP(0x0040), //Endpoint Max Packet Size
- 0x01 //Interval for Polling Endpoint for data transfer
- };
- ENDPOINT_DESCRIPTOR code HS_Int_Out_Descriptor[] =
- {
- sizeof(ENDPOINT_DESCRIPTOR), //Length of Standard Endpoint Descriptor
- 0x05, //Standard Endpoint Type
- 0x01, //Set Int endpoint to 2 for ATAPI mode
- 0x03, //Endpoint Characteristic
- SWAP(0x0040), //Endpoint Max Packet Size
- 0x01 //Interval for Polling Endpoint for data transfer
- };
- ENDPOINT_DESCRIPTOR code HS_Int_In_Descriptor[] =
- {
- sizeof(ENDPOINT_DESCRIPTOR), //Length of Standard Endpoint Descriptor
- 0x05, //Standard Endpoint Type
- 0x81, //Set Int endpoint to 2 for ATAPI mode
- 0x03, //Endpoint Characteristic
- SWAP(0x0040), //Endpoint Max Packet Size
- 0x01 //Interval for Polling Endpoint for data transfer
- };
- //***********************************************************************
- //* *
- //* Routine : Standard Interface Descriptor *
- //* Input : None *
- //* Output : None *
- //* Function : None *
- //* *
- //***********************************************************************
- INTERFACE_DESCRIPTOR code Iso_Interface_Descriptor[] =
- {
- sizeof(INTERFACE_DESCRIPTOR), //Length of standard interface descriptor
- 0x04, //Standard Interface Type
- 0x00, //No of Interface
- 0x01, //Alternate Setting Selector
- 0x02, //No of Endpoints
- 0x00, //Interface Class
- 0x00, //Interface Sub Class
- 0x00, //Interface Protocol
- 0x00 //Index of interface string desriptor
- };
- ENDPOINT_DESCRIPTOR code Iso_Out_Descriptor[] =
- {
- sizeof(ENDPOINT_DESCRIPTOR), //Length of Standard Endpoint Descriptor
- 0x05, //Standard Endpoint Type
- 0x03, //Enndpoint Address
- 0x01, //Endpoint Characteristic
- SWAP(0x0040), //Endpoint Max Packet Size
- 0x01 //Interval for Polling Endpoint for data transfer
- };
- ENDPOINT_DESCRIPTOR code Iso_In_Descriptor[] =
- {
- sizeof(ENDPOINT_DESCRIPTOR), //Length of Standard Endpoint Descriptor
- 0x05, //Standard Endpoint Type
- 0x83, //Enndpoint Address
- 0x01, //Endpoint Characteristic
- SWAP(0x0040), //Endpoint Max Packet Size
- 0x01 //Interval for Polling Endpoint for data transfer
- };
- ENDPOINT_DESCRIPTOR code Iso_Out_Zero_Descriptor[] =
- {
- sizeof(ENDPOINT_DESCRIPTOR), //Length of Standard Endpoint Descriptor
- 0x05, //Standard Endpoint Type
- 0x03, //Enndpoint Address
- 0x01, //Endpoint Characteristic
- SWAP(0x0000), //Endpoint Max Packet Size
- 0x01 //Interval for Polling Endpoint for data transfer
- };
- ENDPOINT_DESCRIPTOR code Iso_In_Zero_Descriptor[] =
- {
- sizeof(ENDPOINT_DESCRIPTOR), //Length of Standard Endpoint Descriptor
- 0x05, //Standard Endpoint Type
- 0x83, //Enndpoint Address
- 0x01, //Endpoint Characteristic
- SWAP(0x0000), //Endpoint Max Packet Size
- 0x01 //Interval for Polling Endpoint for data transfer
- };
- //***********************************************************************
- //* *
- //* Routine : Standard String Descriptor *
- //* Input : None *
- //* Output : None *
- //* Function : None *
- //* *
- //***********************************************************************
- STRING_DESCRIPTOR code Standard_Product_String[] =
- { 0x30, /* length */
- 0x03, /* descriptor type = string */
- 'P' , 0x00,
- 'h' , 0x00,
- 'i' , 0x00,
- 'l' , 0x00,
- 'i' , 0x00,
- 'p' , 0x00,
- 's' , 0x00,
- ' ' , 0x00,
- 'I' , 0x00,
- 'S' , 0x00,
- 'P' , 0x00,
- '1' , 0x00,
- '5' , 0x00,
- '8' , 0x00,
- '1' , 0x00,
- ' ' , 0x00,
- 'V' , 0x00,
- 'e' , 0x00,
- 'r' , 0x00,
- ' ' , 0x00,
- '1' , 0x00,
- '.' , 0x00,
- '0' , 0x00
- };
- //***********************************************************************
- //* *
- //* Routine : Standard String Descriptor *
- //* Input : None *
- //* Output : None *
- //* Function : None *
- //* *
- //***********************************************************************
- STRING_DESCRIPTOR code Standard_Manufacturer_String[] =
- { 0x1C, /* length */
- 0x03, /* descriptor type = string */
- 'P' , 0x00,
- 'h' , 0x00,
- 'i' , 0x00,
- 'l' , 0x00,
- 'i' , 0x00,
- 'p' , 0x00,
- ' ' , 0x00,
- '-' , 0x00,
- ' ' , 0x00,
- 'A' , 0x00,
- 'P' , 0x00,
- 'I' , 0x00,
- 'C' , 0x00
- };
- //***********************************************************************
- //* *
- //* Routine : Standard String Identifications *
- //* Input : None *
- //* Output : None *
- //* Function : None *
- //* *
- //***********************************************************************
- STRING_ID code Standard_String_ID[] =
- {
- 0x04,
- 0x03,
- 0x09,
- 0x04
- };
- //***********************************************************************
- //* *
- //* Routine : Standard Mass Storage Identifications *
- //* Input : None *
- //* Output : None *
- //* Function : None *
- //* *
- //***********************************************************************
- UC code Test_Packet[] =
- {
- // 0x00, 0x00,
- // 0x00, 0x80, // syn pattern
- 0xc3,
- 0x00, 0x00,
- 0x00, 0x00,
- 0x00, 0x00,
- 0x00, 0x00,
- 0x00, 0xaa,
- 0xaa, 0xaa,
- 0xaa, 0xaa,
- 0xaa, 0xaa,
- 0xaa, 0xee, //aa*4
- 0xee, 0xee,
- 0xee, 0xee,
- 0xee, 0xee,
- 0xee, 0xfe, //ee*4
- 0xff, 0xff,
- 0xff, 0xff,
- 0xff, 0xff,
- 0xff, 0xff,
- 0xff, 0xff, //FF*6
- 0xff, 0x7f,
- 0xbf, 0xdf,
- 0xef, 0xf7,
- 0xfb, 0xfd,
- 0xfc, 0x7e,
- 0xbf, 0xdf,
- 0xef, 0xf7,
- 0xfb, 0xfd,
- 0x7e,
- 0xb6, 0xce // crc
- // 0xff, 0xf7
- };