Subversion Repositories group.electronics

Rev

Details | Last modification | View Log | RSS feed

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