1 .file "CDC.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 .section .text.CDC_Device_Event_Stub,"ax",@progbits 17 .global CDC_Device_Event_Stub 19 CDC_Device_Event_Stub: 20 .LFB81: 21 .LSM0: 22 /* prologue: function */ 23 /* frame size = 0 */ 24 /* epilogue start */ 25 .LSM1: 26 0000 0895 ret 27 .LFE81: 29 .section .text.CDC_Device_BytesReceived,"ax",@progbits 30 .global CDC_Device_BytesReceived 32 CDC_Device_BytesReceived: 33 .LFB88: 34 .LSM2: 35 .LVL0: 36 /* prologue: function */ 37 /* frame size = 0 */ 38 0000 FC01 movw r30,r24 39 .LSM3: 40 0002 8091 0000 lds r24,USB_DeviceState 41 .LVL1: 42 0006 8430 cpi r24,lo8(4) 43 0008 01F4 brne .L4 44 000a 8785 ldd r24,Z+15 45 000c 9089 ldd r25,Z+16 46 000e A189 ldd r26,Z+17 47 0010 B289 ldd r27,Z+18 48 0012 0097 sbiw r24,0 49 0014 A105 cpc r26,__zero_reg__ 50 0016 B105 cpc r27,__zero_reg__ 51 0018 01F0 breq .L4 52 .LSM4: 53 001a 8581 ldd r24,Z+5 54 .LBB71: 55 .LBB72: 56 .LSM5: 57 001c 8093 E900 sts 233,r24 58 .LBE72: 59 .LBE71: 60 .LBB73: 61 .LBB74: 62 .LSM6: 63 0020 8091 E800 lds r24,232 64 .LBE74: 65 .LBE73: 66 .LSM7: 67 0024 82FF sbrs r24,2 68 0026 00C0 rjmp .L4 69 .LBB75: 70 .LBB76: 71 .LSM8: 72 0028 8091 F200 lds r24,242 73 .LBE76: 74 .LBE75: 75 .LSM9: 76 002c 8823 tst r24 77 002e 01F4 brne .L5 78 .LBB77: 79 .LBB78: 80 .LSM10: 81 0030 8091 E800 lds r24,232 82 0034 8B77 andi r24,lo8(123) 83 0036 8093 E800 sts 232,r24 84 003a 00C0 rjmp .L4 85 .L5: 86 .LBE78: 87 .LBE77: 88 .LBB79: 89 .LBB80: 90 .LSM11: 91 003c 8091 F200 lds r24,242 92 0040 282F mov r18,r24 93 0042 30E0 ldi r19,lo8(0) 94 0044 00C0 rjmp .L6 95 .L4: 96 .LSM12: 97 0046 20E0 ldi r18,lo8(0) 98 0048 30E0 ldi r19,hi8(0) 99 .L6: 100 .LBE80: 101 .LBE79: 102 .LSM13: 103 004a C901 movw r24,r18 104 /* epilogue start */ 105 004c 0895 ret 106 .LFE88: 108 .section .text.CDC_Device_ReceiveByte,"ax",@progbits 109 .global CDC_Device_ReceiveByte 111 CDC_Device_ReceiveByte: 112 .LFB89: 113 .LSM14: 114 .LVL2: 115 /* prologue: function */ 116 /* frame size = 0 */ 117 0000 FC01 movw r30,r24 118 .LSM15: 119 0002 8091 0000 lds r24,USB_DeviceState 120 .LVL3: 121 0006 8430 cpi r24,lo8(4) 122 0008 01F4 brne .L9 123 000a 8785 ldd r24,Z+15 124 000c 9089 ldd r25,Z+16 125 000e A189 ldd r26,Z+17 126 0010 B289 ldd r27,Z+18 127 0012 0097 sbiw r24,0 128 0014 A105 cpc r26,__zero_reg__ 129 0016 B105 cpc r27,__zero_reg__ 130 0018 01F0 breq .L9 131 .LSM16: 132 001a 8581 ldd r24,Z+5 133 .LBB81: 134 .LBB82: 135 .LSM17: 136 001c 8093 E900 sts 233,r24 137 .LBE82: 138 .LBE81: 139 .LBB83: 140 .LBB84: 141 .LSM18: 142 0020 8091 E800 lds r24,232 143 .LBE84: 144 .LBE83: 145 .LSM19: 146 0024 82FF sbrs r24,2 147 0026 00C0 rjmp .L9 148 .L10: 149 .LBB85: 150 .LBB86: 151 .LSM20: 152 0028 8091 F200 lds r24,242 153 .LBE86: 154 .LBE85: 155 .LSM21: 156 002c 8823 tst r24 157 002e 01F4 brne .L12 158 0030 2FEF ldi r18,lo8(-1) 159 0032 3FEF ldi r19,hi8(-1) 160 .LVL4: 161 0034 00C0 rjmp .L13 162 .LVL5: 163 .L12: 164 .LBB87: 165 .LBB88: 166 .LSM22: 167 0036 8091 F100 lds r24,241 168 .LBE88: 169 .LBE87: 170 .LSM23: 171 003a 282F mov r18,r24 172 .LVL6: 173 003c 30E0 ldi r19,lo8(0) 174 .LVL7: 175 .L13: 176 .LBB89: 177 .LBB90: 178 .LSM24: 179 003e 8091 F200 lds r24,242 180 .LBE90: 181 .LBE89: 182 .LSM25: 183 0042 8823 tst r24 184 0044 01F4 brne .L11 185 .LBB91: 186 .LBB92: 187 .LSM26: 188 0046 8091 E800 lds r24,232 189 004a 8B77 andi r24,lo8(123) 190 004c 8093 E800 sts 232,r24 191 0050 00C0 rjmp .L11 192 .LVL8: 193 .L9: 194 0052 2FEF ldi r18,lo8(-1) 195 0054 3FEF ldi r19,hi8(-1) 196 .LVL9: 197 .L11: 198 .LBE92: 199 .LBE91: 200 .LSM27: 201 0056 C901 movw r24,r18 202 .LVL10: 203 /* epilogue start */ 204 0058 0895 ret 205 .LFE89: 207 .section .text.CDC_Device_CreateStream,"ax",@progbits 208 .global CDC_Device_CreateStream 210 CDC_Device_CreateStream: 211 .LFB91: 212 .LSM28: 213 .LVL11: 214 /* prologue: function */ 215 /* frame size = 0 */ 216 0000 FB01 movw r30,r22 217 .LSM29: 218 0002 2EE0 ldi r18,lo8(14) 219 0004 DB01 movw r26,r22 220 0006 1D92 st X+,__zero_reg__ 221 0008 2A95 dec r18 222 000a 01F4 brne .-6 223 000c 23E0 ldi r18,lo8(3) 224 000e 2383 std Z+3,r18 225 0010 20E0 ldi r18,lo8(gs(CDC_Device_putchar)) 226 0012 30E0 ldi r19,hi8(gs(CDC_Device_putchar)) 227 0014 3187 std Z+9,r19 228 0016 2087 std Z+8,r18 229 0018 20E0 ldi r18,lo8(gs(CDC_Device_getchar)) 230 001a 30E0 ldi r19,hi8(gs(CDC_Device_getchar)) 231 001c 3387 std Z+11,r19 232 001e 2287 std Z+10,r18 233 .LSM30: 234 0020 9587 std Z+13,r25 235 0022 8487 std Z+12,r24 236 /* epilogue start */ 237 .LSM31: 238 0024 0895 ret 239 .LFE91: 241 .section .text.CDC_Device_CreateBlockingStream,"ax",@progbits 242 .global CDC_Device_CreateBlockingStream 244 CDC_Device_CreateBlockingStream: 245 .LFB92: 246 .LSM32: 247 .LVL12: 248 /* prologue: function */ 249 /* frame size = 0 */ 250 0000 FB01 movw r30,r22 251 .LSM33: 252 0002 2EE0 ldi r18,lo8(14) 253 0004 DB01 movw r26,r22 254 0006 1D92 st X+,__zero_reg__ 255 0008 2A95 dec r18 256 000a 01F4 brne .-6 257 000c 23E0 ldi r18,lo8(3) 258 000e 2383 std Z+3,r18 259 0010 20E0 ldi r18,lo8(gs(CDC_Device_putchar)) 260 0012 30E0 ldi r19,hi8(gs(CDC_Device_putchar)) 261 0014 3187 std Z+9,r19 262 0016 2087 std Z+8,r18 263 0018 20E0 ldi r18,lo8(gs(CDC_Device_getchar_Blocking)) 264 001a 30E0 ldi r19,hi8(gs(CDC_Device_getchar_Blocking)) 265 001c 3387 std Z+11,r19 266 001e 2287 std Z+10,r18 267 .LSM34: 268 0020 9587 std Z+13,r25 269 0022 8487 std Z+12,r24 270 /* epilogue start */ 271 .LSM35: 272 0024 0895 ret 273 .LFE92: 275 .section .text.CDC_Device_getchar,"ax",@progbits 277 CDC_Device_getchar: 278 .LFB94: 279 .LSM36: 280 .LVL13: 281 /* prologue: function */ 282 /* frame size = 0 */ 283 .LSM37: 284 0000 FC01 movw r30,r24 285 0002 8485 ldd r24,Z+12 286 0004 9585 ldd r25,Z+13 287 .LVL14: 288 0006 0E94 0000 call CDC_Device_ReceiveByte 289 000a 9C01 movw r18,r24 290 .LVL15: 291 .LSM38: 292 000c 97FF sbrs r25,7 293 000e 00C0 rjmp .L20 294 .LVL16: 295 0010 2EEF ldi r18,lo8(-2) 296 0012 3FEF ldi r19,hi8(-2) 297 .LVL17: 298 .L20: 299 .LSM39: 300 0014 C901 movw r24,r18 301 .LVL18: 302 /* epilogue start */ 303 0016 0895 ret 304 .LFE94: 306 .section .text.CDC_Device_SendControlLineStateChange,"ax",@progbits 307 .global CDC_Device_SendControlLineStateChange 309 CDC_Device_SendControlLineStateChange: 310 .LFB90: 311 .LSM40: 312 .LVL19: 313 0000 0F93 push r16 314 0002 1F93 push r17 315 0004 DF93 push r29 316 0006 CF93 push r28 317 0008 CDB7 in r28,__SP_L__ 318 000a DEB7 in r29,__SP_H__ 319 000c 2897 sbiw r28,8 320 000e 0FB6 in __tmp_reg__,__SREG__ 321 0010 F894 cli 322 0012 DEBF out __SP_H__,r29 323 0014 0FBE out __SREG__,__tmp_reg__ 324 0016 CDBF out __SP_L__,r28 325 /* prologue: function */ 326 /* frame size = 8 */ 327 0018 8C01 movw r16,r24 328 .LSM41: 329 001a 8091 0000 lds r24,USB_DeviceState 330 .LVL20: 331 001e 8430 cpi r24,lo8(4) 332 0020 01F4 brne .L25 333 0022 F801 movw r30,r16 334 0024 8785 ldd r24,Z+15 335 0026 9089 ldd r25,Z+16 336 0028 A189 ldd r26,Z+17 337 002a B289 ldd r27,Z+18 338 002c 0097 sbiw r24,0 339 002e A105 cpc r26,__zero_reg__ 340 0030 B105 cpc r27,__zero_reg__ 341 0032 01F0 breq .L25 342 .LSM42: 343 0034 8185 ldd r24,Z+9 344 .LBB93: 345 .LBB94: 346 .LSM43: 347 0036 8093 E900 sts 233,r24 348 .LBE94: 349 .LBE93: 350 .LSM44: 351 003a DE01 movw r26,r28 352 003c 1196 adiw r26,1 353 003e E0E0 ldi r30,lo8(C.17.3562) 354 0040 F0E0 ldi r31,hi8(C.17.3562) 355 0042 88E0 ldi r24,lo8(8) 356 .L24: 357 0044 0190 ld r0,Z+ 358 0046 0D92 st X+,r0 359 0048 8150 subi r24,lo8(-(-1)) 360 004a 01F4 brne .L24 361 .LSM45: 362 004c CE01 movw r24,r28 363 004e 0196 adiw r24,1 364 0050 68E0 ldi r22,lo8(8) 365 0052 70E0 ldi r23,hi8(8) 366 0054 40E0 ldi r20,lo8(0) 367 0056 50E0 ldi r21,hi8(0) 368 0058 0E94 0000 call Endpoint_Write_Stream_LE 369 .LSM46: 370 005c C801 movw r24,r16 371 005e 0E96 adiw r24,14 372 0060 61E0 ldi r22,lo8(1) 373 0062 70E0 ldi r23,hi8(1) 374 0064 40E0 ldi r20,lo8(0) 375 0066 50E0 ldi r21,hi8(0) 376 0068 0E94 0000 call Endpoint_Write_Stream_LE 377 .LBB95: 378 .LBB96: 379 .LSM47: 380 006c 8091 E800 lds r24,232 381 0070 8E77 andi r24,lo8(126) 382 0072 8093 E800 sts 232,r24 383 .L25: 384 /* epilogue start */ 385 .LBE96: 386 .LBE95: 387 .LSM48: 388 0076 2896 adiw r28,8 389 0078 0FB6 in __tmp_reg__,__SREG__ 390 007a F894 cli 391 007c DEBF out __SP_H__,r29 392 007e 0FBE out __SREG__,__tmp_reg__ 393 0080 CDBF out __SP_L__,r28 394 0082 CF91 pop r28 395 0084 DF91 pop r29 396 0086 1F91 pop r17 397 0088 0F91 pop r16 398 .LVL21: 399 008a 0895 ret 400 .LFE90: 402 .section .text.CDC_Device_SendString,"ax",@progbits 403 .global CDC_Device_SendString 405 CDC_Device_SendString: 406 .LFB85: 407 .LSM49: 408 .LVL22: 409 /* prologue: function */ 410 /* frame size = 0 */ 411 0000 FC01 movw r30,r24 412 .LSM50: 413 0002 8091 0000 lds r24,USB_DeviceState 414 .LVL23: 415 0006 8430 cpi r24,lo8(4) 416 0008 01F4 brne .L28 417 000a 8785 ldd r24,Z+15 418 000c 9089 ldd r25,Z+16 419 000e A189 ldd r26,Z+17 420 0010 B289 ldd r27,Z+18 421 0012 0097 sbiw r24,0 422 0014 A105 cpc r26,__zero_reg__ 423 0016 B105 cpc r27,__zero_reg__ 424 0018 01F0 breq .L28 425 .LSM51: 426 001a 8181 ldd r24,Z+1 427 .LBB97: 428 .LBB98: 429 .LSM52: 430 001c 8093 E900 sts 233,r24 431 .LBE98: 432 .LBE97: 433 .LSM53: 434 0020 CB01 movw r24,r22 435 0022 BA01 movw r22,r20 436 .LVL24: 437 0024 40E0 ldi r20,lo8(0) 438 0026 50E0 ldi r21,hi8(0) 439 .LVL25: 440 0028 0E94 0000 call Endpoint_Write_Stream_LE 441 .LVL26: 442 002c 0895 ret 443 .LVL27: 444 .L28: 445 002e 82E0 ldi r24,lo8(2) 446 .LSM54: 447 0030 0895 ret 448 .LFE85: 450 .section .text.CDC_Device_Flush,"ax",@progbits 451 .global CDC_Device_Flush 453 CDC_Device_Flush: 454 .LFB87: 455 .LSM55: 456 .LVL28: 457 /* prologue: function */ 458 /* frame size = 0 */ 459 0000 FC01 movw r30,r24 460 .LSM56: 461 0002 8091 0000 lds r24,USB_DeviceState 462 .LVL29: 463 0006 8430 cpi r24,lo8(4) 464 0008 01F4 brne .L32 465 000a 8785 ldd r24,Z+15 466 000c 9089 ldd r25,Z+16 467 000e A189 ldd r26,Z+17 468 0010 B289 ldd r27,Z+18 469 0012 0097 sbiw r24,0 470 0014 A105 cpc r26,__zero_reg__ 471 0016 B105 cpc r27,__zero_reg__ 472 0018 01F0 breq .L32 473 .LSM57: 474 001a 8181 ldd r24,Z+1 475 .LBB99: 476 .LBB100: 477 .LSM58: 478 001c 8093 E900 sts 233,r24 479 .LBE100: 480 .LBE99: 481 .LBB101: 482 .LBB102: 483 .LSM59: 484 0020 8091 F200 lds r24,242 485 .LBE102: 486 .LBE101: 487 .LSM60: 488 0024 8823 tst r24 489 0026 01F0 breq .L33 490 .LBB103: 491 .LBB104: 492 .LSM61: 493 0028 9091 E800 lds r25,232 494 .LBE104: 495 .LBE103: 496 .LBB105: 497 .LBB106: 498 .LSM62: 499 002c 8091 E800 lds r24,232 500 0030 8E77 andi r24,lo8(126) 501 0032 8093 E800 sts 232,r24 502 .LBE106: 503 .LBE105: 504 .LSM63: 505 0036 95FD sbrc r25,5 506 0038 00C0 rjmp .L33 507 .LSM64: 508 003a 0E94 0000 call Endpoint_WaitUntilReady 509 .LVL30: 510 003e 982F mov r25,r24 511 .LVL31: 512 0040 8823 tst r24 513 0042 01F4 brne .L34 514 .LVL32: 515 .LBB107: 516 .LBB108: 517 .LSM65: 518 0044 8091 E800 lds r24,232 519 .LVL33: 520 0048 8E77 andi r24,lo8(126) 521 004a 8093 E800 sts 232,r24 522 004e 00C0 rjmp .L34 523 .LVL34: 524 .L32: 525 0050 92E0 ldi r25,lo8(2) 526 .LVL35: 527 0052 00C0 rjmp .L34 528 .LVL36: 529 .L33: 530 0054 90E0 ldi r25,lo8(0) 531 .LVL37: 532 .L34: 533 .LBE108: 534 .LBE107: 535 .LSM66: 536 0056 892F mov r24,r25 537 /* epilogue start */ 538 0058 0895 ret 539 .LFE87: 541 .section .text.CDC_Device_USBTask,"ax",@progbits 542 .global CDC_Device_USBTask 544 CDC_Device_USBTask: 545 .LFB84: 546 .LSM67: 547 .LVL38: 548 /* prologue: function */ 549 /* frame size = 0 */ 550 0000 FC01 movw r30,r24 551 .LSM68: 552 0002 8091 0000 lds r24,USB_DeviceState 553 .LVL39: 554 0006 8430 cpi r24,lo8(4) 555 0008 01F4 brne .L38 556 000a 8785 ldd r24,Z+15 557 000c 9089 ldd r25,Z+16 558 000e A189 ldd r26,Z+17 559 0010 B289 ldd r27,Z+18 560 0012 0097 sbiw r24,0 561 0014 A105 cpc r26,__zero_reg__ 562 0016 B105 cpc r27,__zero_reg__ 563 0018 01F0 breq .L38 564 .LSM69: 565 001a CF01 movw r24,r30 566 001c 0E94 0000 call CDC_Device_Flush 567 .LVL40: 568 .L38: 569 0020 0895 ret 570 .LFE84: 572 .section .text.CDC_Device_getchar_Blocking,"ax",@progbits 574 CDC_Device_getchar_Blocking: 575 .LFB95: 576 .LSM70: 577 .LVL41: 578 0000 CF93 push r28 579 0002 DF93 push r29 580 /* prologue: function */ 581 /* frame size = 0 */ 582 0004 EC01 movw r28,r24 583 0006 00C0 rjmp .L40 584 .LVL42: 585 .L43: 586 .LSM71: 587 0008 8091 0000 lds r24,USB_DeviceState 588 .LVL43: 589 000c 8823 tst r24 590 000e 01F4 brne .L41 591 0010 2EEF ldi r18,lo8(-2) 592 0012 3FEF ldi r19,hi8(-2) 593 0014 00C0 rjmp .L42 594 .L41: 595 .LSM72: 596 0016 8C85 ldd r24,Y+12 597 0018 9D85 ldd r25,Y+13 598 001a 0E94 0000 call CDC_Device_USBTask 599 .LVL44: 600 .LSM73: 601 001e 0E94 0000 call USB_USBTask 602 .LVL45: 603 .L40: 604 .LSM74: 605 0022 8C85 ldd r24,Y+12 606 0024 9D85 ldd r25,Y+13 607 0026 0E94 0000 call CDC_Device_ReceiveByte 608 002a 9C01 movw r18,r24 609 .LVL46: 610 002c 97FD sbrc r25,7 611 002e 00C0 rjmp .L43 612 .L42: 613 .LSM75: 614 0030 C901 movw r24,r18 615 .LVL47: 616 /* epilogue start */ 617 0032 DF91 pop r29 618 0034 CF91 pop r28 619 .LVL48: 620 0036 0895 ret 621 .LFE95: 623 .section .text.CDC_Device_SendByte,"ax",@progbits 624 .global CDC_Device_SendByte 626 CDC_Device_SendByte: 627 .LFB86: 628 .LSM76: 629 .LVL49: 630 0000 1F93 push r17 631 /* prologue: function */ 632 /* frame size = 0 */ 633 0002 FC01 movw r30,r24 634 0004 162F mov r17,r22 635 .LSM77: 636 0006 8091 0000 lds r24,USB_DeviceState 637 .LVL50: 638 000a 8430 cpi r24,lo8(4) 639 000c 01F4 brne .L46 640 .LVL51: 641 000e 8785 ldd r24,Z+15 642 0010 9089 ldd r25,Z+16 643 0012 A189 ldd r26,Z+17 644 0014 B289 ldd r27,Z+18 645 0016 0097 sbiw r24,0 646 0018 A105 cpc r26,__zero_reg__ 647 001a B105 cpc r27,__zero_reg__ 648 001c 01F0 breq .L46 649 .LSM78: 650 001e 8181 ldd r24,Z+1 651 .LBB109: 652 .LBB110: 653 .LSM79: 654 0020 8093 E900 sts 233,r24 655 .LBE110: 656 .LBE109: 657 .LBB111: 658 .LBB112: 659 .LSM80: 660 0024 8091 E800 lds r24,232 661 .LBE112: 662 .LBE111: 663 .LSM81: 664 0028 85FD sbrc r24,5 665 002a 00C0 rjmp .L47 666 .LBB113: 667 .LBB114: 668 .LBB115: 669 .LSM82: 670 002c 8091 E800 lds r24,232 671 0030 8E77 andi r24,lo8(126) 672 0032 8093 E800 sts 232,r24 673 .LBE115: 674 .LBE114: 675 .LSM83: 676 0036 0E94 0000 call Endpoint_WaitUntilReady 677 .LVL52: 678 003a 8823 tst r24 679 .LVL53: 680 003c 01F4 brne .L48 681 .LVL54: 682 .L47: 683 .LBE113: 684 .LBB116: 685 .LBB117: 686 .LSM84: 687 003e 1093 F100 sts 241,r17 688 0042 80E0 ldi r24,lo8(0) 689 0044 00C0 rjmp .L48 690 .LVL55: 691 .L46: 692 .LSM85: 693 0046 82E0 ldi r24,lo8(2) 694 .LVL56: 695 .L48: 696 .LVL57: 697 /* epilogue start */ 698 .LBE117: 699 .LBE116: 700 .LSM86: 701 0048 1F91 pop r17 702 .LVL58: 703 004a 0895 ret 704 .LFE86: 706 .section .text.CDC_Device_putchar,"ax",@progbits 708 CDC_Device_putchar: 709 .LFB93: 710 .LSM87: 711 .LVL59: 712 /* prologue: function */ 713 /* frame size = 0 */ 714 0000 282F mov r18,r24 715 0002 FB01 movw r30,r22 716 .LSM88: 717 0004 8485 ldd r24,Z+12 718 0006 9585 ldd r25,Z+13 719 .LVL60: 720 0008 622F mov r22,r18 721 .LVL61: 722 000a 0E94 0000 call CDC_Device_SendByte 723 .LVL62: 724 000e 8823 tst r24 725 0010 01F4 brne .L51 726 0012 20E0 ldi r18,lo8(0) 727 0014 30E0 ldi r19,hi8(0) 728 0016 00C0 rjmp .L52 729 .L51: 730 0018 2FEF ldi r18,lo8(-1) 731 001a 3FEF ldi r19,hi8(-1) 732 .L52: 733 .LSM89: 734 001c C901 movw r24,r18 735 /* epilogue start */ 736 001e 0895 ret 737 .LFE93: 739 .section .text.CDC_Device_ConfigureEndpoints,"ax",@progbits 740 .global CDC_Device_ConfigureEndpoints 742 CDC_Device_ConfigureEndpoints: 743 .LFB83: 744 .LSM90: 745 .LVL63: 746 0000 1F93 push r17 747 0002 CF93 push r28 748 0004 DF93 push r29 749 /* prologue: function */ 750 /* frame size = 0 */ 751 0006 EC01 movw r28,r24 752 .LSM91: 753 0008 0D96 adiw r24,13 754 .LVL64: 755 000a FC01 movw r30,r24 756 000c 89E0 ldi r24,lo8(9) 757 000e DF01 movw r26,r30 758 0010 1D92 st X+,__zero_reg__ 759 0012 8A95 dec r24 760 0014 01F4 brne .-6 761 0016 11E0 ldi r17,lo8(1) 762 .LVL65: 763 .L64: 764 .LBB118: 765 .LBB119: 766 .LSM92: 767 0018 8981 ldd r24,Y+1 768 001a 1817 cp r17,r24 769 001c 01F4 brne .L55 770 .LSM93: 771 001e EA81 ldd r30,Y+2 772 0020 FB81 ldd r31,Y+3 773 .LVL66: 774 .LSM94: 775 0022 8C81 ldd r24,Y+4 776 .LVL67: 777 0024 62E0 ldi r22,lo8(2) 778 .LVL68: 779 0026 00C0 rjmp .L67 780 .LVL69: 781 .L55: 782 .LSM95: 783 0028 8D81 ldd r24,Y+5 784 002a 1817 cp r17,r24 785 002c 01F4 brne .L57 786 .LSM96: 787 002e EE81 ldd r30,Y+6 788 0030 FF81 ldd r31,Y+7 789 .LVL70: 790 .LSM97: 791 0032 8885 ldd r24,Y+8 792 .LVL71: 793 0034 62E0 ldi r22,lo8(2) 794 .LVL72: 795 0036 30E0 ldi r19,lo8(0) 796 .LVL73: 797 0038 00C0 rjmp .L56 798 .LVL74: 799 .L57: 800 .LSM98: 801 003a 8985 ldd r24,Y+9 802 003c 1817 cp r17,r24 803 003e 01F4 brne .L58 804 .LSM99: 805 0040 EA85 ldd r30,Y+10 806 0042 FB85 ldd r31,Y+11 807 .LVL75: 808 .LSM100: 809 0044 8C85 ldd r24,Y+12 810 .LVL76: 811 0046 63E0 ldi r22,lo8(3) 812 .LVL77: 813 .L67: 814 0048 31E0 ldi r19,lo8(1) 815 .LVL78: 816 .L56: 817 .LSM101: 818 004a 8823 tst r24 819 004c 01F4 brne .L59 820 004e 40E0 ldi r20,lo8(0) 821 0050 00C0 rjmp .L60 822 .L59: 823 0052 44E0 ldi r20,lo8(4) 824 .L60: 825 0054 20E0 ldi r18,lo8(0) 826 .LVL79: 827 0056 88E0 ldi r24,lo8(8) 828 0058 90E0 ldi r25,hi8(8) 829 .LVL80: 830 005a 00C0 rjmp .L61 831 .L62: 832 .LBB120: 833 .LBB121: 834 .LBB122: 835 .LBB123: 836 .LSM102: 837 005c 2F5F subi r18,lo8(-(1)) 838 .LSM103: 839 005e 880F lsl r24 840 0060 991F rol r25 841 .L61: 842 .LSM104: 843 0062 8E17 cp r24,r30 844 0064 9F07 cpc r25,r31 845 0066 00F0 brlo .L62 846 .LBE123: 847 .LBE122: 848 .LBE121: 849 .LSM105: 850 0068 6295 swap r22 851 006a 660F lsl r22 852 006c 660F lsl r22 853 006e 607C andi r22,lo8(-64) 854 0070 632B or r22,r19 855 0072 4260 ori r20,lo8(2) 856 0074 2295 swap r18 857 0076 207F andi r18,lo8(-16) 858 0078 422B or r20,r18 859 007a 812F mov r24,r17 860 .LVL81: 861 007c 0E94 0000 call Endpoint_ConfigureEndpoint_Prv 862 .LVL82: 863 .LBE120: 864 .LSM106: 865 0080 8823 tst r24 866 0082 01F0 breq .L63 867 .L58: 868 .LBE119: 869 .LSM107: 870 0084 1F5F subi r17,lo8(-(1)) 871 0086 1530 cpi r17,lo8(5) 872 0088 01F4 brne .L64 873 008a 81E0 ldi r24,lo8(1) 874 .L63: 875 /* epilogue start */ 876 .LBE118: 877 .LSM108: 878 008c DF91 pop r29 879 008e CF91 pop r28 880 .LVL83: 881 0090 1F91 pop r17 882 .LVL84: 883 0092 0895 ret 884 .LFE83: 886 .section .text.CDC_Device_ProcessControlRequest,"ax",@progbits 887 .global CDC_Device_ProcessControlRequest 889 CDC_Device_ProcessControlRequest: 890 .LFB82: 891 .LSM109: 892 .LVL85: 893 0000 CF93 push r28 894 0002 DF93 push r29 895 /* prologue: function */ 896 /* frame size = 0 */ 897 0004 EC01 movw r28,r24 898 .LBB124: 899 .LBB125: 900 .LSM110: 901 0006 8091 E800 lds r24,232 902 .LVL86: 903 .LBE125: 904 .LBE124: 905 .LSM111: 906 000a 83FF sbrs r24,3 907 000c 00C0 rjmp .L75 908 .LSM112: 909 000e 8881 ld r24,Y 910 0010 90E0 ldi r25,lo8(0) 911 0012 2091 0000 lds r18,USB_ControlRequest+4 912 0016 3091 0000 lds r19,(USB_ControlRequest+4)+1 913 001a 2817 cp r18,r24 914 001c 3907 cpc r19,r25 915 001e 01F0 breq .+2 916 0020 00C0 rjmp .L75 917 .LSM113: 918 0022 8091 0000 lds r24,USB_ControlRequest+1 919 0026 8132 cpi r24,lo8(33) 920 0028 01F0 breq .L71 921 002a 8232 cpi r24,lo8(34) 922 002c 00F4 brsh .L74 923 002e 8032 cpi r24,lo8(32) 924 0030 01F0 breq .+2 925 0032 00C0 rjmp .L75 926 0034 00C0 rjmp .L76 927 .L74: 928 0036 8232 cpi r24,lo8(34) 929 0038 01F0 breq .L72 930 003a 8332 cpi r24,lo8(35) 931 003c 01F0 breq .+2 932 003e 00C0 rjmp .L75 933 0040 00C0 rjmp .L77 934 .L71: 935 .LSM114: 936 0042 8091 0000 lds r24,USB_ControlRequest 937 0046 813A cpi r24,lo8(-95) 938 0048 01F0 breq .+2 939 004a 00C0 rjmp .L75 940 .LBB126: 941 .LBB127: 942 .LSM115: 943 004c 8091 E800 lds r24,232 944 0050 877F andi r24,lo8(-9) 945 0052 8093 E800 sts 232,r24 946 .LBE127: 947 .LBE126: 948 .LSM116: 949 0056 CE01 movw r24,r28 950 0058 0F96 adiw r24,15 951 005a 67E0 ldi r22,lo8(7) 952 005c 70E0 ldi r23,hi8(7) 953 005e 0E94 0000 call Endpoint_Write_Control_Stream_LE 954 .LBB128: 955 .LBB129: 956 .LSM117: 957 0062 8091 E800 lds r24,232 958 0066 8B77 andi r24,lo8(123) 959 0068 8093 E800 sts 232,r24 960 006c 00C0 rjmp .L75 961 .L76: 962 .LBE129: 963 .LBE128: 964 .LSM118: 965 006e 8091 0000 lds r24,USB_ControlRequest 966 0072 8132 cpi r24,lo8(33) 967 0074 01F4 brne .L75 968 .LBB130: 969 .LBB131: 970 .LSM119: 971 0076 8091 E800 lds r24,232 972 007a 877F andi r24,lo8(-9) 973 007c 8093 E800 sts 232,r24 974 .LBE131: 975 .LBE130: 976 .LSM120: 977 0080 CE01 movw r24,r28 978 0082 0F96 adiw r24,15 979 0084 67E0 ldi r22,lo8(7) 980 0086 70E0 ldi r23,hi8(7) 981 0088 0E94 0000 call Endpoint_Read_Control_Stream_LE 982 .LBB132: 983 .LBB133: 984 .LSM121: 985 008c 8091 E800 lds r24,232 986 0090 8E77 andi r24,lo8(126) 987 0092 8093 E800 sts 232,r24 988 .LBE133: 989 .LBE132: 990 .LSM122: 991 0096 CE01 movw r24,r28 992 0098 0E94 0000 call EVENT_CDC_Device_LineEncodingChanged 993 009c 00C0 rjmp .L75 994 .L72: 995 .LSM123: 996 009e 8091 0000 lds r24,USB_ControlRequest 997 00a2 8132 cpi r24,lo8(33) 998 00a4 01F4 brne .L75 999 .LBB134: 1000 .LBB135: 1001 .LSM124: 1002 00a6 8091 E800 lds r24,232 1003 00aa 877F andi r24,lo8(-9) 1004 00ac 8093 E800 sts 232,r24 1005 .LBE135: 1006 .LBE134: 1007 .LSM125: 1008 00b0 0E94 0000 call Endpoint_ClearStatusStage 1009 .LSM126: 1010 00b4 8091 0000 lds r24,USB_ControlRequest+2 1011 00b8 8D87 std Y+13,r24 1012 .LSM127: 1013 00ba CE01 movw r24,r28 1014 00bc 0E94 0000 call EVENT_CDC_Device_ControLineStateChanged 1015 00c0 00C0 rjmp .L75 1016 .L77: 1017 .LSM128: 1018 00c2 8091 0000 lds r24,USB_ControlRequest 1019 00c6 8132 cpi r24,lo8(33) 1020 00c8 01F4 brne .L75 1021 .LBB136: 1022 .LBB137: 1023 .LSM129: 1024 00ca 8091 E800 lds r24,232 1025 00ce 877F andi r24,lo8(-9) 1026 00d0 8093 E800 sts 232,r24 1027 .LBE137: 1028 .LBE136: 1029 .LSM130: 1030 00d4 0E94 0000 call Endpoint_ClearStatusStage 1031 .LSM131: 1032 00d8 CE01 movw r24,r28 1033 00da 6091 0000 lds r22,USB_ControlRequest+2 1034 00de 0E94 0000 call EVENT_CDC_Device_BreakSent 1035 .L75: 1036 /* epilogue start */ 1037 .LSM132: 1038 00e2 DF91 pop r29 1039 00e4 CF91 pop r28 1040 .LVL87: 1041 00e6 0895 ret 1042 .LFE82: 1044 .data 1047 C.17.3562: 1048 0000 A1 .byte -95 1049 0001 20 .byte 32 1050 0002 0000 .word 0 1051 0004 0000 .word 0 1052 0006 0100 .word 1 1053 .weak EVENT_CDC_Device_LineEncodingChanged 1054 .set EVENT_CDC_Device_LineEncodingChanged,CDC_Device_Event_Stub 1055 .weak EVENT_CDC_Device_ControLineStateChanged 1056 .set EVENT_CDC_Device_ControLineStateChanged,CDC_Device_Event_Stub 1057 .weak EVENT_CDC_Device_BreakSent 1058 .set EVENT_CDC_Device_BreakSent,CDC_Device_Event_Stub 1195 .Letext0: DEFINED SYMBOLS *ABS*:0000000000000000 CDC.c /tmp/cc6wpRq4.s:2 *ABS*:000000000000003f __SREG__ /tmp/cc6wpRq4.s:3 *ABS*:000000000000003e __SP_H__ /tmp/cc6wpRq4.s:4 *ABS*:000000000000003d __SP_L__ /tmp/cc6wpRq4.s:5 *ABS*:0000000000000034 __CCP__ /tmp/cc6wpRq4.s:6 *ABS*:0000000000000000 __tmp_reg__ /tmp/cc6wpRq4.s:7 *ABS*:0000000000000001 __zero_reg__ /tmp/cc6wpRq4.s:19 .text.CDC_Device_Event_Stub:0000000000000000 CDC_Device_Event_Stub /tmp/cc6wpRq4.s:32 .text.CDC_Device_BytesReceived:0000000000000000 CDC_Device_BytesReceived /tmp/cc6wpRq4.s:111 .text.CDC_Device_ReceiveByte:0000000000000000 CDC_Device_ReceiveByte /tmp/cc6wpRq4.s:210 .text.CDC_Device_CreateStream:0000000000000000 CDC_Device_CreateStream /tmp/cc6wpRq4.s:708 .text.CDC_Device_putchar:0000000000000000 CDC_Device_putchar /tmp/cc6wpRq4.s:277 .text.CDC_Device_getchar:0000000000000000 CDC_Device_getchar /tmp/cc6wpRq4.s:244 .text.CDC_Device_CreateBlockingStream:0000000000000000 CDC_Device_CreateBlockingStream /tmp/cc6wpRq4.s:574 .text.CDC_Device_getchar_Blocking:0000000000000000 CDC_Device_getchar_Blocking /tmp/cc6wpRq4.s:309 .text.CDC_Device_SendControlLineStateChange:0000000000000000 CDC_Device_SendControlLineStateChange /tmp/cc6wpRq4.s:1047 .data:0000000000000000 C.17.3562 /tmp/cc6wpRq4.s:405 .text.CDC_Device_SendString:0000000000000000 CDC_Device_SendString /tmp/cc6wpRq4.s:453 .text.CDC_Device_Flush:0000000000000000 CDC_Device_Flush /tmp/cc6wpRq4.s:544 .text.CDC_Device_USBTask:0000000000000000 CDC_Device_USBTask /tmp/cc6wpRq4.s:626 .text.CDC_Device_SendByte:0000000000000000 CDC_Device_SendByte /tmp/cc6wpRq4.s:742 .text.CDC_Device_ConfigureEndpoints:0000000000000000 CDC_Device_ConfigureEndpoints /tmp/cc6wpRq4.s:889 .text.CDC_Device_ProcessControlRequest:0000000000000000 CDC_Device_ProcessControlRequest /tmp/cc6wpRq4.s:19 .text.CDC_Device_Event_Stub:0000000000000000 EVENT_CDC_Device_LineEncodingChanged /tmp/cc6wpRq4.s:19 .text.CDC_Device_Event_Stub:0000000000000000 EVENT_CDC_Device_ControLineStateChanged /tmp/cc6wpRq4.s:19 .text.CDC_Device_Event_Stub:0000000000000000 EVENT_CDC_Device_BreakSent UNDEFINED SYMBOLS USB_DeviceState Endpoint_Write_Stream_LE Endpoint_WaitUntilReady USB_USBTask Endpoint_ConfigureEndpoint_Prv USB_ControlRequest Endpoint_Write_Control_Stream_LE Endpoint_Read_Control_Stream_LE Endpoint_ClearStatusStage __do_copy_data