www.pudn.com > LPC2148_IAR_LPC2148.zip > usb_desc.c
/*************************************************************************
*
* Used with ICCARM and AARM.
*
* (c) Copyright IAR Systems 2003
*
* File name : usb_desc.c
* Description : usb decriptors module
*
* History :
* 1. Data : August 10, 2005
* Author : Stanimir Bonev
* Description : Create
*
* $Revision: 1.1.2.1 $
**************************************************************************/
#include "usb_desc.h"
#pragma data_alignment=4
const UsbStandardDeviceDescriptorStr_t UsbStandardDeviceDescriptorStr =
{
sizeof(UsbStandardDeviceDescriptorStr_t),
UsbDescriptorDevice,
0x200,
0,
0,
0,
Ep0MaxSize,
0xFFFF,
0x0001,
0x0000,
iManufacturerStr,
iProductStr,
iSerialNumberStr,
1,
};
#pragma data_alignment=4
const Int16U mouseDescriptor[] =
{
0x0105, // Usage Page (Generic Desktop)
0x0209, // Usage (Mouse)
0x01A1, // Collection (Application)
0x0109, // Usage (Pointer)
0x00A1, // Collection (Physical)
0x0905, // Usage Page (Buttons)
0x0119, // Usage Minimumů (01)
0x0329, // Usage Maximum (03)
0x0015, // Logical Minimum (0)
0x0125, // Logical Maximum (1)
0x0395, // Report Count (3)
0x0175, // Report Size (1)
0x0281, // 3 Button bits
0x0195, // Report Count (1)
0x0575, // Report Size (6)
0x0181, // 6 bit padding
0x0105, // Generic desktop
0x3009, // Usage(X)
0x3109, // Usage(Y)
0x8115, // Logical Minimum (-127)
0x7F25, // Logical Maximum (127)
0x0875, // Report Size (8)
0x0295, // Report Count (2)
0x0681, // 2 position bytes
0xC0C0 // End collection x2
};
#pragma data_alignment=4
const Int8U UsbHidDescriptor[] =
{
sizeof(UsbHidDescriptor_t),
Hid,
_2BL(0x0111),
0,
1,
HidReport,
_2BL(sizeof(mouseDescriptor)),
};
#pragma data_alignment=4
const Int8U UsbStandardConfigurationDescriptor[] =
{
sizeof(UsbStandardConfigurationDescriptor_t),
UsbDescriptorConfiguration,
_2BL(sizeof(UsbStandardConfigurationDescriptor_t)+
sizeof(UsbStandardInterfaceDescriptor_t)+
sizeof(UsbHidDescriptor_t)+
sizeof(UsbStandardEpDescriptor_t)),
1,
1,
0,
UsbConfigurationCommmonAttr,
UsbConfigPower_mA(100),
sizeof(UsbStandardInterfaceDescriptor_t),
UsbDescriptorInterface,
0,
0,
1,
UsbDeviceClassHumanInterface,
NoSubclass,
Mouse,
0,
sizeof(UsbHidDescriptor_t),
Hid,
_2BL(0x0111),
0,
1,
HidReport,
_2BL(sizeof(mouseDescriptor)),
sizeof(UsbStandardEpDescriptor_t),
UsbDescriptorEp,
UsbEpIn(ReportEp>>1),
UsbEpTransferInterrupt,
_2BL(ReportEpMaxSize),
10,
0,
};
#pragma data_alignment=4
const Int8U UsbLanguagesStr [] =
{
// Length of LanguagesStr + 2
4,
// Desciptor Type
UsbDescriptorString,
// Languages ID
// Languages1 ID Englich
0x09,0x04,
};
#pragma data_alignment=4
const Int8U ManufacturerStrLan1 [] =
{
22, // length
UsbDescriptorString, // Descriptor
'I',0,'A',0,'R',0,' ',0,'S',0,'y',0,'s',0,'t',0,'e',0,'m',0, // Str
};
#pragma data_alignment=4
const Int8U ProductStrLan1 [] =
{
98, //length
UsbDescriptorString, // Descriptor
'I',0,'A',0,'R',0,' ',0,'E',0,'m',0,'b',0,'e',0,'d',0,'d',0,'e',0,
'd',0,' ',0,'W',0,'o',0,'r',0,'k',0,'b',0,'e',0,'n',0,'c',0,'h',0,
' ',0,'A',0,'R',0,'M',0,' ',0,'-',0,' ',0,'H',0,'I',0,'D',0,' ',0,
'D',0,'e',0,'v',0,'i',0,'c',0,'e',0,' ',0,'e',0,'x',0,'a',0,'m',0,
'p',0,'l',0,'e',0,'!',0
};
#pragma data_alignment=4
const Int8U SerialNumberStrLan1 [] =
{
18, //length
UsbDescriptorString, // Descriptor
'0',0,'0',0,'0',0,'0',0,'0',0,'0',0,'0',0,'1',0, // Str
};
const Int8U * const UsbLanguages1Strings[] =
{
// iManufacturerStr
ManufacturerStrLan1,
// iProductStr
ProductStrLan1,
// iSerialNumberStr
SerialNumberStrLan1,
// Terminator
NULL
};
const Int8U * const * const UsbString[] =
{
UsbLanguages1Strings,
};