📄 usbdesc.lst
字号:
ARM COMPILER V2.50a, usbdesc 27/03/06 17:22:54 PAGE 1
ARM COMPILER V2.50a, COMPILATION OF MODULE usbdesc
OBJECT MODULE PLACED IN .\Obj\usbdesc.obj
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe usbdesc.c THUMB DEBUG PRINT(.\LST\USBDESC.LST) TABS(4) OBJECT(.\Obj\usbdesc.
-obj)
stmt level source
1 /*----------------------------------------------------------------------------
2 * U S B - K e r n e l
3 *----------------------------------------------------------------------------
4 * Name: USBDESC.C
5 * Purpose: USB Descriptors
6 * Version: V1.05
7 *----------------------------------------------------------------------------
8 * This software is supplied "AS IS" without any warranties, express,
9 * implied or statutory, including but not limited to the implied
10 * warranties of fitness for purpose, satisfactory quality and
11 * noninfringement. Keil extends you a royalty-free right to reproduce
12 * and distribute executable files created using this software for use
13 * on Philips LPC2xxx microcontroller devices only. Nothing else gives
14 * you the right to use this software.
15 *
16 * Copyright (c) 2005-2006 Keil Software.
17 *---------------------------------------------------------------------------*/
18
19 #include "type.h"
20
21 #include "usb.h"
22 #include "audio.h"
23 #include "usbcfg.h"
24 #include "usbdesc.h"
25
26
27 /* USB Standard Device Descriptor */
28 const BYTE USB_DeviceDescriptor[] = {
29 USB_DEVICE_DESC_SIZE, /* bLength */
30 USB_DEVICE_DESCRIPTOR_TYPE, /* bDescriptorType */
31 WBVAL(0x0110), /* 1.10 */ /* bcdUSB */
32 0x00, /* bDeviceClass */
33 0x00, /* bDeviceSubClass */
34 0x00, /* bDeviceProtocol */
35 USB_MAX_PACKET0, /* bMaxPacketSize0 */
36 WBVAL(0xC251), /* idVendor */
37 WBVAL(0x1304), /* idProduct */
38 WBVAL(0x0100), /* 1.00 */ /* bcdDevice */
39 0x04, /* iManufacturer */
40 0x20, /* iProduct */
41 0x4A, /* iSerialNumber */
42 0x01 /* bNumConfigurations */
43 };
44
45 /* USB Configuration Descriptor */
46 /* All Descriptors (Configuration, Interface, Endpoint, Class, Vendor */
47 const BYTE USB_ConfigDescriptor[] = {
48 /* Configuration 1 */
49 USB_CONFIGUARTION_DESC_SIZE, /* bLength */
50 USB_CONFIGURATION_DESCRIPTOR_TYPE, /* bDescriptorType */
51 WBVAL( /* wTotalLength */
64 USB_CONFIGUARTION_DESC_SIZE +
64 USB_INTERFACE_DESC_SIZE +
64 AUDIO_CONTROL_INTERFACE_DESC_SZ(1) +
64 AUDIO_INPUT_TERMINAL_DESC_SIZE +
64 AUDIO_FEATURE_UNIT_DESC_SZ(1,1) +
64 AUDIO_OUTPUT_TERMINAL_DESC_SIZE +
64 USB_INTERFACE_DESC_SIZE +
ARM COMPILER V2.50a, usbdesc 27/03/06 17:22:54 PAGE 2
64 USB_INTERFACE_DESC_SIZE +
64 AUDIO_STREAMING_INTERFACE_DESC_SIZE +
64 AUDIO_FORMAT_TYPE_I_DESC_SZ(1) +
64 AUDIO_STANDARD_ENDPOINT_DESC_SIZE +
64 AUDIO_STREAMING_ENDPOINT_DESC_SIZE
64 ),
65 0x02, /* bNumInterfaces */
66 0x01, /* bConfigurationValue */
67 0x00, /* iConfiguration */
68 USB_CONFIG_BUS_POWERED, /* bmAttributes */
69 USB_CONFIG_POWER_MA(100), /* bMaxPower */
70 /* Interface 0, Alternate Setting 0, Audio Control */
71 USB_INTERFACE_DESC_SIZE, /* bLength */
72 USB_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */
73 0x00, /* bInterfaceNumber */
74 0x00, /* bAlternateSetting */
75 0x00, /* bNumEndpoints */
76 USB_DEVICE_CLASS_AUDIO, /* bInterfaceClass */
77 AUDIO_SUBCLASS_AUDIOCONTROL, /* bInterfaceSubClass */
78 AUDIO_PROTOCOL_UNDEFINED, /* bInterfaceProtocol */
79 0x00, /* iInterface */
80 /* Audio Control Interface */
81 AUDIO_CONTROL_INTERFACE_DESC_SZ(1), /* bLength */
82 AUDIO_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */
83 AUDIO_CONTROL_HEADER, /* bDescriptorSubtype */
84 WBVAL(0x0100), /* 1.00 */ /* bcdADC */
85 WBVAL( /* wTotalLength */
90 AUDIO_CONTROL_INTERFACE_DESC_SZ(1) +
90 AUDIO_INPUT_TERMINAL_DESC_SIZE +
90 AUDIO_FEATURE_UNIT_DESC_SZ(1,1) +
90 AUDIO_OUTPUT_TERMINAL_DESC_SIZE
90 ),
91 0x01, /* bInCollection */
92 0x01, /* baInterfaceNr */
93 /* Audio Input Terminal */
94 AUDIO_INPUT_TERMINAL_DESC_SIZE, /* bLength */
95 AUDIO_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */
96 AUDIO_CONTROL_INPUT_TERMINAL, /* bDescriptorSubtype */
97 0x01, /* bTerminalID */
98 WBVAL(AUDIO_TERMINAL_USB_STREAMING), /* wTerminalType */
99 0x00, /* bAssocTerminal */
100 0x01, /* bNrChannels */
101 WBVAL(AUDIO_CHANNEL_M), /* wChannelConfig */
102 0x00, /* iChannelNames */
103 0x00, /* iTerminal */
104 /* Audio Feature Unit */
105 AUDIO_FEATURE_UNIT_DESC_SZ(1,1), /* bLength */
106 AUDIO_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */
107 AUDIO_CONTROL_FEATURE_UNIT, /* bDescriptorSubtype */
108 0x02, /* bUnitID */
109 0x01, /* bSourceID */
110 0x01, /* bControlSize */
111 AUDIO_CONTROL_MUTE |
112 AUDIO_CONTROL_VOLUME, /* bmaControls(0) */
113 0x00, /* bmaControls(1) */
114 0x00, /* iTerminal */
115 /* Audio Output Terminal */
116 AUDIO_OUTPUT_TERMINAL_DESC_SIZE, /* bLength */
117 AUDIO_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */
118 AUDIO_CONTROL_OUTPUT_TERMINAL, /* bDescriptorSubtype */
119 0x03, /* bTerminalID */
120 WBVAL(AUDIO_TERMINAL_SPEAKER), /* wTerminalType */
121 0x00, /* bAssocTerminal */
122 0x02, /* bSourceID */
123 0x00, /* iTerminal */
124 /* Interface 1, Alternate Setting 0, Audio Streaming - Zero Bandwith */
ARM COMPILER V2.50a, usbdesc 27/03/06 17:22:54 PAGE 3
125 USB_INTERFACE_DESC_SIZE, /* bLength */
126 USB_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */
127 0x01, /* bInterfaceNumber */
128 0x00, /* bAlternateSetting */
129 0x00, /* bNumEndpoints */
130 USB_DEVICE_CLASS_AUDIO, /* bInterfaceClass */
131 AUDIO_SUBCLASS_AUDIOSTREAMING, /* bInterfaceSubClass */
132 AUDIO_PROTOCOL_UNDEFINED, /* bInterfaceProtocol */
133 0x00, /* iInterface */
134 /* Interface 1, Alternate Setting 1, Audio Streaming - Operational */
135 USB_INTERFACE_DESC_SIZE, /* bLength */
136 USB_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */
137 0x01, /* bInterfaceNumber */
138 0x01, /* bAlternateSetting */
139 0x01, /* bNumEndpoints */
140 USB_DEVICE_CLASS_AUDIO, /* bInterfaceClass */
141 AUDIO_SUBCLASS_AUDIOSTREAMING, /* bInterfaceSubClass */
142 AUDIO_PROTOCOL_UNDEFINED, /* bInterfaceProtocol */
143 0x00, /* iInterface */
144 /* Audio Streaming Interface */
145 AUDIO_STREAMING_INTERFACE_DESC_SIZE, /* bLength */
146 AUDIO_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */
147 AUDIO_STREAMING_GENERAL, /* bDescriptorSubtype */
148 0x01, /* bTerminalLink */
149 0x01, /* bDelay */
150 WBVAL(AUDIO_FORMAT_PCM), /* wFormatTag */
151 /* Audio Type I Format */
152 AUDIO_FORMAT_TYPE_I_DESC_SZ(1), /* bLength */
153 AUDIO_INTERFACE_DESCRIPTOR_TYPE, /* bDescriptorType */
154 AUDIO_STREAMING_FORMAT_TYPE, /* bDescriptorSubtype */
155 AUDIO_FORMAT_TYPE_I, /* bFormatType */
156 0x01, /* bNrChannels */
157 0x02, /* bSubFrameSize */
158 16, /* bBitResolution */
159 0x01, /* bSamFreqType */
160 B3VAL(32000), /* tSamFreq */
161 /* Endpoint - Standard Descriptor */
162 AUDIO_STANDARD_ENDPOINT_DESC_SIZE, /* bLength */
163 USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType */
164 USB_ENDPOINT_OUT(3), /* bEndpointAddress */
165 USB_ENDPOINT_TYPE_ISOCHRONOUS, /* bmAttributes */
166 WBVAL(64), /* wMaxPacketSize */
167 0x01, /* bInterval */
168 0x00, /* bRefresh */
169 0x00, /* bSynchAddress */
170 /* Endpoint - Audio Streaming */
171 AUDIO_STREAMING_ENDPOINT_DESC_SIZE, /* bLength */
172 AUDIO_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType */
173 AUDIO_ENDPOINT_GENERAL, /* bDescriptor */
174 0x00, /* bmAttributes */
175 0x00, /* bLockDelayUnits */
176 WBVAL(0x0000), /* wLockDelay */
177 /* Terminator */
178 0 /* bLength */
179 };
180
181 /* USB String Descriptor (optional) */
182 const BYTE USB_StringDescriptor[] = {
183 /* Index 0x00: LANGID Codes */
184 0x04, /* bLength */
185 USB_STRING_DESCRIPTOR_TYPE, /* bDescriptorType */
186 WBVAL(0x0409), /* US English */ /* wLANGID */
187 /* Index 0x04: Manufacturer */
188 0x1C, /* bLength */
189 USB_STRING_DESCRIPTOR_TYPE, /* bDescriptorType */
190 'K',0,
ARM COMPILER V2.50a, usbdesc 27/03/06 17:22:54 PAGE 4
191 'e',0,
192 'i',0,
193 'l',0,
194 ' ',0,
195 'S',0,
196 'o',0,
197 'f',0,
198 't',0,
199 'w',0,
200 'a',0,
201 'r',0,
202 'e',0,
203 /* Index 0x20: Product */
204 0x2A, /* bLength */
205 USB_STRING_DESCRIPTOR_TYPE, /* bDescriptorType */
206 'K',0,
207 'e',0,
208 'i',0,
209 'l',0,
210 ' ',0,
211 'M',0,
212 'C',0,
213 'B',0,
214 '2',0,
215 '1',0,
216 '4',0,
217 '0',0,
218 ' ',0,
219 'S',0,
220 'p',0,
221 'e',0,
222 'a',0,
223 'k',0,
224 'e',0,
225 'r',0,
226 /* Index 0x4A: Serial Number */
227 0x1A, /* bLength */
228 USB_STRING_DESCRIPTOR_TYPE, /* bDescriptorType */
229 'D',0,
230 'E',0,
231 'M',0,
232 'O',0,
233 '0',0,
234 '0',0,
235 '0',0,
236 '0',0,
237 '0',0,
238 '0',0,
239 '0',0,
240 '0',0,
241 };
ARM COMPILER V2.50a, usbdesc 27/03/06 17:22:54 PAGE 5
ASSEMBLY LISTING OF GENERATED OBJECT CODE
*** PUBLICS:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -