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

📄 ax88796.s

📁 uIP是免费的TCP/IP协议栈,我们将它移植到我们的AVR以太网开发板中
💻 S
📖 第 1 页 / 共 3 页
字号:
	xcall _ax88796Write
	.dbline 488
	.dbline 488
	.dbline 488
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	andi R18,247
	ldi R16,20
	xcall _ax88796Write
	.dbline 488
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	ori R18,1
	ldi R16,20
	xcall _ax88796Write
	.dbline 488
	.dbline 488
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	andi R18,254
	ldi R16,20
	xcall _ax88796Write
	.dbline 488
	.dbline 488
	.dbline 488
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	ori R18,8
	ldi R16,20
	xcall _ax88796Write
	.dbline 488
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	ori R18,1
	ldi R16,20
	xcall _ax88796Write
	.dbline 488
	.dbline 488
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	andi R18,254
	ldi R16,20
	xcall _ax88796Write
	.dbline 488
	.dbline 488
	.dbline 488
	.dbline 490
;  
; 	mask8 = 0x10;
	ldi R22,16
	.dbline 491
; 	for(i=0;i<5;++i)
	clr R10
	clr R11
	xjmp L89
L86:
	.dbline 492
; 	{
	.dbline 493
;   	   	if(mask8 & phyad)
	mov R2,R22
	ldd R0,y+10
	and R2,R0
	breq L90
	.dbline 494
; 			set_mdo;
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	ori R18,8
	ldi R16,20
	xcall _ax88796Write
	xjmp L91
L90:
	.dbline 496
; 		else
; 			clr_mdo;
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	andi R18,247
	ldi R16,20
	xcall _ax88796Write
L91:
	.dbline 497
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	ori R18,1
	ldi R16,20
	xcall _ax88796Write
	.dbline 497
	.dbline 497
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	andi R18,254
	ldi R16,20
	xcall _ax88796Write
	.dbline 497
	.dbline 497
	.dbline 498
	lsr R22
	.dbline 499
L87:
	.dbline 491
	movw R24,R10
	adiw R24,1
	movw R10,R24
L89:
	.dbline 491
	movw R24,R10
	cpi R24,5
	ldi R30,0
	cpc R25,R30
	brlo L86
	.dbline 500
; 		mii_clk;
; 		mask8 >>= 1;	 
; 	}   
; 	mask8 = 0x10;
	ldi R22,16
	.dbline 501
; 	for(i=0;i<5;++i)
	clr R10
	clr R11
	xjmp L95
L92:
	.dbline 502
; 	{
	.dbline 503
;   		if(mask8 & regad)
	mov R2,R22
	and R2,R14
	breq L96
	.dbline 504
; 			set_mdo;
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	ori R18,8
	ldi R16,20
	xcall _ax88796Write
	xjmp L97
L96:
	.dbline 506
; 		else
; 			clr_mdo;
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	andi R18,247
	ldi R16,20
	xcall _ax88796Write
L97:
	.dbline 507
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	ori R18,1
	ldi R16,20
	xcall _ax88796Write
	.dbline 507
	.dbline 507
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	andi R18,254
	ldi R16,20
	xcall _ax88796Write
	.dbline 507
	.dbline 507
	.dbline 508
	lsr R22
	.dbline 509
L93:
	.dbline 501
	movw R24,R10
	adiw R24,1
	movw R10,R24
L95:
	.dbline 501
	movw R24,R10
	cpi R24,5
	ldi R30,0
	cpc R25,R30
	brlo L92
	.dbline 510
; 		mii_clk;
; 		mask8 >>= 1;	 
; 	}    					
; 	mii_w_ta;
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	ori R18,8
	ldi R16,20
	xcall _ax88796Write
	.dbline 510
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	ori R18,1
	ldi R16,20
	xcall _ax88796Write
	.dbline 510
	.dbline 510
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	andi R18,254
	ldi R16,20
	xcall _ax88796Write
	.dbline 510
	.dbline 510
	.dbline 510
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	andi R18,247
	ldi R16,20
	xcall _ax88796Write
	.dbline 510
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	ori R18,1
	ldi R16,20
	xcall _ax88796Write
	.dbline 510
	.dbline 510
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	andi R18,254
	ldi R16,20
	xcall _ax88796Write
	.dbline 510
	.dbline 510
	.dbline 510
	.dbline 512
;  
; 	mask16 = 0x8000;
	ldi R20,32768
	ldi R21,128
	.dbline 513
; 	for(i=0;i<16;++i)
	clr R10
	clr R11
	xjmp L101
