📄 chap_9.lst
字号:
C51 COMPILER V7.06 CHAP_9 08/18/2005 15:30:26 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE CHAP_9
OBJECT MODULE PLACED IN CHAP_9.OBJ
COMPILER INVOKED BY: d:\Keil777\C51\BIN\C51.EXE CHAP_9.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1
2 #include <stdio.h>
3 #include <string.h>
4 #include "BasicTyp.h"
5 #include "common.h"
6 #include "usb.h"
7 #include "chap_9.h"
8 #include "Hal4D13.h"
9 #include "ISO.H"
10
11 // *************************************************************************
12 // Public Data
13 // *************************************************************************
14
15 extern D13FLAGS bD13flags;
16 extern USBCHECK_DEVICE_STATES bUSBCheck_Device_State;
17 extern CONTROL_XFER ControlData;
18
19 UCHAR ALTERNATIVE_SETTING = 0;
20
21 // *************************************************************************
22 // USB Device Descriptor
23 // *************************************************************************
24
25 #define NUM_ENDPOINTS 4
26
27 #define NUM_INTERFACE 2
28 #define NUM_ALTINTERFACE 2
29
30 #define CONFIG_DESCRIPTOR_LENGTH sizeof(USB_CONFIGURATION_DESCRIPTOR) \
31 + NUM_ALTINTERFACE * sizeof(USB_INTERFACE_DESCRIPTOR) \
32 + (NUM_ENDPOINTS * sizeof(USB_ENDPOINT_DESCRIPTOR))
33
34 USB_DEVICE_DESCRIPTOR DeviceDescr =
35 {
36 sizeof(USB_DEVICE_DESCRIPTOR),
37 USB_DEVICE_DESCRIPTOR_TYPE,
38 SWAP(0x110), //usb spec1.1
39 0,
40 0,
41 0,
42 EP0_PACKET_SIZE,
43 SWAP(0x0471),
44 SWAP(0x1A62), //0x1A61: ISA kit, 0x1A62: PCI kit, 0X1A65: Cotulla kit
45 SWAP(0x0100),
46 STR_INDEX_MANUFACTURER,
47 STR_INDEX_PRODUCT,
48 // STR_INDEX_SERIALNUMBER,
49 0,
50 1
51 };
52
53 USB_CONFIGURATION_DESCRIPTOR ConfigDescr =
54 {
55 sizeof(USB_CONFIGURATION_DESCRIPTOR),
C51 COMPILER V7.06 CHAP_9 08/18/2005 15:30:26 PAGE 2
56 USB_CONFIGURATION_DESCRIPTOR_TYPE,
57 SWAP(CONFIG_DESCRIPTOR_LENGTH),
58 1, //NO OF I/F: 1,
59 1,
60 STR_INDEX_CONFIGURATION,
61 0xC0,// no remote wakeup
62 0x01 // 2mA
63 };
64
65
66 USB_INTERFACE_DESCRIPTOR InterfaceDescr0 =
67 {
68 sizeof(USB_INTERFACE_DESCRIPTOR),
69 USB_INTERFACE_DESCRIPTOR_TYPE,
70 0, //InterfaceNumber
71 0, //Alternate Setting
72 NUM_ENDPOINTS, // No of Endpoints
73 USB_CLASS_CODE_UNKNOWN,
74 USB_SUBCLASS_CODE_UNKNOWN,
75 USB_PROTOCOL_CODE_UNKNOWN,
76 STR_INDEX_INTERFACE
77 };
78
79
80 USB_ENDPOINT_DESCRIPTOR EP_Descr[NUM_ENDPOINTS] =
81 {
82
83 // EP01 Interrupt Out
84 {
85 sizeof(USB_ENDPOINT_DESCRIPTOR),
86 USB_ENDPOINT_DESCRIPTOR_TYPE,
87 0x01,
88 USB_ENDPOINT_TYPE_INTERRUPT,
89 SWAP(NONISO_FIFOSIZE_8),
90 1
91 },
92 // EP02 Interrupt In
93 {
94 sizeof(USB_ENDPOINT_DESCRIPTOR),
95 USB_ENDPOINT_DESCRIPTOR_TYPE,
96 0x82,
97 USB_ENDPOINT_TYPE_INTERRUPT,
98 SWAP(NONISO_FIFOSIZE_8),
99 1
100 },
101 // EP03 Bulk Out
102 {
103 sizeof(USB_ENDPOINT_DESCRIPTOR),
104 USB_ENDPOINT_DESCRIPTOR_TYPE,
105 0x03,
106 USB_ENDPOINT_TYPE_BULK,
107 SWAP(NONISO_FIFOSIZE_8),
108 0
109 },
110 // EP04 Bulk IN
111 {
112 sizeof(USB_ENDPOINT_DESCRIPTOR),
113 USB_ENDPOINT_DESCRIPTOR_TYPE,
114 0x84,
115 USB_ENDPOINT_TYPE_BULK,
116 SWAP(NONISO_FIFOSIZE_8),
117 0
C51 COMPILER V7.06 CHAP_9 08/18/2005 15:30:26 PAGE 3
118 /* },
119
120 // EP05 ISO OUT
121 {
122 sizeof(USB_ENDPOINT_DESCRIPTOR),
123 USB_ENDPOINT_DESCRIPTOR_TYPE,
124 0x05,
125 USB_ENDPOINT_TYPE_ISOCHRONOUS,
126 SWAP(ISO_FIFOSIZE_16),
127 1
128 },
129 // EP06 ISO IN
130 {
131 sizeof(USB_ENDPOINT_DESCRIPTOR),
132 USB_ENDPOINT_DESCRIPTOR_TYPE,
133 0x86,
134 USB_ENDPOINT_TYPE_ISOCHRONOUS,
135 SWAP(ISO_FIFOSIZE_16),
136 1
137 */ }
138 };
139
140
141
142 USB_STRING_LANGUAGE_DESCRIPTOR strLanguage =
143 {
144 sizeof(USB_STRING_LANGUAGE_DESCRIPTOR),
145 // sizeof(strLanguage),
146 USB_STRING_DESCRIPTOR_TYPE,
147 SWAP(0x0409)
148 };
149
150
151
152 /*
153 USB_DEVICE_DESCRIPTOR DeviceDescr =
154 {
155 sizeof(USB_DEVICE_DESCRIPTOR),
156 USB_DEVICE_DESCRIPTOR_TYPE,
157 SWAP(0x200), //Complient to USB2.0 FullSpeed
158 0,//bDeviceClass
159 0,//bDeviceSubClass
160 0,//bDeviceProtocol
161 EP0_PACKET_SIZE,
162 SWAP(0x4cc), // Vendor ID for PHILIPS
163 SWAP(0x1a62),// Product ID for ISP 1362
164 SWAP(0x0100),// Device Release Number 1.0
165 0,//STR_INDEX_MANUFACTURER,
166 0,//STR_INDEX_PRODUCT,
167 0,//STR_INDEX_SERIALNUMBER,
168 1
169 };
170
171 USB_CONFIGURATION_DESCRIPTOR ConfigDescr =
172 {
173 sizeof(USB_CONFIGURATION_DESCRIPTOR),
174 USB_CONFIGURATION_DESCRIPTOR_TYPE,
175 SWAP(CONFIG_DESCRIPTOR_LENGTH),
176 1, //NO OF I/F: 1,
177 1, //bConfigurationValue
178 0,//iConfiguration
179 0xC0,//bmAttributes =>no remote wakeup
C51 COMPILER V7.06 CHAP_9 08/18/2005 15:30:26 PAGE 4
180 0x1//Max Power
181 };
182
183 USB_INTERFACE_DESCRIPTOR InterfaceDescr0 =
184 {
185 sizeof(USB_INTERFACE_DESCRIPTOR),
186 USB_INTERFACE_DESCRIPTOR_TYPE,
187 0,//bInterfaceNumber
188 0,//bAlternateSetting
189 0,//bNumEndpoints
190 USB_CLASS_CODE_UNKNOWN,
191 USB_SUBCLASS_CODE_UNKNOWN,
192 USB_PROTOCOL_CODE_UNKNOWN,
193 0,//STR_INDEX_INTERFACE
194 };
195
196
197 USB_INTERFACE_DESCRIPTOR InterfaceDescr1 =
198 {
199 sizeof(USB_INTERFACE_DESCRIPTOR),
200 USB_INTERFACE_DESCRIPTOR_TYPE,
201 0,//bInterfaceNumber
202 1,//bAlternateSetting
203 NUM_ENDPOINTS,
204 USB_CLASS_CODE_UNKNOWN,
205 USB_SUBCLASS_CODE_UNKNOWN,
206 USB_PROTOCOL_CODE_UNKNOWN,
207 0,//STR_INDEX_INTERFACE
208 };
209
210
211 USB_ENDPOINT_DESCRIPTOR EP_Descr[4] =
212 {
213
214 {
215 sizeof(USB_ENDPOINT_DESCRIPTOR),
216 USB_ENDPOINT_DESCRIPTOR_TYPE,
217 0x03,//EP03, 0x4, OUT
218 USB_ENDPOINT_TYPE_BULK,
219 SWAP(NONISO_FIFOSIZE_64),
220 0
221 },
222
223
224 {
225 sizeof(USB_ENDPOINT_DESCRIPTOR),
226 USB_ENDPOINT_DESCRIPTOR_TYPE,
227 0x84,// EP4, 0x5, IN
228 USB_ENDPOINT_TYPE_BULK,
229 SWAP(NONISO_FIFOSIZE_64),
230 0
231 },
232
233
234 {
235 sizeof(USB_ENDPOINT_DESCRIPTOR),
236 USB_ENDPOINT_DESCRIPTOR_TYPE,
237 0x05,// EP5 ISO OUT
238 USB_ENDPOINT_TYPE_ISOCHRONOUS,
239 SWAP(ISO_FIFOSIZE_512),
240 1
241 },
C51 COMPILER V7.06 CHAP_9 08/18/2005 15:30:26 PAGE 5
242
243
244 {
245 sizeof(USB_ENDPOINT_DESCRIPTOR),
246 USB_ENDPOINT_DESCRIPTOR_TYPE,
247 0x86,// EP6 ISO IN
248 USB_ENDPOINT_TYPE_ISOCHRONOUS,
249 SWAP(ISO_FIFOSIZE_512),
250 1
251 },
252 };
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -