⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 d12ic.lst

📁 AVR单片机控制的PDIUSBD12原程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 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 + -