Blame | Last modification | View Log | RSS feed
1 .file "usbdrv.c"
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __CCP__ = 0x34
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
15 .Ltext0:
16 .global usbSetInterrupt
18 usbSetInterrupt:
19 .LFB3:
20 .LM1:
21 .LVL0:
22 0000 1F93 push r17
23 /* prologue: function */
24 /* frame size = 0 */
25 /* stack size = 1 */
26 .L__stack_usage = 1
27 0002 162F mov r17,r22
28 .LVL1:
29 .LBB63:
30 .LBB65:
31 .LM2:
32 0004 2091 0000 lds r18,usbTxStatus1
33 0008 24FF sbrs r18,4
34 000a 00C0 rjmp .L2
35 .LVL2:
36 .LM3:
37 000c 2091 0000 lds r18,usbTxStatus1+1
38 0010 38E8 ldi r19,lo8(-120)
39 0012 2327 eor r18,r19
40 0014 2093 0000 sts usbTxStatus1+1,r18
41 .L3:
42 .LM4:
43 0018 A82F mov r26,r24
44 001a B92F mov r27,r25
45 .LM5:
46 001c 812F mov r24,r17
47 .LVL3:
48 001e 8150 subi r24,lo8(-(-1))
49 0020 90E0 ldi r25,lo8(0)
50 .LVL4:
51 0022 8050 subi r24,lo8(-(usbTxStatus1+3))
52 0024 9040 sbci r25,hi8(-(usbTxStatus1+3))
53 .LBE65:
54 .LBE63:
55 0026 E0E0 ldi r30,lo8(usbTxStatus1+2)
56 0028 F0E0 ldi r31,hi8(usbTxStatus1+2)
57 .LVL5:
58 .L4:
59 .LBB67:
60 .LBB64:
61 .LM6:
62 002a 2D91 ld r18,X+
63 002c 2193 st Z+,r18
64 .LVL6:
65 .LM7:
66 002e E817 cp r30,r24
67 0030 F907 cpc r31,r25
68 0032 01F4 brne .L4
69 .LM8:
70 0034 80E0 ldi r24,lo8(usbTxStatus1+2)
71 0036 90E0 ldi r25,hi8(usbTxStatus1+2)
72 0038 612F mov r22,r17
73 003a 00D0 rcall usbCrc16Append
74 .LVL7:
75 .LM9:
76 003c 1C5F subi r17,lo8(-(4))
77 .LVL8:
78 003e 1093 0000 sts usbTxStatus1,r17
79 /* epilogue start */
80 .LBE64:
81 .LBE67:
82 .LM10:
83 0042 1F91 pop r17
84 .LVL9:
85 0044 0895 ret
86 .LVL10:
87 .L2:
88 .LBB68:
89 .LBB66:
90 .LM11:
91 0046 2AE5 ldi r18,lo8(90)
92 0048 2093 0000 sts usbTxStatus1,r18
93 004c 00C0 rjmp .L3
94 .LBE66:
95 .LBE68:
96 .LFE3:
98 .global usbPoll
100 usbPoll:
101 .LFB10:
102 .LM12:
103 004e 1F93 push r17
104 0050 CF93 push r28
105 0052 DF93 push r29
106 /* prologue: function */
107 /* frame size = 0 */
108 /* stack size = 3 */
109 .L__stack_usage = 3
110 .LM13:
111 0054 8091 0000 lds r24,usbRxLen
112 0058 8350 subi r24,lo8(-(-3))
113 .LVL11:
114 .LM14:
115 005a 87FD sbrc r24,7
116 005c 00C0 rjmp .L8
117 .LM15:
118 005e 2091 0000 lds r18,usbInputBufOffset
119 .LVL12:
120 .LBB69:
121 .LBB72:
122 .LM16:
123 0062 9091 0000 lds r25,usbRxToken
124 0066 9D32 cpi r25,lo8(45)
125 0068 01F4 brne .+2
126 006a 00C0 rjmp .L52
127 .LVL13:
128 .L9:
129 .LBE72:
130 .LBE69:
131 .LM17:
132 006c 1092 0000 sts usbRxLen,__zero_reg__
133 .L8:
134 .LM18:
135 0070 8091 0000 lds r24,usbTxLen
136 0074 84FF sbrs r24,4
137 0076 00C0 rjmp .L26
138 .LM19:
139 0078 6091 0000 lds r22,usbMsgLen
140 007c 6F3F cpi r22,lo8(-1)
141 007e 01F0 breq .L26
142 .LVL14:
143 .LBB107:
144 .LBB109:
145 .LM20:
146 0080 6930 cpi r22,lo8(9)
147 0082 00F4 brsh .+2
148 0084 00C0 rjmp .L53
149 .LVL15:
150 .LM21:
151 0086 6850 subi r22,lo8(-(-8))
152 0088 6093 0000 sts usbMsgLen,r22
153 .LM22:
154 008c 8091 0000 lds r24,usbTxBuf
155 0090 98E8 ldi r25,lo8(-120)
156 0092 8927 eor r24,r25
157 0094 8093 0000 sts usbTxBuf,r24
158 .LVL16:
159 0098 1CE0 ldi r17,lo8(12)
160 .LM23:
161 009a 68E0 ldi r22,lo8(8)
162 .LVL17:
163 .L40:
164 .LBB113:
165 .LBB116:
166 .LBB118:
167 .LM24:
168 009c 2091 0000 lds r18,usbMsgPtr
169 00a0 3091 0000 lds r19,usbMsgPtr+1
170 .LVL18:
171 .LM25:
172 00a4 8091 0000 lds r24,usbMsgFlags
173 00a8 86FF sbrs r24,6
174 00aa 00C0 rjmp .L29
175 .LM26:
176 00ac 462F mov r20,r22
177 00ae 4150 subi r20,lo8(-(-1))
178 00b0 50E0 ldi r21,lo8(0)
179 00b2 CA01 movw r24,r20
180 00b4 8050 subi r24,lo8(-(usbTxBuf+2))
181 00b6 9040 sbci r25,hi8(-(usbTxBuf+2))
182 .LBE118:
183 .LBE116:
184 .LBE113:
185 00b8 F901 movw r30,r18
186 00ba A0E0 ldi r26,lo8(usbTxBuf+1)
187 00bc B0E0 ldi r27,hi8(usbTxBuf+1)
188 .LVL19:
189 .L30:
190 .LBB126:
191 .LBB123:
192 .LBB121:
193 .LBB119:
194 .LBB120:
195 .LM27:
196 /* #APP */
197 ; 505 "usbdrv/usbdrv.c" 1
198 00be 7491 lpm r23, Z
199
200 ; 0 "" 2
201 .LVL20:
202 /* #NOAPP */
203 .LBE120:
204 .LM28:
205 00c0 7D93 st X+,r23
206 .LVL21:
207 .LM29:
208 00c2 3196 adiw r30,1
209 .LVL22:
210 .LBE119:
211 .LM30:
212 00c4 A817 cp r26,r24
213 00c6 B907 cpc r27,r25
214 00c8 01F4 brne .L30
215 .LVL23:
216 .L50:
217 .LM31:
218 00ca 4F5F subi r20,lo8(-(1))
219 00cc 5F4F sbci r21,hi8(-(1))
220 .LM32:
221 00ce 420F add r20,r18
222 00d0 531F adc r21,r19
223 .LVL24:
224 .LM33:
225 00d2 5093 0000 sts usbMsgPtr+1,r21
226 00d6 4093 0000 sts usbMsgPtr,r20
227 .LBE121:
228 .LBE123:
229 .LBE126:
230 .LM34:
231 00da 80E0 ldi r24,lo8(usbTxBuf+1)
232 00dc 90E0 ldi r25,hi8(usbTxBuf+1)
233 00de 00D0 rcall usbCrc16Append
234 .LVL25:
235 .LM35:
236 00e0 1C30 cpi r17,lo8(12)
237 00e2 01F0 breq .+2
238 00e4 00C0 rjmp .L41
239 .LM36:
240 00e6 1093 0000 sts usbTxLen,r17
241 .LVL26:
242 .L26:
243 .LM37:
244 00ea 94E1 ldi r25,lo8(20)
245 .LVL27:
246 .L37:
247 .LBE109:
248 .LBE107:
249 .LBB129:
250 .LM38:
251 00ec 86B3 in r24,54-32
252 .LVL28:
253 00ee 8570 andi r24,lo8(5)
254 .LVL29:
255 .LM39:
256 00f0 01F4 brne .L54
257 .LBE129:
258 .LM40:
259 00f2 9150 subi r25,lo8(-(-1))
260 .LVL30:
261 00f4 01F4 brne .L37
262 .LM41:
263 00f6 1092 0000 sts usbNewDeviceAddr,__zero_reg__
264 .LM42:
265 00fa 1092 0000 sts usbDeviceAddr,__zero_reg__
266 00fe 11E0 ldi r17,lo8(1)
267 .LVL31:
268 .L36:
269 .LBB130:
270 .LBB131:
271 .LM43:
272 0100 8091 0000 lds r24,wasReset.1530
273 .LVL32:
274 0104 1817 cp r17,r24
275 0106 01F0 breq .L7
276 .LM44:
277 0108 1123 tst r17
278 010a 01F0 breq .L55
279 .L39:
280 .LM45:
281 010c 1093 0000 sts wasReset.1530,r17
282 .L7:
283 /* epilogue start */
284 .LBE131:
285 .LBE130:
286 .LM46:
287 0110 DF91 pop r29
288 0112 CF91 pop r28
289 0114 1F91 pop r17
290 .LVL33:
291 0116 0895 ret
292 .LVL34:
293 .L54:
294 .LBB133:
295 .LM47:
296 0118 11E0 ldi r17,lo8(1)
297 011a 9923 tst r25
298 011c 01F0 breq .L36
299 011e 10E0 ldi r17,lo8(0)
300 0120 00C0 rjmp .L36
301 .LVL35:
302 .L55:
303 .LBE133:
304 .LBB134:
305 .LBB132:
306 .LM48:
307 0122 00D0 rcall hadUsbReset
308 0124 00C0 rjmp .L39
309 .LVL36:
310 .L52:
311 .LBE132:
312 .LBE134:
313 .LBB135:
314 .LBB71:
315 .LBB74:
316 .LM49:
317 0126 8830 cpi r24,lo8(8)
318 0128 01F0 breq .+2
319 012a 00C0 rjmp .L9
320 .LBE74:
321 .LBE71:
322 .LBE135:
323 .LM50:
324 012c CCE0 ldi r28,lo8(12)
325 012e D0E0 ldi r29,hi8(12)
326 0130 C21B sub r28,r18
327 0132 D109 sbc r29,__zero_reg__
328 0134 C050 subi r28,lo8(-(usbRxBuf))
329 0136 D040 sbci r29,hi8(-(usbRxBuf))
330 .LBB136:
331 .LBB105:
332 .LBB103:
333 .LM51:
334 0138 83EC ldi r24,lo8(-61)
335 .LVL37:
336 013a 8093 0000 sts usbTxBuf,r24
337 .LM52:
338 013e 8AE5 ldi r24,lo8(90)
339 0140 8093 0000 sts usbTxLen,r24
340 .LM53:
341 0144 1092 0000 sts usbMsgFlags,__zero_reg__
342 .LVL38:
343 .LM54:
344 0148 8881 ld r24,Y
345 014a 8076 andi r24,lo8(96)
346 .LM55:
347 014c 01F4 brne .L56
348 .LVL39:
349 .LBB76:
350 .LBB79:
351 .LM56:
352 014e 9A81 ldd r25,Y+2
353 .LVL40:
354 .LM57:
355 0150 1092 0000 sts usbTxBuf+9,__zero_reg__
356 .LBB81:
357 .LM58:
358 0154 8981 ldd r24,Y+1
359 .LVL41:
360 .LM59:
361 0156 8823 tst r24
362 0158 01F4 brne .L12
363 .LBB97:
364 .LM60:
365 015a 1092 0000 sts usbTxBuf+10,__zero_reg__
366 .LVL42:
367 .LM61:
368 015e 20E0 ldi r18,lo8(usbTxBuf+9)
369 0160 30E0 ldi r19,hi8(usbTxBuf+9)
370 .LVL43:
371 .LM62:
372 0162 82E0 ldi r24,lo8(2)
373 .LVL44:
374 .L13:
375 .LBE97:
376 .LBE81:
377 .LM63:
378 0164 3093 0000 sts usbMsgPtr+1,r19
379 0168 2093 0000 sts usbMsgPtr,r18
380 .LVL45:
381 .L11:
382 .LBE79:
383 .LBE76:
384 .LM64:
385 016c 9F81 ldd r25,Y+7
386 016e 9923 tst r25
387 0170 01F4 brne .L24
388 0172 9E81 ldd r25,Y+6
389 0174 9817 cp r25,r24
390 0176 00F4 brsh .L24
391 0178 892F mov r24,r25
392 .LVL46:
393 .L24:
394 .LM65:
395 017a 8093 0000 sts usbMsgLen,r24
396 017e 00C0 rjmp .L9
397 .LVL47:
398 .L53:
399 .LBE103:
400 .LBE105:
401 .LBE136:
402 .LBB137:
403 .LBB108:
404 .LM66:
405 0180 1092 0000 sts usbMsgLen,__zero_reg__
406 .LM67:
407 0184 8091 0000 lds r24,usbTxBuf
408 0188 98E8 ldi r25,lo8(-120)
409 018a 8927 eor r24,r25
410 018c 8093 0000 sts usbTxBuf,r24
411 .LVL48:
412 .LBB112:
413 .LBB115:
414 .LM68:
415 0190 6623 tst r22
416 0192 01F0 breq .+2
417 0194 00C0 rjmp .L57
418 .LBE115:
419 .LBE112:
420 .LM69:
421 0196 80E0 ldi r24,lo8(usbTxBuf+1)
422 0198 90E0 ldi r25,hi8(usbTxBuf+1)
423 .LVL49:
424 019a 60E0 ldi r22,lo8(0)
425 .LVL50:
426 019c 00D0 rcall usbCrc16Append
427 .LVL51:
428 .LM70:
429 019e 14E0 ldi r17,lo8(4)
430 .LVL52:
431 .L41:
432 .LM71:
433 01a0 8FEF ldi r24,lo8(-1)
434 01a2 8093 0000 sts usbMsgLen,r24
435 .LVL53:
436 .LM72:
437 01a6 1093 0000 sts usbTxLen,r17
438 01aa 00C0 rjmp .L26
439 .LVL54:
440 .L29:
441 .LBB111:
442 .LBB124:
443 .LBB122:
444 .LM73:
445 01ac D901 movw r26,r18
446 .LM74:
447 01ae 462F mov r20,r22
448 01b0 4150 subi r20,lo8(-(-1))
449 01b2 50E0 ldi r21,lo8(0)
450 01b4 CA01 movw r24,r20
451 01b6 8050 subi r24,lo8(-(usbTxBuf+2))
452 01b8 9040 sbci r25,hi8(-(usbTxBuf+2))
453 .LBE122:
454 .LBE124:
455 .LBE111:
456 01ba E0E0 ldi r30,lo8(usbTxBuf+1)
457 01bc F0E0 ldi r31,hi8(usbTxBuf+1)
458 .LVL55:
459 .L32:
460 .LBB110:
461 .LBB114:
462 .LBB117:
463 .LM75:
464 01be 7D91 ld r23,X+
465 01c0 7193 st Z+,r23
466 .LVL56:
467 .LM76:
468 01c2 E817 cp r30,r24
469 01c4 F907 cpc r31,r25
470 01c6 01F4 brne .L32
471 01c8 00C0 rjmp .L50
472 .LVL57:
473 .L56:
474 .LBE117:
475 .LBE114:
476 .LBE110:
477 .LBE108:
478 .LBE137:
479 .LBB138:
480 .LBB70:
481 .LBB73:
482 .LM77:
483 01ca CE01 movw r24,r28
484 .LVL58:
485 01cc 00D0 rcall usbFunctionSetup
486 .LVL59:
487 01ce 00C0 rjmp .L11
488 .LVL60:
489 .L12:
490 .LBB75:
491 .LBB78:
492 .LBB99:
493 .LM78:
494 01d0 8530 cpi r24,lo8(5)
495 01d2 01F0 breq .L58
496 .LM79:
497 01d4 8630 cpi r24,lo8(6)
498 01d6 01F0 breq .L59
499 .LM80:
500 01d8 8830 cpi r24,lo8(8)
501 01da 01F0 breq .L44
502 .LM81:
503 01dc 8930 cpi r24,lo8(9)
504 01de 01F0 breq .L60
505 .LM82:
506 01e0 8A30 cpi r24,lo8(10)
507 01e2 01F0 breq .L45
508 .LM83:
509 01e4 8B30 cpi r24,lo8(11)
510 01e6 01F0 breq .L61
511 .LM84:
512 01e8 20E0 ldi r18,lo8(usbTxBuf+9)
513 01ea 30E0 ldi r19,hi8(usbTxBuf+9)
514 .LVL61:
515 .LM85:
516 01ec 80E0 ldi r24,lo8(0)
517 .LVL62:
518 01ee 00C0 rjmp .L13
519 .L58:
520 .LM86:
521 01f0 9093 0000 sts usbNewDeviceAddr,r25
522 .LM87:
523 01f4 20E0 ldi r18,lo8(usbTxBuf+9)
524 01f6 30E0 ldi r19,hi8(usbTxBuf+9)
525 .LM88:
526 01f8 80E0 ldi r24,lo8(0)
527 01fa 00C0 rjmp .L13
528 .L59:
529 .LBE99:
530 .LBE78:
531 .LM89:
532 01fc 8B81 ldd r24,Y+3
533 .LVL63:
534 .LBB77:
535 .LBB80:
536 .LBB86:
537 .LBB88:
538 .LBB90:
539 .LM90:
540 01fe 8130 cpi r24,lo8(1)
541 0200 01F0 breq .L62
542 .LM91:
543 0202 8230 cpi r24,lo8(2)
544 0204 01F0 breq .L63
545 .LM92:
546 0206 8330 cpi r24,lo8(3)
547 0208 01F0 breq .L64
548 .LM93:
549 020a 8132 cpi r24,lo8(33)
550 020c 01F0 breq .L65
551 .LM94:
552 020e 8232 cpi r24,lo8(34)
553 0210 01F0 breq .L66
554 .L43:
555 .LM95:
556 0212 80E0 ldi r24,lo8(0)
557 .LVL64:
558 .L17:
559 .LBE90:
560 .LM96:
561 0214 90E4 ldi r25,lo8(64)
562 .LVL65:
563 0216 9093 0000 sts usbMsgFlags,r25
564 .LVL66:
565 021a 00C0 rjmp .L11
566 .LVL67:
567 .L44:
568 .LBE88:
569 .LBE86:
570 .LM97:
571 021c 20E0 ldi r18,lo8(usbConfiguration)
572 021e 30E0 ldi r19,hi8(usbConfiguration)
573 .LM98:
574 0220 81E0 ldi r24,lo8(1)
575 0222 00C0 rjmp .L13
576 .L60:
577 .LM99:
578 0224 9093 0000 sts usbConfiguration,r25
579 .LM100:
580 0228 20E0 ldi r18,lo8(usbTxBuf+9)
581 022a 30E0 ldi r19,hi8(usbTxBuf+9)
582 .LM101:
583 022c 80E0 ldi r24,lo8(0)
584 022e 00C0 rjmp .L13
585 .LVL68:
586 .L62:
587 .LBB85:
588 .LBB95:
589 .LBB93:
590 .LM102:
591 0230 80E0 ldi r24,lo8(usbDescriptorDevice)
592 0232 90E0 ldi r25,hi8(usbDescriptorDevice)
593 .LVL69:
594 0234 9093 0000 sts usbMsgPtr+1,r25
595 0238 8093 0000 sts usbMsgPtr,r24
596 023c 82E1 ldi r24,lo8(18)
597 023e 00C0 rjmp .L17
598 .LVL70:
599 .L45:
600 .LBE93:
601 .LBE95:
602 .LBE85:
603 .LM103:
604 0240 20E0 ldi r18,lo8(usbTxBuf+9)
605 0242 30E0 ldi r19,hi8(usbTxBuf+9)
606 .LM104:
607 0244 81E0 ldi r24,lo8(1)
608 0246 00C0 rjmp .L13
609 .L61:
610 .LBB83:
611 .LBB84:
612 .LM105:
613 0248 8BE4 ldi r24,lo8(75)
614 024a 8093 0000 sts usbTxStatus1+1,r24
615 .LM106:
616 024e 20E0 ldi r18,lo8(usbTxBuf+9)
617 0250 30E0 ldi r19,hi8(usbTxBuf+9)
618 .LM107:
619 0252 80E0 ldi r24,lo8(0)
620 0254 00C0 rjmp .L13
621 .LVL71:
622 .L64:
623 .LBE84:
624 .LBE83:
625 .LBB82:
626 .LBB87:
627 .LBB89:
628 .LBB91:
629 .LM108:
630 0256 9923 tst r25
631 0258 01F4 brne .L20
632 .LVL72:
633 .LM109:
634 025a 80E0 ldi r24,lo8(usbDescriptorString0)
635 025c 90E0 ldi r25,hi8(usbDescriptorString0)
636 .LVL73:
637 025e 9093 0000 sts usbMsgPtr+1,r25
638 0262 8093 0000 sts usbMsgPtr,r24
639 0266 84E0 ldi r24,lo8(4)
640 0268 00C0 rjmp .L17
641 .LVL74:
642 .L63:
643 .LBE91:
644 .LM110:
645 026a 80E0 ldi r24,lo8(usbDescriptorConfiguration)
646 026c 90E0 ldi r25,hi8(usbDescriptorConfiguration)
647 026e 9093 0000 sts usbMsgPtr+1,r25
648 0272 8093 0000 sts usbMsgPtr,r24
649 0276 82E2 ldi r24,lo8(34)
650 0278 00C0 rjmp .L17
651 .LVL75:
652 .L66:
653 .LM111:
654 027a 80E0 ldi r24,lo8(usbDescriptorHidReport)
655 027c 90E0 ldi r25,hi8(usbDescriptorHidReport)
656 027e 9093 0000 sts usbMsgPtr+1,r25
657 0282 8093 0000 sts usbMsgPtr,r24
658 0286 8AE2 ldi r24,lo8(42)
659 0288 00C0 rjmp .L17
660 .LVL76:
661 .L65:
662 .LM112:
663 028a 80E0 ldi r24,lo8(usbDescriptorConfiguration+18)
664 028c 90E0 ldi r25,hi8(usbDescriptorConfiguration+18)
665 028e 9093 0000 sts usbMsgPtr+1,r25
666 0292 8093 0000 sts usbMsgPtr,r24
667 0296 89E0 ldi r24,lo8(9)
668 0298 00C0 rjmp .L17
669 .LVL77:
670 .L57:
671 .LBE89:
672 .LBE87:
673 .LBE82:
674 .LBE80:
675 .LBE77:
676 .LBE75:
677 .LBE73:
678 .LBE70:
679 .LBE138:
680 .LBB139:
681 .LBB128:
682 .LBB127:
683 .LBB125:
684 .LM113:
685 029a 162F mov r17,r22
686 029c 1C5F subi r17,lo8(-(4))
687 029e 00C0 rjmp .L40
688 .LVL78:
689 .L20:
690 .LBE125:
691 .LBE127:
692 .LBE128:
693 .LBE139:
694 .LBB140:
695 .LBB106:
696 .LBB104:
697 .LBB102:
698 .LBB101:
699 .LBB100:
700 .LBB98:
701 .LBB96:
702 .LBB94:
703 .LBB92:
704 .LM114:
705 02a0 9130 cpi r25,lo8(1)
706 02a2 01F0 breq .L67
707 .LM115:
708 02a4 9230 cpi r25,lo8(2)
709 02a6 01F0 breq .+2
710 02a8 00C0 rjmp .L43
711 .LVL79:
712 .LM116:
713 02aa 80E0 ldi r24,lo8(usbDescriptorStringDevice)
714 02ac 90E0 ldi r25,hi8(usbDescriptorStringDevice)
715 .LVL80:
716 02ae 9093 0000 sts usbMsgPtr+1,r25
717 02b2 8093 0000 sts usbMsgPtr,r24
718 02b6 88E2 ldi r24,lo8(40)
719 02b8 00C0 rjmp .L17
720 .LVL81:
721 .L67:
722 .LM117:
723 02ba 80E0 ldi r24,lo8(usbDescriptorStringVendor)
724 02bc 90E0 ldi r25,hi8(usbDescriptorStringVendor)
725 02be 9093 0000 sts usbMsgPtr+1,r25
726 02c2 8093 0000 sts usbMsgPtr,r24
727 02c6 86E1 ldi r24,lo8(22)
728 02c8 00C0 rjmp .L17
729 .LBE92:
730 .LBE94:
731 .LBE96:
732 .LBE98:
733 .LBE100:
734 .LBE101:
735 .LBE102:
736 .LBE104:
737 .LBE106:
738 .LBE140:
739 .LFE10:
741 .global usbInit
743 usbInit:
744 .LFB11:
745 .LM118:
746 /* prologue: function */
747 /* frame size = 0 */
748 /* stack size = 0 */
749 .L__stack_usage = 0
750 .LM119:
751 02ca 85B7 in r24,85-32
752 02cc 8360 ori r24,lo8(3)
753 02ce 85BF out 85-32,r24
754 .LM120:
755 02d0 8BB7 in r24,91-32
756 02d2 8064 ori r24,lo8(64)
757 02d4 8BBF out 91-32,r24
758 .LBB141:
759 .LBB142:
760 .LM121:
761 02d6 8BE4 ldi r24,lo8(75)
762 02d8 8093 0000 sts usbTxStatus1+1,r24
763 .LBE142:
764 .LBE141:
765 .LM122:
766 02dc 8AE5 ldi r24,lo8(90)
767 02de 8093 0000 sts usbTxStatus1,r24
768 /* epilogue start */
769 .LM123:
770 02e2 0895 ret
771 .LFE11:
773 .global usbTxLen
774 .data
777 usbTxLen:
778 0000 5A .byte 90
779 .global usbDescriptorString0
780 .section .progmem.data,"a",@progbits
783 usbDescriptorString0:
784 0000 04 .byte 4
785 0001 03 .byte 3
786 0002 09 .byte 9
787 0003 04 .byte 4
788 .global usbDescriptorStringVendor
791 usbDescriptorStringVendor:
792 0004 1603 .word 790
793 0006 7600 .word 118
794 0008 6900 .word 105
795 000a 6B00 .word 107
796 000c 6900 .word 105
797 000e 7400 .word 116
798 0010 7300 .word 115
799 0012 2E00 .word 46
800 0014 6300 .word 99
801 0016 6F00 .word 111
802 0018 6D00 .word 109
803 .global usbDescriptorStringDevice
806 usbDescriptorStringDevice:
807 001a 2803 .word 808
808 001c 5500 .word 85
809 001e 5300 .word 83
810 0020 4200 .word 66
811 0022 2000 .word 32
812 0024 4E00 .word 78
813 0026 4500 .word 69
814 0028 5300 .word 83
815 002a 2000 .word 32
816 002c 5000 .word 80
817 002e 6100 .word 97
818 0030 6400 .word 100
819 0032 2000 .word 32
820 0034 6100 .word 97
821 0036 6400 .word 100
822 0038 6100 .word 97
823 003a 7000 .word 112
824 003c 7400 .word 116
825 003e 6500 .word 101
826 0040 7200 .word 114
827 .global usbDescriptorDevice
830 usbDescriptorDevice:
831 0042 12 .byte 18
832 0043 01 .byte 1
833 0044 10 .byte 16
834 0045 01 .byte 1
835 0046 00 .byte 0
836 0047 00 .byte 0
837 0048 00 .byte 0
838 0049 08 .byte 8
839 004a EA .byte -22
840 004b 1D .byte 29
841 004c 07 .byte 7
842 004d 10 .byte 16
843 004e 00 .byte 0
844 004f 01 .byte 1
845 0050 01 .byte 1
846 0051 02 .byte 2
847 0052 00 .byte 0
848 0053 01 .byte 1
849 .global usbDescriptorConfiguration
852 usbDescriptorConfiguration:
853 0054 09 .byte 9
854 0055 02 .byte 2
855 0056 22 .byte 34
856 0057 00 .byte 0
857 0058 01 .byte 1
858 0059 01 .byte 1
859 005a 00 .byte 0
860 005b 80 .byte -128
861 005c 32 .byte 50
862 005d 09 .byte 9
863 005e 04 .byte 4
864 005f 00 .byte 0
865 0060 00 .byte 0
866 0061 01 .byte 1
867 0062 03 .byte 3
868 0063 00 .byte 0
869 0064 00 .byte 0
870 0065 00 .byte 0
871 0066 09 .byte 9
872 0067 21 .byte 33
873 0068 01 .byte 1
874 0069 01 .byte 1
875 006a 00 .byte 0
876 006b 01 .byte 1
877 006c 22 .byte 34
878 006d 2A .byte 42
879 006e 00 .byte 0
880 006f 07 .byte 7
881 0070 05 .byte 5
882 0071 81 .byte -127
883 0072 03 .byte 3
884 0073 08 .byte 8
885 0074 00 .byte 0
886 0075 0A .byte 10
887 .comm usbMsgPtr,2,1
888 .comm usbRxToken,1,1
889 .comm usbConfiguration,1,1
890 .comm usbTxStatus1,12,1
891 .comm usbRxBuf,22,1
892 .comm usbInputBufOffset,1,1
893 .comm usbDeviceAddr,1,1
894 .comm usbNewDeviceAddr,1,1
895 .comm usbRxLen,1,1
896 .comm usbCurrentTok,1,1
897 .comm usbTxBuf,11,1
898 .data
901 usbMsgLen:
902 0001 FF .byte -1
903 .lcomm usbMsgFlags,1
904 .lcomm wasReset.1530,1
945 .Letext0:
DEFINED SYMBOLS
*ABS*:00000000 usbdrv.c
/tmp/ccz0Lc9R.s:2 *ABS*:0000003f __SREG__
/tmp/ccz0Lc9R.s:3 *ABS*:0000003e __SP_H__
/tmp/ccz0Lc9R.s:4 *ABS*:0000003d __SP_L__
/tmp/ccz0Lc9R.s:5 *ABS*:00000034 __CCP__
/tmp/ccz0Lc9R.s:6 *ABS*:00000000 __tmp_reg__
/tmp/ccz0Lc9R.s:7 *ABS*:00000001 __zero_reg__
/tmp/ccz0Lc9R.s:18 .text:00000000 usbSetInterrupt
*COM*:0000000c usbTxStatus1
/tmp/ccz0Lc9R.s:100 .text:0000004e usbPoll
*COM*:00000001 usbRxLen
*COM*:00000001 usbInputBufOffset
*COM*:00000001 usbRxToken
/tmp/ccz0Lc9R.s:777 .data:00000000 usbTxLen
/tmp/ccz0Lc9R.s:901 .data:00000001 usbMsgLen
*COM*:0000000b usbTxBuf
*COM*:00000002 usbMsgPtr
.bss:00000000 usbMsgFlags
*COM*:00000001 usbNewDeviceAddr
*COM*:00000001 usbDeviceAddr
/tmp/ccz0Lc9R.s:903 .bss:00000001 wasReset.1530
*COM*:00000016 usbRxBuf
*COM*:00000001 usbConfiguration
/tmp/ccz0Lc9R.s:830 .progmem.data:00000042 usbDescriptorDevice
/tmp/ccz0Lc9R.s:783 .progmem.data:00000000 usbDescriptorString0
/tmp/ccz0Lc9R.s:852 .progmem.data:00000054 usbDescriptorConfiguration
/tmp/ccz0Lc9R.s:806 .progmem.data:0000001a usbDescriptorStringDevice
/tmp/ccz0Lc9R.s:791 .progmem.data:00000004 usbDescriptorStringVendor
/tmp/ccz0Lc9R.s:743 .text:000002ca usbInit
*COM*:00000001 usbCurrentTok
UNDEFINED SYMBOLS
usbCrc16Append
hadUsbReset
usbFunctionSetup
usbDescriptorHidReport
__do_copy_data
__do_clear_bss