L98:
	.dbline 514
; 	{
	.dbline 515
; 		if(mask16 & mii_data)
	movw R2,R20
	and R2,R12
	and R3,R13
	tst R2
	brne X0
	tst R3
	breq L102
X0:
	.dbline 516
; 			set_mdo;
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	ori R18,8
	ldi R16,20
	xcall _ax88796Write
	xjmp L103
L102:
	.dbline 518
; 		else
; 			clr_mdo;
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	andi R18,247
	ldi R16,20
	xcall _ax88796Write
L103:
	.dbline 519
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	ori R18,1
	ldi R16,20
	xcall _ax88796Write
	.dbline 519
	.dbline 519
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	andi R18,254
	ldi R16,20
	xcall _ax88796Write
	.dbline 519
	.dbline 519
	.dbline 520
	lsr R21
	ror R20
	.dbline 521
L99:
	.dbline 513
	movw R24,R10
	adiw R24,1
	movw R10,R24
L101:
	.dbline 513
	movw R24,R10
	cpi R24,16
	ldi R30,0
	cpc R25,R30
	brlo L98
	.dbline -2
L85:
	xcall pop_gset5
	adiw R28,4
	.dbline 0 ; func end
	ret
	.dbsym r mask16 20 i
	.dbsym r mask8 22 c
	.dbsym r i 10 i
	.dbsym r mii_data 12 i
	.dbsym r regad 14 c
	.dbsym l phyad 10 c
	.dbend
	.dbfunc e ax88796ReadMii _ax88796ReadMii fi
;       result16 -> R20,R21
;         mask16 -> R14,R15
;          mask8 -> R22
;              i -> R10
;          regad -> R12
;          phyad -> y+10
	.even
_ax88796ReadMii::
	xcall push_arg4
	xcall push_gset5
	mov R12,R18
	.dbline -1
	.dbline 525
; 		mii_clk;	 
; 		mask16 >>= 1;	 
; 	}   			
; }
;  
; unsigned int ax88796ReadMii(unsigned char phyad,unsigned char regad)
; {
	.dbline 529
; 	unsigned char mask8,i;
; 	unsigned int  mask16,result16;
;  
; 	mii_read;
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	andi R18,247
	ldi R16,20
	xcall _ax88796Write
	.dbline 529
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	ori R18,1
	ldi R16,20
	xcall _ax88796Write
	.dbline 529
	.dbline 529
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	andi R18,254
	ldi R16,20
	xcall _ax88796Write
	.dbline 529
	.dbline 529
	.dbline 529
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	ori R18,8
	ldi R16,20
	xcall _ax88796Write
	.dbline 529
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	ori R18,1
	ldi R16,20
	xcall _ax88796Write
	.dbline 529
	.dbline 529
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	andi R18,254
	ldi R16,20
	xcall _ax88796Write
	.dbline 529
	.dbline 529
	.dbline 529
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	ori R18,8
	ldi R16,20
	xcall _ax88796Write
	.dbline 529
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	ori R18,1
	ldi R16,20
	xcall _ax88796Write
	.dbline 529
	.dbline 529
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	andi R18,254
	ldi R16,20
	xcall _ax88796Write
	.dbline 529
	.dbline 529
	.dbline 529
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	andi R18,247
	ldi R16,20
	xcall _ax88796Write
	.dbline 529
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	ori R18,1
	ldi R16,20
	xcall _ax88796Write
	.dbline 529
	.dbline 529
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	andi R18,254
	ldi R16,20
	xcall _ax88796Write
	.dbline 529
	.dbline 529
	.dbline 529
	.dbline 531
; 
; 	mask8 = 0x10;
	ldi R22,16
	.dbline 532
; 	for(i=0;i<5;++i)
	clr R10
	xjmp L108
L105:
	.dbline 533
; 	{
	.dbline 534
; 		if(mask8 & phyad)
	mov R2,R22
	ldd R0,y+10
	and R2,R0
	breq L109
	.dbline 535
; 			set_mdo;
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	ori R18,8
	ldi R16,20
	xcall _ax88796Write
	xjmp L110
L109:
	.dbline 537
; 		else
; 			clr_mdo;
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	andi R18,247
	ldi R16,20
	xcall _ax88796Write
L110:
	.dbline 538
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	ori R18,1
	ldi R16,20
	xcall _ax88796Write
	.dbline 538
	.dbline 538
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	andi R18,254
	ldi R16,20
	xcall _ax88796Write
	.dbline 538
	.dbline 538
	.dbline 539
	lsr R22
	.dbline 540
L106:
	.dbline 532
	inc R10
L108:
	.dbline 532
	mov R24,R10
	cpi R24,5
	brlo L105
	.dbline 541
; 		mii_clk;	 
; 		mask8 >>= 1;
; 	}
; 	mask8 = 0x10;
	ldi R22,16
	.dbline 542
; 	for(i=0;i<5;++i)
	clr R10
	xjmp L114
L111:
	.dbline 543
; 	{
	.dbline 544
; 		if(mask8 & regad)
	mov R2,R22
	and R2,R12
	breq L115
	.dbline 545
; 			set_mdo;
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	ori R18,8
	ldi R16,20
	xcall _ax88796Write
	xjmp L116
L115:
	.dbline 547
; 		else
; 			clr_mdo;
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	andi R18,247
	ldi R16,20
	xcall _ax88796Write
L116:
	.dbline 548
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	ori R18,1
	ldi R16,20
	xcall _ax88796Write
	.dbline 548
	.dbline 548
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	andi R18,254
	ldi R16,20
	xcall _ax88796Write
	.dbline 548
	.dbline 548
	.dbline 549
	lsr R22
	.dbline 550
L112:
	.dbline 542
	inc R10
L114:
	.dbline 542
	mov R24,R10
	cpi R24,5
	brlo L111
	.dbline 552
; 		mii_clk;
; 		mask8 >>= 1;
; 	}
;    			
; 	mii_r_ta;
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	ori R18,1
	ldi R16,20
	xcall _ax88796Write
	.dbline 552
	.dbline 552
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	andi R18,254
	ldi R16,20
	xcall _ax88796Write
	.dbline 552
	.dbline 552
	.dbline 552
	.dbline 554
;  
; 	mask16 = 0x8000;
	ldi R24,32768
	ldi R25,128
	movw R14,R24
	.dbline 555
; 	result16 = 0x0000;
	clr R20
	clr R21
	.dbline 556
; 	for(i=0;i<16;++i)
	clr R10
	xjmp L120
L117:
	.dbline 557
; 	{
	.dbline 558
; 		mii_clk;
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	ori R18,1
	ldi R16,20
	xcall _ax88796Write
	.dbline 558
	.dbline 558
	ldi R16,20
	xcall _ax88796Read
	mov R18,R16
	andi R18,254
	ldi R16,20
	xcall _ax88796Write
	.dbline 558
	.dbline 558
	.dbline 559
; 		if(ax88796Read(MEMR) & 0x04)
	ldi R16,20
	xcall _ax88796Read
	sbrs R16,2
	rjmp L121
	.dbline 560
; 		{
	.dbline 561
; 			result16 |= mask16;
	or R20,R14
	or R21,R15
	.dbline 562
; 		}
	xjmp L122
L121:
	.dbline 564
; 		else
; 		{
	.dbline 565
; 			nop();
	nop
	.dbline 566
; 			break;
	xjmp L119
L122:
	.dbline 568
	lsr R15
	ror R14
	.dbline 569
L118:
	.dbline 556
	inc R10
L120:
	.dbline 556
	mov R24,R10
	cpi R24,16
	brlo L117
L119:
	.dbline 570
; 		}
; 		mask16 >>= 1;
; 	}
; 	return result16;
	movw R16,R20
	.dbline -2
L104:
	xcall pop_gset5
	adiw R28,4
	.dbline 0 ; func end
	ret
	.dbsym r result16 20 i
	.dbsym r mask16 14 i
	.dbsym r mask8 22 c
	.dbsym r i 10 c
	.dbsym r regad 12 c
	.dbsym l phyad 10 c
	.dbend
	.dbfunc e ax88796ProcessInterrupt _ax88796ProcessInterrupt fV
;           byte -> R20
	.even
_ax88796ProcessInterrupt::
	xcall push_gset1
	.dbline -1
	.dbline 575
	.dbline 576
	ldi R16,7
	xcall _ax88796Read
	mov R20,R16
	.dbline 578
	sbrs R16,4
	rjmp L124
	.dbline 579
	xcall _ax88796Overrun
L124:
	.dbline -2
L123:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r byte 20 c
	.dbend
	.area bss(ram, con, rel)
	.dbfile C:\DOCUME~1\yehaoran\桌面\AVRuIP\ax88796.c
_currentRetreiveAddress:
	.blkb 2
	.dbsym s currentRetreiveAddress _currentRetreiveAddress i
_nextPage:
	.blkb 1
	.dbsym s nextPage _nextPage c

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -