📄 d12ic.lst
字号:
606 .LM59:
607 020a D816 cp r13,r24
608 020c 08F4 brsh .L20
137:d12ic.c **** j=len;
610 .LM60:
611 020e FD2C mov r15,r13
612 .L20:
138:d12ic.c **** for(i=0;i<j;i++)
614 .LM61:
615 0210 C0E0 ldi r28,lo8(0)
616 .L28:
617 0212 CF15 cp r28,r15
618 0214 48F4 brsh .L26
139:d12ic.c **** *(buf+i)=inportb(D12_DATA);
620 .LM62:
621 0216 82E0 ldi r24,lo8(2)
622 0218 90E0 ldi r25,hi8(2)
623 021a 0E94 0000 call inportb
624 021e F801 movw r30,r16
625 0220 8193 st Z+,r24
626 0222 8F01 movw r16,r30
628 .LM63:
629 0224 CF5F subi r28,lo8(-(1))
630 0226 F5CF rjmp .L28
631 .L26:
140:d12ic.c **** outportb(D12_COMMAND,0xF2);
633 .LM64:
634 0228 62EF ldi r22,lo8(242)
635 022a 70E0 ldi r23,hi8(242)
636 022c 83E0 ldi r24,lo8(3)
637 022e 90E0 ldi r25,hi8(3)
638 0230 0E94 0000 call outportb
141:d12ic.c **** D12_ReadLastTransactionStatus(endp);
640 .LM65:
641 0234 8E2D mov r24,r14
642 0236 0E94 0000 call D12_ReadLastTransactionStatus
142:d12ic.c **** return j;
644 .LM66:
645 023a 8F2D mov r24,r15
646 023c 9927 clr r25
647 .L15:
648 /* epilogue: frame size=0 */
649 023e DF91 pop r29
650 0240 CF91 pop r28
651 0242 1F91 pop r17
652 0244 0F91 pop r16
653 0246 FF90 pop r15
654 0248 EF90 pop r14
655 024a DF90 pop r13
656 024c 0895 ret
657 /* epilogue end (size=8) */
658 /* function D12_ReadEndpoint size 100 (85) */
664 .Lscope11:
669 .global D12_WriteEndpoint
671 D12_WriteEndpoint:
143:d12ic.c **** }
144:d12ic.c **** //把数据写入端点
145:d12ic.c **** unsigned char D12_WriteEndpoint(unsigned char endp,unsigned char len,unsigned char *buf)
146:d12ic.c **** {
673 .LM67:
674 /* prologue: frame size=0 */
675 024e DF92 push r13
676 0250 EF92 push r14
677 0252 FF92 push r15
678 0254 0F93 push r16
679 0256 1F93 push r17
680 0258 CF93 push r28
681 025a DF93 push r29
682 /* prologue end (size=7) */
683 025c D82E mov r13,r24
684 025e 062F mov r16,r22
685 0260 EA01 movw r28,r20
147:d12ic.c **** unsigned char i,j;
148:d12ic.c **** outportb(D12_COMMAND,endp);
687 .LM68:
688 0262 9927 clr r25
689 0264 BC01 movw r22,r24
690 0266 83E0 ldi r24,lo8(3)
691 0268 90E0 ldi r25,hi8(3)
692 026a 0E94 0000 call outportb
149:d12ic.c **** i=inportb(D12_DATA);
694 .LM69:
695 026e 82E0 ldi r24,lo8(2)
696 0270 90E0 ldi r25,hi8(2)
697 0272 0E94 0000 call inportb
150:d12ic.c **** outportb(D12_COMMAND,0xF0);
699 .LM70:
700 0276 60EF ldi r22,lo8(240)
701 0278 70E0 ldi r23,hi8(240)
702 027a 83E0 ldi r24,lo8(3)
703 027c 90E0 ldi r25,hi8(3)
704 027e 0E94 0000 call outportb
151:d12ic.c **** outportb(D12_DATA,0);
706 .LM71:
707 0282 60E0 ldi r22,lo8(0)
708 0284 70E0 ldi r23,hi8(0)
709 0286 82E0 ldi r24,lo8(2)
710 0288 90E0 ldi r25,hi8(2)
711 028a 0E94 0000 call outportb
152:d12ic.c **** outportb(D12_DATA,len);
713 .LM72:
714 028e E02E mov r14,r16
715 0290 FF24 clr r15
716 0292 B701 movw r22,r14
717 0294 82E0 ldi r24,lo8(2)
718 0296 90E0 ldi r25,hi8(2)
719 0298 0E94 0000 call outportb
153:d12ic.c **** for(j=0;j<len;j++)
721 .LM73:
722 029c 10E0 ldi r17,lo8(0)
723 .L36:
725 .LM74:
726 029e 1017 cp r17,r16
727 02a0 48F4 brsh .L35
154:d12ic.c **** outportb(D12_DATA,*(buf+j));
729 .LM75:
730 02a2 8991 ld r24,Y+
731 02a4 9927 clr r25
732 02a6 BC01 movw r22,r24
733 02a8 82E0 ldi r24,lo8(2)
734 02aa 90E0 ldi r25,hi8(2)
735 02ac 0E94 0000 call outportb
737 .LM76:
738 02b0 1F5F subi r17,lo8(-(1))
739 02b2 F5CF rjmp .L36
740 .L35:
155:d12ic.c **** outportb(D12_COMMAND,0xFA);
742 .LM77:
743 02b4 6AEF ldi r22,lo8(250)
744 02b6 70E0 ldi r23,hi8(250)
745 02b8 83E0 ldi r24,lo8(3)
746 02ba 90E0 ldi r25,hi8(3)
747 02bc 0E94 0000 call outportb
156:d12ic.c **** D12_ReadLastTransactionStatus(endp);
749 .LM78:
750 02c0 8D2D mov r24,r13
751 02c2 0E94 0000 call D12_ReadLastTransactionStatus
157:d12ic.c **** return len;
158:d12ic.c **** }
753 .LM79:
754 02c6 C701 movw r24,r14
755 /* epilogue: frame size=0 */
756 02c8 DF91 pop r29
757 02ca CF91 pop r28
758 02cc 1F91 pop r17
759 02ce 0F91 pop r16
760 02d0 FF90 pop r15
761 02d2 EF90 pop r14
762 02d4 DF90 pop r13
763 02d6 0895 ret
764 /* epilogue end (size=8) */
765 /* function D12_WriteEndpoint size 69 (54) */
770 .Lscope12:
773 .global D12_AcknowledgeEndpoint
775 D12_AcknowledgeEndpoint:
159:d12ic.c **** //端点应答处理
160:d12ic.c **** void D12_AcknowledgeEndpoint(unsigned char endp)
161:d12ic.c **** {
777 .LM80:
778 /* prologue: frame size=0 */
779 02d8 1F93 push r17
780 /* prologue end (size=1) */
781 02da 182F mov r17,r24
162:d12ic.c **** outportb(D12_COMMAND,endp);
783 .LM81:
784 02dc 9927 clr r25
785 02de BC01 movw r22,r24
786 02e0 83E0 ldi r24,lo8(3)
787 02e2 90E0 ldi r25,hi8(3)
788 02e4 0E94 0000 call outportb
163:d12ic.c **** outportb(D12_COMMAND,0xF1);
790 .LM82:
791 02e8 61EF ldi r22,lo8(241)
792 02ea 70E0 ldi r23,hi8(241)
793 02ec 83E0 ldi r24,lo8(3)
794 02ee 90E0 ldi r25,hi8(3)
795 02f0 0E94 0000 call outportb
164:d12ic.c **** if(endp==0)
797 .LM83:
798 02f4 1123 tst r17
799 02f6 31F4 brne .L37
165:d12ic.c **** outportb(D12_COMMAND,0xF2);
801 .LM84:
802 02f8 62EF ldi r22,lo8(242)
803 02fa 70E0 ldi r23,hi8(242)
804 02fc 83E0 ldi r24,lo8(3)
805 02fe 90E0 ldi r25,hi8(3)
806 0300 0E94 0000 call outportb
807 .L37:
808 /* epilogue: frame size=0 */
809 0304 1F91 pop r17
810 0306 0895 ret
811 /* epilogue end (size=2) */
812 /* function D12_AcknowledgeEndpoint size 24 (21) */
814 .Lscope13:
816 .global stall_ep0
818 stall_ep0:
166:d12ic.c ****
167:d12ic.c ****
168:d12ic.c **** }
169:d12ic.c **** //
170:d12ic.c **** void stall_ep0(void)
171:d12ic.c **** {
820 .LM85:
821 /* prologue: frame size=0 */
822 /* prologue end (size=0) */
172:d12ic.c **** // outportb(D12_COMMAND,0);
173:d12ic.c **** // outportb(D12_COMMAND,0xF1);
174:d12ic.c **** D12_SetEndpointStatus(0,1);
824 .LM86:
825 0308 61E0 ldi r22,lo8(1)
826 030a 80E0 ldi r24,lo8(0)
827 030c 0E94 0000 call D12_SetEndpointStatus
175:d12ic.c **** D12_SetEndpointStatus(1,1);
829 .LM87:
830 0310 61E0 ldi r22,lo8(1)
831 0312 862F mov r24,r22
832 0314 0E94 0000 call D12_SetEndpointStatus
833 /* epilogue: frame size=0 */
834 0318 0895 ret
835 /* epilogue end (size=1) */
836 /* function stall_ep0 size 9 (8) */
838 .Lscope14:
839 .comm EpBuf,2,1
840 .comm GenEpBuf,64,1
841 .comm bEPPflags,2,1
842 .comm ControlData,22,1
847 .text
849 Letext:
850 /* File "d12ic.c": code 398 = 0x018e ( 333), prologues 25, epilogues 40 */
DEFINED SYMBOLS
*ABS*:00000000 d12ic.c
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOQaaaa.s:3 *ABS*:0000003f __SREG__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOQaaaa.s:4 *ABS*:0000003e __SP_H__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOQaaaa.s:5 *ABS*:0000003d __SP_L__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOQaaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOQaaaa.s:7 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOQaaaa.s:111 .text:00000000 D12_SetAddressEnable
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOQaaaa.s:154 .text:0000002c D12_SetEndpointEnable
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOQaaaa.s:186 .text:0000004a D12_SetMode
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOQaaaa.s:230 .text:00000080 D12_SetDMA
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOQaaaa.s:262 .text:000000a2 D12_ReadInterruptRegister
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOQaaaa.s:311 .text:000000d2 D12_SelectEndpoint
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOQaaaa.s:341 .text:000000ea D12_ReadLastTransactionStatus
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOQaaaa.s:374 .text:00000106 D12_SetEndpointStatus
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOQaaaa.s:409 .text:0000012c D12_ReadEndpointStatus
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOQaaaa.s:440 .text:00000148 D12_SendResume
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOQaaaa.s:461 .text:00000156 D12_ReadCurrentFrameNumber
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOQaaaa.s:511 .text:00000186 D12_ReadEndpoint
*COM*:00000002 bEPPflags
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOQaaaa.s:671 .text:0000024e D12_WriteEndpoint
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOQaaaa.s:775 .text:000002d8 D12_AcknowledgeEndpoint
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOQaaaa.s:818 .text:00000308 stall_ep0
*COM*:00000002 EpBuf
*COM*:00000040 GenEpBuf
*COM*:00000016 ControlData
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOQaaaa.s:849 .text:0000031a Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
outportb
inportb
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -