📄 main.lst
字号:
413 /* epilogue: frame size=0 */
414 00f8 1F91 pop r17
415 00fa 0895 ret
416 /* epilogue end (size=2) */
417 /* function clr_stall size 13 (10) */
418 .LFE14:
420 .global rd_usb_data
422 rd_usb_data:
423 .LFB15:
424 .LM37:
425 /* prologue: frame size=0 */
426 00fc 0F93 push r16
427 00fe 1F93 push r17
428 0100 CF93 push r28
429 0102 DF93 push r29
430 /* prologue end (size=4) */
431 .LVL28:
432 0104 EC01 movw r28,r24
433 .LM38:
434 0106 88E2 ldi r24,lo8(40)
435 .LVL29:
436 0108 0E94 0000 call xWriteCH375Cmd
437 .LM39:
438 010c 0E94 0000 call xReadCH375Data
439 0110 082F mov r16,r24
440 .LVL30:
441 .LM40:
442 0112 8823 tst r24
443 0114 01F0 breq .L30
444 .LVL31:
445 .LM41:
446 0116 10E0 ldi r17,lo8(0)
447 .LVL32:
448 .L32:
449 0118 0E94 0000 call xReadCH375Data
450 .LVL33:
451 011c 8993 st Y+,r24
452 011e 1F5F subi r17,lo8(-(1))
453 0120 0117 cp r16,r17
454 0122 01F4 brne .L32
455 .LVL34:
456 .L30:
457 .LM42:
458 0124 802F mov r24,r16
459 0126 9927 clr r25
460 /* epilogue: frame size=0 */
461 0128 DF91 pop r29
462 012a CF91 pop r28
463 012c 1F91 pop r17
464 012e 0F91 pop r16
465 0130 0895 ret
466 /* epilogue end (size=5) */
467 /* function rd_usb_data size 27 (18) */
468 .LFE15:
470 .global wr_usb_data
472 wr_usb_data:
473 .LFB16:
474 .LM43:
475 /* prologue: frame size=0 */
476 0132 1F93 push r17
477 0134 CF93 push r28
478 0136 DF93 push r29
479 /* prologue end (size=3) */
480 .LVL35:
481 0138 182F mov r17,r24
482 013a EB01 movw r28,r22
483 .LM44:
484 013c 8BE2 ldi r24,lo8(43)
485 .LVL36:
486 013e 0E94 0000 call xWriteCH375Cmd
487 .LVL37:
488 .LM45:
489 0142 812F mov r24,r17
490 0144 0E94 0000 call xWriteCH375Data
491 .LM46:
492 0148 1150 subi r17,lo8(-(-1))
493 .LVL38:
494 014a 1F3F cpi r17,lo8(-1)
495 014c 01F0 breq .L38
496 .L39:
497 .LM47:
498 014e 8991 ld r24,Y+
499 0150 0E94 0000 call xWriteCH375Data
500 0154 1150 subi r17,1
501 0156 00F4 brcc .L39
502 .L38:
503 /* epilogue: frame size=0 */
504 0158 DF91 pop r29
505 015a CF91 pop r28
506 015c 1F91 pop r17
507 015e 0895 ret
508 /* epilogue end (size=4) */
509 /* function wr_usb_data size 24 (17) */
510 .LFE16:
512 .global issue_token
514 issue_token:
515 .LFB17:
516 .LM48:
517 /* prologue: frame size=0 */
518 0160 1F93 push r17
519 /* prologue end (size=1) */
520 .LVL39:
521 0162 182F mov r17,r24
522 .LM49:
523 0164 8FE4 ldi r24,lo8(79)
524 .LVL40:
525 0166 0E94 0000 call xWriteCH375Cmd
526 .LM50:
527 016a 812F mov r24,r17
528 016c 0E94 0000 call xWriteCH375Data
529 .LM51:
530 0170 0E94 0000 call wait_interrupt
531 .LM52:
532 0174 9927 clr r25
533 /* epilogue: frame size=0 */
534 0176 1F91 pop r17
535 0178 0895 ret
536 /* epilogue end (size=2) */
537 /* function issue_token size 13 (10) */
538 .LFE17:
540 .global issue_token_X
542 issue_token_X:
543 .LFB18:
544 .LM53:
545 /* prologue: frame size=0 */
546 017a 0F93 push r16
547 017c 1F93 push r17
548 /* prologue end (size=2) */
549 .LVL41:
550 017e 082F mov r16,r24
551 0180 162F mov r17,r22
552 .LM54:
553 0182 8EE4 ldi r24,lo8(78)
554 .LVL42:
555 0184 0E94 0000 call xWriteCH375Cmd
556 .LVL43:
557 .LM55:
558 0188 812F mov r24,r17
559 018a 0E94 0000 call xWriteCH375Data
560 .LM56:
561 018e 802F mov r24,r16
562 0190 0E94 0000 call xWriteCH375Data
563 .LM57:
564 0194 0E94 0000 call wait_interrupt
565 .LM58:
566 0198 9927 clr r25
567 /* epilogue: frame size=0 */
568 019a 1F91 pop r17
569 019c 0F91 pop r16
570 019e 0895 ret
571 /* epilogue end (size=3) */
572 /* function issue_token_X size 19 (14) */
573 .LFE18:
575 .global soft_reset_print
577 soft_reset_print:
578 .LFB19:
579 .LM59:
580 /* prologue: frame size=0 */
581 /* prologue end (size=0) */
582 .LM60:
583 01a0 1092 0000 sts tog_recv,__zero_reg__
584 01a4 1092 0000 sts tog_send,__zero_reg__
585 .LM61:
586 01a8 80E0 ldi r24,lo8(0)
587 01aa 0E94 0000 call toggle_send
588 .LM62:
589 01ae 81E2 ldi r24,lo8(33)
590 01b0 8093 0000 sts buffer,r24
591 01b4 82E0 ldi r24,lo8(2)
592 01b6 8093 0000 sts buffer+1,r24
593 01ba 1092 0000 sts buffer+7,__zero_reg__
594 01be 1092 0000 sts buffer+6,__zero_reg__
595 01c2 1092 0000 sts buffer+5,__zero_reg__
596 01c6 1092 0000 sts buffer+4,__zero_reg__
597 01ca 1092 0000 sts buffer+3,__zero_reg__
598 01ce 1092 0000 sts buffer+2,__zero_reg__
599 .LM63:
600 01d2 60E0 ldi r22,lo8(buffer)
601 01d4 70E0 ldi r23,hi8(buffer)
602 01d6 88E0 ldi r24,lo8(8)
603 01d8 0E94 0000 call wr_usb_data
604 .LM64:
605 01dc 8DE0 ldi r24,lo8(13)
606 01de 0E94 0000 call issue_token
607 01e2 8431 cpi r24,lo8(20)
608 01e4 01F0 breq .L49
609 01e6 0895 ret
610 .L49:
611 .LM65:
612 01e8 81E0 ldi r24,lo8(1)
613 01ea 0E94 0000 call toggle_recv
614 .LM66:
615 01ee 89E0 ldi r24,lo8(9)
616 01f0 0E94 0000 call issue_token
617 01f4 0895 ret
618 /* epilogue: frame size=0 */
619 /* epilogue: noreturn */
620 /* epilogue end (size=0) */
621 /* function soft_reset_print size 43 (43) */
622 .LFE19:
624 .global send_data
626 send_data:
627 .LFB20:
628 .LM67:
629 /* prologue: frame size=0 */
630 01f6 FF92 push r15
631 01f8 0F93 push r16
632 01fa 1F93 push r17
633 01fc CF93 push r28
634 01fe DF93 push r29
635 /* prologue end (size=5) */
636 .LVL44:
637 0200 EC01 movw r28,r24
638 0202 8B01 movw r16,r22
639 .LM68:
640 0204 892B or r24,r25
641 0206 01F4 brne .L59
642 .LVL45:
643 0208 00C0 rjmp .L58
644 .LVL46:
645 .L54:
646 .LM69:
647 020a 8A32 cpi r24,lo8(42)
648 020c 01F0 breq .L56
649 .LM70:
650 020e 8091 0000 lds r24,endp_out_addr
651 .LVL47:
652 0212 0E94 0000 call clr_stall
653 .LM71:
654 0216 1092 0000 sts tog_send,__zero_reg__
655 .LVL48:
656 .L56:
657 .LM72:
658 021a 2097 sbiw r28,0
659 021c 01F0 breq .L58
660 .LVL49:
661 .L59:
662 .LM73:
663 021e 8091 0000 lds r24,tog_send
664 .LVL50:
665 0222 0E94 0000 call toggle_send
666 .LM74:
667 0226 8091 0000 lds r24,endp_out_size
668 022a 9927 clr r25
669 022c C817 cp r28,r24
670 022e D907 cpc r29,r25
671 0230 00F4 brsh .L53
672 0232 CE01 movw r24,r28
673 .L53:
674 0234 F82E mov r15,r24
675 .LM75:
676 0236 B801 movw r22,r16
677 0238 0E94 0000 call wr_usb_data
678 .LM76:
679 023c 8091 0000 lds r24,endp_out_addr
680 0240 8295 swap r24
681 0242 807F andi r24,0xf0
682 0244 8160 ori r24,lo8(1)
683 0246 0E94 0000 call issue_token
684 .LVL51:
685 .LM77:
686 024a 8431 cpi r24,lo8(20)
687 024c 01F4 brne .L54
688 .LM78:
689 024e 8091 0000 lds r24,tog_send
690 .LVL52:
691 0252 8095 com r24
692 0254 8093 0000 sts tog_send,r24
693 .LM79:
694 0258 8F2D mov r24,r15
695 025a 9927 clr r25
696 025c C81B sub r28,r24
697 025e D90B sbc r29,r25
698 .LM80:
699 0260 080F add r16,r24
700 0262 191F adc r17,r25
701 .LM81:
702 0264 2097 sbiw r28,0
703 0266 01F4 brne .L59
704 .LVL53:
705 .L58:
706 /* epilogue: frame size=0 */
707 0268 DF91 pop r29
708 026a CF91 pop r28
709 026c 1F91 pop r17
710 026e 0F91 pop r16
711 0270 FF90 pop r15
712 0272 0895 ret
713 /* epilogue end (size=6) */
714 /* function send_data size 63 (52) */
715 .LFE20:
717 .global get_port_status
719 get_port_status:
720 .LFB21:
721 .LM82:
722 /* prologue: frame size=0 */
723 /* prologue end (size=0) */
724 .LM83:
725 0274 80E0 ldi r24,lo8(0)
726 0276 0E94 0000 call toggle_send
727 .LM84:
728 027a 81EA ldi r24,lo8(-95)
729 027c 8093 0000 sts buffer,r24
730 0280 81E0 ldi r24,lo8(1)
731 0282 8093 0000 sts buffer+1,r24
732 0286 1092 0000 sts buffer+5,__zero_reg__
733 028a 1092 0000 sts buffer+4,__zero_reg__
734 028e 1092 0000 sts buffer+3,__zero_reg__
735 0292 1092 0000 sts buffer+2,__zero_reg__
736 0296 8093 0000 sts buffer+6,r24
737 029a 1092 0000 sts buffer+7,__zero_reg__
738 .LM85:
739 029e 60E0 ldi r22,lo8(buffer)
740 02a0 70E0 ldi r23,hi8(buffer)
741 02a2 88E0 ldi r24,lo8(8)
742 02a4 0E94 0000 call wr_usb_data
743 .LM86:
744 02a8 8DE0 ldi r24,lo8(13)
745 02aa 0E94 0000 call issue_token
746 02ae 8431 cpi r24,lo8(20)
747 02b0 01F4 brne .L62
748 .LM87:
749 02b2 81E0 ldi r24,lo8(1)
750 02b4 0E94 0000 call toggle_recv
751 .LM88:
752 02b8 89E0 ldi r24,lo8(9)
753 02ba 0E94 0000 call issue_token
754 02be 8431 cpi r24,lo8(20)
755 02c0 01F4 brne .L62
756 .LM89:
757 02c2 80E0 ldi r24,lo8(buffer)
758 02c4 90E0 ldi r25,hi8(buffer)
759 02c6 0E94 0000 call rd_usb_data
760 .LM90:
761 02ca 81E0 ldi r24,lo8(1)
762 02cc 0E94 0000 call toggle_send
763 .LM91:
764 02d0 60E0 ldi r22,lo8(buffer)
765 02d2 70E0 ldi r23,hi8(buffer)
766 02d4 80E0 ldi r24,lo8(0)
767 02d6 0E94 0000 call wr_usb_data
768 .LM92:
769 02da 81E0 ldi r24,lo8(1)
770 02dc 0E94 0000 call issue_token
771 02e0 8431 cpi r24,lo8(20)
772 02e2 01F0 breq .L68
773 .L62:
774 02e4 8FEF ldi r24,lo8(255)
775 02e6 90E0 ldi r25,hi8(255)
776 .LM93:
777 02e8 0895 ret
778 .L68:
779 .LM94:
780 02ea 8091 0000 lds r24,buffer
781 02ee 9927 clr r25
782 02f0 0895 ret
783 /* epilogue: frame size=0 */
784 /* epilogue: noreturn */
785 /* epilogue end (size=0) */
786 /* function get_port_status size 63 (63) */
787 .LFE21:
789 .global get_port_status_X
791 get_port_status_X:
792 .LFB22:
793 .LM95:
794 /* prologue: frame size=0 */
795 /* prologue end (size=0) */
796 .LM96:
797 02f2 81EA ldi r24,lo8(-95)
798 02f4 8093 0000 sts buffer,r24
799 02f8 81E0 ldi r24,lo8(1)
800 02fa 8093 0000 sts buffer+1,r24
801 02fe 1092 0000 sts buffer+5,__zero_reg__
802 0302 1092 0000 sts buffer+4,__zero_reg__
803 0306 1092 0000 sts buffer+3,__zero_reg__
804 030a 1092 0000 sts buffer+2,__zero_reg__
805 030e 8093 0000 sts buffer+6,r24
806 0312 1092 0000 sts buffer+7,__zero_reg__
807 .LM97:
808 0316 60E0 ldi r22,lo8(buffer)
809 0318 70E0 ldi r23,hi8(buffer)
810 031a 88E0 ldi r24,lo8(8)
811 031c 0E94 0000 call wr_usb_data
812 .LM98:
813 0320 60E0 ldi r22,lo8(0)
814 0322 8DE0 ldi r24,lo8(13)
815 0324 0E94 0000 call issue_token_X
816 0328 8431 cpi r24,lo8(20)
817 032a 01F4 brne .L70
818 .LM99:
819 032c 60E8 ldi r22,lo8(-128)
820 032e 89E0 ldi r24,lo8(9)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -