?? usb.lst
字號:
C51 COMPILER V7.00 USB 12/15/2004 13:45:58 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE USB
OBJECT MODULE PLACED IN USB.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE USB.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <intrins.h>
2 #include "usb.h"
3
4 void ServiceSetupPacket(void)
5 {
6 1 s = RequestType;
7 1 SendData = sb7;
8 1 if ((sb6 & sb4 & sb3 & sb2) | (sb1 & sb0) != 0)
9 1 {
10 2 Invalid();
11 2 }
12 1 else
13 1 {
14 2 if (sb5 == 1)
15 2 s = 0x03;
16 2 s &= 0x03;
17 2
18 2 s = _cror_ (s, 4);
19 2
20 2 i = Request;
21 2 if (i > 15)
22 2 {
23 3 Invalid();
24 3 }
25 2 else
26 2 {
27 3 i &= 0x0f;
28 3 s |= i;
29 3 ReplyCount = 1;
30 3 ReplyBuffer[0] = 0;
31 3 ReplyBuffer[1] = 0;
32 3 SetAddr = 0;
33 3 STALL = 0;
34 3 IsDescriptor = 0;
35 3 switch (s) {
36 4 case 0x00:
37 4 DeviceGetStatus();
38 4 break;
39 4 case 0x01:
40 4 DeviceClearFeature();
41 4 break;
42 4 case 0x03:
43 4 DeviceSetFeature();
44 4 break;
45 4 case 0x05:
46 4 SetAddress();
47 4 break;
48 4 case 0x06:
49 4 GetDescriptor();
50 4 break;
51 4 case 0x07:
52 4 SetDescriptor();
53 4 break;
54 4 case 0x08:
55 4 GetConfiguration();
C51 COMPILER V7.00 USB 12/15/2004 13:45:58 PAGE 2
56 4 break;
57 4 case 0x09:
58 4 SetConfiguration();
59 4 break;
60 4
61 4 case 0x10:
62 4 InterfaceGetStatus();
63 4 break;
64 4 case 0x11:
65 4 InterfaceClearFeature();
66 4 break;
67 4 case 0x13:
68 4 InterfaceSetFeature();
69 4 break;
70 4 case 0x16:
71 4 GetClassDescriptor();
72 4 break;
73 4 case 0x17:
74 4 SetClassDescriptor();
75 4 break;
76 4 case 0x1a:
77 4 GetInterface();
78 4 break;
79 4 case 0x1b:
80 4 SetInterface();
81 4 break;
82 4 case 0x20:
83 4 EndpointGetStatus();
84 4 break;
85 4 case 0x21:
86 4 EndpointClearFeature();
87 4 break;
88 4 case 0x23:
89 4 EndpointSetFeature();
90 4 break;
91 4 case 0x2c:
92 4 EndpointSyncFrame();
93 4 break;
94 4
95 4 case 0x31:
96 4 GetReport();
97 4 break;
98 4 case 0x32:
99 4 GetIdle();
100 4 break;
101 4 case 0x33:
102 4 GetProtocol();
103 4 break;
104 4 case 0x34:
105 4 GetProtocol();
106 4 break;
107 4 case 0x39:
108 4 SetReport();
109 4 break;
110 4 case 0x3a:
111 4 SetIdle();
112 4 break;
113 4 case 0x3b:
114 4 SetProtocol();
115 4 break;
116 4
117 4 default:
C51 COMPILER V7.00 USB 12/15/2004 13:45:58 PAGE 3
118 4 ;
119 4 }
120 3 }
121 2 }
122 1 }
123
124 void DeviceGetStatus(void)
125 {
126 1 *ReplyBuffer = 1;
127 1 }
128
129 void DeviceClearFeature(void)
130 {
131 1 Invalid();
132 1 }
133
134 void DeviceSetFeature(void)
135 {
136 1 Invalid();
137 1 }
138
139 void SetAddress(void)
140 {
141 1 SetAddr = 1;
142 1 }
143
144 void GetDescriptor(void)
145 {
146 1 IsDescriptor = 1;
147 1 /*
148 1 if (i != 1)
149 1 {
150 1 Output(i);
151 1 delay(4000);
152 1 }
153 1 */
154 1 switch (wValueHigh) {
155 2 case 1:
156 2 PTR = DeviceDescriptor;
157 2 ReturnLength = *DeviceDescriptor;
158 2 break;
159 2 case 2:
160 2 PTR = ConfigurationDescriptor;
161 2 ReturnLength = ConfigLength;
162 2 break;
163 2 case 3:
164 2 // PTR = ConfigurationDescriptor;
165 2 PTR = String;
166 2 i = wValueLow;
167 2 while (i != 0 && *PTR != 0)
168 2 {
169 3 PTR += *PTR;
170 3 i--;
171 3 }
172 2 if (i == 0)
173 2 {
174 3 ReturnLength = *PTR;
175 3 }
176 2 else if (*PTR == 0)
177 2 {
178 3 Invalid();
179 3 }
C51 COMPILER V7.00 USB 12/15/2004 13:45:58 PAGE 4
180 2 break;
181 2 default:
182 2 Invalid();
183 2 }
184 1 }
185
186 void SetDescriptor(void)
187 {
188 1 Invalid();
189 1 }
190
191 void GetConfiguration(void)
192 {
193 1 *ReplyBuffer = CurrentConfiguration;
194 1 }
195
196 void SetConfiguration(void)
197 {
198 1 switch (wValueLow) {
199 2 case 0:
200 2 Configured = 0;
201 2 CurrentConfiguration = 0;
202 2 break;
203 2 case 1:
204 2 Configured = 1;
205 2 CurrentConfiguration = 1;
206 2 break;
207 2 default:
208 2 ;
209 2 }
210 1 }
211
212 void InterfaceGetStatus(void)
213 {
214 1 ReplyCount = 2;
215 1 }
216
217 void InterfaceClearFeature(void)
218 {
219 1 Invalid();
220 1 }
221
222 void InterfaceSetFeature(void)
223 {
224 1 Invalid();
225 1 }
226
227 void GetClassDescriptor(void)
228 {
229 1 IsDescriptor = 1;
230 1 i = wValueHigh;
231 1 i -= 0x21;
232 1 if (i == 0)
233 1 {
234 2 PTR = HIDDescriptor;
235 2 ReturnLength = *HIDDescriptor;
236 2 }
237 1 else
238 1 {
239 2 i--;
240 2 if (i == 0)
241 2 {
C51 COMPILER V7.00 USB 12/15/2004 13:45:58 PAGE 5
242 3 PTR = ReportDescriptor;
243 3 ReturnLength = ReportLength;
244 3 }
245 2 else
246 2 Invalid();
247 2 }
248 1 }
249
250 void SetClassDescriptor(void)
251 {
252 1 Invalid();
253 1 }
254
255 void GetInterface(void)
256 {
257 1 Invalid();
258 1 }
259
260 void SetInterface(void)
261 {
262 1 Invalid();
263 1 }
264
265 void EndpointGetStatus(void)
266 {
267 1 ReplyCount = 2;
268 1 }
269
270 void EndpointClearFeature(void)
271 {
272 1 Invalid();
273 1 }
274
275 void EndpointSetFeature(void)
276 {
277 1 Invalid();
278 1 }
279
280 void EndpointSyncFrame(void)
281 {
282 1 Invalid();
283 1 }
284
285 void GetReport(void)
286 {
287 1 if (Configured == 1)
288 1 {
289 2 *ReplyBuffer = 0x42;
290 2 }
291 1 else
292 1 Invalid();
293 1 }
294
295 void GetIdle(void)
296 {
297 1 Invalid();
298 1 }
299
300 void GetProtocol(void)
301 {
302 1 Invalid();
303 1 }
C51 COMPILER V7.00 USB 12/15/2004 13:45:58 PAGE 6
304
305 void SetReport(void)
306 {
307 1 if (Configured == 1)
308 1 {
309 2 Wait4D();
310 2 }
311 1 else
312 1 Invalid();
313 1 }
314
315 void SetIdle(void)
316 {
317 1 Invalid();
318 1 }
319
320 void SetProtocol(void)
321 {
322 1 Invalid();
323 1 }
324
325 void Invalid(void)
326 {
327 1 STALL = 1;
328 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 518 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 15 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -