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

📄 ax88796.lst

📁 一个AVR 上的UIP移植程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 401               		.stabn 68,0,154,.LM58-ax88796Read
 402               	.LM58:
 403               	.LBB3:
 404 0172 85B3      		in r24,53-0x20
 405 0174 807E      		andi r24,lo8(-32)
 406 0176 892B      		or r24,r25
 407 0178 85BB      		out 53-0x20,r24
 155:ax88796.c     **** 
 156:ax88796.c     **** 	// assert read
 157:ax88796.c     **** 	cbi(AX88796_CONTROL_PORT, AX88796_CONTROL_READPIN);
 408               		.stabn 68,0,157,.LM59-ax88796Read
 409               	.LM59:
 410 017a AD98      		cbi 53-0x20,5
 158:ax88796.c     **** 	asm volatile ("nop");
 411               		.stabn 68,0,158,.LM60-ax88796Read
 412               	.LM60:
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s 			page 11


 413               	/* #APP */
 414 017c 0000      		nop
 159:ax88796.c     **** 
 160:ax88796.c     **** 	// read in the data
 161:ax88796.c     **** 	byte = inb( AX88796_DATA_PIN );
 415               		.stabn 68,0,161,.LM61-ax88796Read
 416               	.LM61:
 417               	/* #NOAPP */
 418 017e 89B3      		in r24,57-0x20
 162:ax88796.c     **** 	asm volatile ("nop");
 419               		.stabn 68,0,162,.LM62-ax88796Read
 420               	.LM62:
 421               	/* #APP */
 422 0180 0000      		nop
 163:ax88796.c     **** 
 164:ax88796.c     **** 	// negate read
 165:ax88796.c     **** 	sbi(AX88796_CONTROL_PORT, AX88796_CONTROL_READPIN) ;
 423               		.stabn 68,0,165,.LM63-ax88796Read
 424               	.LM63:
 425               	/* #NOAPP */
 426 0182 AD9A      		sbi 53-0x20,5
 166:ax88796.c     **** 
 167:ax88796.c     **** 	return byte;
 427               		.stabn 68,0,167,.LM64-ax88796Read
 428               	.LM64:
 429 0184 9927      		clr r25
 168:ax88796.c     **** }
 430               		.stabn 68,0,168,.LM65-ax88796Read
 431               	.LM65:
 432               	.LBE3:
 433               	/* epilogue: frame size=0 */
 434 0186 0895      		ret
 435               	/* epilogue end (size=1) */
 436               	/* function ax88796Read size 14 (13) */
 437               		.size	ax88796Read, .-ax88796Read
 438               		.stabs	"byte:r(4,1)",64,0,151,24
 439               		.stabn	192,0,0,.LBB3-ax88796Read
 440               		.stabn	224,0,0,.LBE3-ax88796Read
 441               	.Lscope2:
 442               		.stabs	"",36,0,0,.Lscope2-ax88796Read
 443               		.stabs	"ax88796SetupPorts:F(0,20)",36,0,173,ax88796SetupPorts
 444               	.global	ax88796SetupPorts
 445               		.type	ax88796SetupPorts, @function
 446               	ax88796SetupPorts:
 169:ax88796.c     **** #endif                       
 170:ax88796.c     **** 
 171:ax88796.c     **** 
 172:ax88796.c     **** void ax88796SetupPorts(void)
 173:ax88796.c     **** {
 447               		.stabn 68,0,173,.LM66-ax88796SetupPorts
 448               	.LM66:
 449               	/* prologue: frame size=0 */
 450               	/* prologue end (size=0) */
 174:ax88796.c     **** #if MEMORY_MAPPED_NIC == 1
 175:ax88796.c     ****   	// enable external SRAM interface - no wait states
 176:ax88796.c     ****   	sbi(MCUSR, SRE);
 177:ax88796.c     **** #else
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s 			page 12


 178:ax88796.c     **** 	// set address port to output
 179:ax88796.c     **** 	outb(AX88796_ADDRESS_DDR, AX88796_ADDRESS_MASK);
 451               		.stabn 68,0,179,.LM67-ax88796SetupPorts
 452               	.LM67:
 453 0188 8FE1      		ldi r24,lo8(31)
 454 018a 84BB      		out 52-0x20,r24
 180:ax88796.c     ****     
 181:ax88796.c     **** 	// set data port to input with pull-ups
 182:ax88796.c     **** 	outb(AX88796_DATA_DDR, 0x00);
 455               		.stabn 68,0,182,.LM68-ax88796SetupPorts
 456               	.LM68:
 457 018c 1ABA      		out 58-0x20,__zero_reg__
 183:ax88796.c     **** 	outb(AX88796_DATA_PORT, 0xFF);
 458               		.stabn 68,0,183,.LM69-ax88796SetupPorts
 459               	.LM69:
 460 018e 8FEF      		ldi r24,lo8(-1)
 461 0190 8BBB      		out 59-0x20,r24
 184:ax88796.c     **** 
 185:ax88796.c     **** 	// initialize the control port read and write pins to de-asserted
 186:ax88796.c     **** 	sbi( AX88796_CONTROL_PORT, AX88796_CONTROL_READPIN );
 462               		.stabn 68,0,186,.LM70-ax88796SetupPorts
 463               	.LM70:
 464 0192 AD9A      		sbi 53-0x20,5
 187:ax88796.c     **** 	sbi( AX88796_CONTROL_PORT, AX88796_CONTROL_WRITEPIN );
 465               		.stabn 68,0,187,.LM71-ax88796SetupPorts
 466               	.LM71:
 467 0194 AE9A      		sbi 53-0x20,6
 188:ax88796.c     **** 	// set the read and write pins to output
 189:ax88796.c     **** 	sbi( AX88796_CONTROL_DDR, AX88796_CONTROL_READPIN );
 468               		.stabn 68,0,189,.LM72-ax88796SetupPorts
 469               	.LM72:
 470 0196 A59A      		sbi 52-0x20,5
 190:ax88796.c     **** 	sbi( AX88796_CONTROL_DDR, AX88796_CONTROL_WRITEPIN );
 471               		.stabn 68,0,190,.LM73-ax88796SetupPorts
 472               	.LM73:
 473 0198 A69A      		sbi 52-0x20,6
 191:ax88796.c     **** #endif
 192:ax88796.c     **** 	// set reset pin to output
 193:ax88796.c     **** 	sbi( AX88796_RESET_DDR, AX88796_RESET_PIN );
 474               		.stabn 68,0,193,.LM74-ax88796SetupPorts
 475               	.LM74:
 476 019a 8A9A      		sbi 49-0x20,2
 194:ax88796.c     **** }
 477               		.stabn 68,0,194,.LM75-ax88796SetupPorts
 478               	.LM75:
 479               	/* epilogue: frame size=0 */
 480 019c 0895      		ret
 481               	/* epilogue end (size=1) */
 482               	/* function ax88796SetupPorts size 11 (10) */
 483               		.size	ax88796SetupPorts, .-ax88796SetupPorts
 484               	.Lscope3:
 485               		.stabs	"",36,0,0,.Lscope3-ax88796SetupPorts
 486               		.stabs	"ax88796BeginPacketSend:F(0,20)",36,0,198,ax88796BeginPacketSend
 487               		.stabs	"packetLength:P(0,4)",64,0,197,16
 488               	.global	ax88796BeginPacketSend
 489               		.type	ax88796BeginPacketSend, @function
 490               	ax88796BeginPacketSend:
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s 			page 13


 195:ax88796.c     **** 
 196:ax88796.c     **** 
 197:ax88796.c     **** void ax88796BeginPacketSend(unsigned int packetLength)
 198:ax88796.c     **** {
 491               		.stabn 68,0,198,.LM76-ax88796BeginPacketSend
 492               	.LM76:
 493               	/* prologue: frame size=0 */
 494 019e 0F93      		push r16
 495 01a0 1F93      		push r17
 496 01a2 CF93      		push r28
 497 01a4 DF93      		push r29
 498               	/* prologue end (size=4) */
 499 01a6 EC01      		movw r28,r24
 199:ax88796.c     **** 	unsigned int sendPacketLength;
 200:ax88796.c     **** 	sendPacketLength = (packetLength>=ETHERNET_MIN_PACKET_LENGTH) ?
 500               		.stabn 68,0,200,.LM77-ax88796BeginPacketSend
 501               	.LM77:
 502               	.LBB4:
 503 01a8 8C01      		movw r16,r24
 504 01aa CC97      		sbiw r24,60
 505 01ac 10F4      		brsh .L11
 506 01ae CCE3      		ldi r28,lo8(60)
 507 01b0 D0E0      		ldi r29,hi8(60)
 508               	.L11:
 201:ax88796.c     **** 	                 packetLength : ETHERNET_MIN_PACKET_LENGTH ;
 202:ax88796.c     **** 	
 203:ax88796.c     **** 	//start the NIC
 204:ax88796.c     **** 	ax88796Write(CR,0x22);
 509               		.stabn 68,0,204,.LM78-ax88796BeginPacketSend
 510               	.LM78:
 511 01b2 62E2      		ldi r22,lo8(34)
 512 01b4 80E0      		ldi r24,lo8(0)
 513 01b6 0E94 0000 		call ax88796Write
 205:ax88796.c     **** 	
 206:ax88796.c     **** 	// still transmitting a packet - wait for it to finish
 207:ax88796.c     **** 	while( ax88796Read(CR) & 0x04 );
 514               		.stabn 68,0,207,.LM79-ax88796BeginPacketSend
 515               	.LM79:
 516               	.L12:
 517 01ba 80E0      		ldi r24,lo8(0)
 518 01bc 0E94 0000 		call ax88796Read
 519 01c0 82FD      		sbrc r24,2
 520 01c2 FBCF      		rjmp .L12
 208:ax88796.c     **** 
 209:ax88796.c     **** 	//load beginning page for transmit buffer
 210:ax88796.c     **** 	ax88796Write(TPSR,TXSTART_INIT);
 521               		.stabn 68,0,210,.LM80-ax88796BeginPacketSend
 522               	.LM80:
 523 01c4 60E4      		ldi r22,lo8(64)
 524 01c6 84E0      		ldi r24,lo8(4)
 525 01c8 0E94 0000 		call ax88796Write
 211:ax88796.c     **** 	
 212:ax88796.c     **** 	//set start address for remote DMA operation
 213:ax88796.c     **** 	ax88796Write(RSAR0,0x00);
 526               		.stabn 68,0,213,.LM81-ax88796BeginPacketSend
 527               	.LM81:
 528 01cc 60E0      		ldi r22,lo8(0)
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s 			page 14


 529 01ce 88E0      		ldi r24,lo8(8)
 530 01d0 0E94 0000 		call ax88796Write
 214:ax88796.c     **** 	ax88796Write(RSAR1,0x40);
 531               		.stabn 68,0,214,.LM82-ax88796BeginPacketSend
 532               	.LM82:
 533 01d4 60E4      		ldi r22,lo8(64)
 534 01d6 89E0      		ldi r24,lo8(9)
 535 01d8 0E94 0000 		call ax88796Write
 215:ax88796.c     **** 	
 216:ax88796.c     **** 	//clear the packet stored interrupt
 217:ax88796.c     **** 	ax88796Write(ISR, PTX);
 536               		.stabn 68,0,217,.LM83-ax88796BeginPacketSend
 537               	.LM83:
 538 01dc 62E0      		ldi r22,lo8(2)
 539 01de 87E0      		ldi r24,lo8(7)
 540 01e0 0E94 0000 		call ax88796Write
 218:ax88796.c     **** 
 219:ax88796.c     **** 	//load data byte count for remote DMA
 220:ax88796.c     **** 	ax88796Write(RBCR0, (unsigned char)(packetLength));
 541               		.stabn 68,0,220,.LM84-ax88796BeginPacketSend
 542               	.LM84:
 543 01e4 602F      		mov r22,r16
 544 01e6 8AE0      		ldi r24,lo8(10)
 545 01e8 0E94 0000 		call ax88796Write
 221:ax88796.c     **** 	ax88796Write(RBCR1, (unsigned char)(packetLength>>8));
 546               		.stabn 68,0,221,.LM85-ax88796BeginPacketSend
 547               	.LM85:
 548 01ec 812F      		mov r24,r17
 549 01ee 9927      		clr r25
 550 01f0 682F      		mov r22,r24
 551 01f2 8BE0      		ldi r24,lo8(11)
 552 01f4 0E94 0000 		call ax88796Write
 222:ax88796.c     **** 
 223:ax88796.c     **** 	ax88796Write(TBCR0, (unsigned char)(sendPacketLength));
 553               		.stabn 68,0,223,.LM86-ax88796BeginPacketSend
 554               	.LM86:
 555 01f8 6C2F      		mov r22,r28
 556 01fa 85E0      		ldi r24,lo8(5)
 557 01fc 0E94 0000 		call ax88796Write
 224:ax88796.c     **** 	ax88796Write(TBCR1, (unsigned char)((sendPacketLength)>>8));
 558               		.stabn 68,0,224,.LM87-ax88796BeginPacketSend
 559               	.LM87:
 560 0200 8D2F      		mov r24,r29
 561 0202 9927      		clr r25
 562 0204 682F      		mov r22,r24
 563 0206 86E0      		ldi r24,lo8(6)
 564 0208 0E94 0000 		call ax88796Write
 225:ax88796.c     **** 	
 226:ax88796.c     **** 	//do remote write operation
 227:ax88796.c     **** 	ax88796Write(CR,0x12);
 565               		.stabn 68,0,227,.LM88-ax88796BeginPacketSend
 566               	.LM88:
 567 020c 62E1      		ldi r22,lo8(18)
 568 020e 80E0      		ldi r24,lo8(0)
 569 0210 0E94 0000 		call ax88796Write
 228:ax88796.c     **** }
 570               		.stabn 68,0,228,.LM89-ax88796BeginPacketSend
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s 			page 15


 571               	.LM89:
 572               	.LBE4:
 573               	/* epilogue: frame size=0 */
 574 0214 DF91      		pop r29
 575 0216 CF91      		pop r28
 576 0218 1F91      		pop r17
 577 021a 0F91      		pop r16
 578 021c 0895      		ret
 579               	/* epilogue end (size=5) */
 580               	/* function ax88796BeginPacketSend size 65 (56) */
 581               		.size	ax88796BeginPacketSend, .-ax88796BeginPacketSend
 582               		.stabs	"sendPacketLength:r(0,4)",64,0,199,28
 583               		.stabn	192,0,0,.LBB4-ax88796BeginPacketSend
 584               		.stabn	224,0,0,.LBE4-ax88796BeginPacketSend
 585               	.Lscope4:
 586               		.stabs	"",36,0,0,.Lscope4-ax88796BeginPacketSend
 587               		.stabs	"ax88796SendPacketData:F(0,20)",36,0,231,ax88796SendPacketData
 588               		.stabs	"localBuffer:P(1,1)=*(0,11)",64,0,230,24
 589               		.stabs	"length:P(0,4)",64,0,230,14
 590               	.global	ax88796SendPacketData
 591               		.type	ax88796SendPacketData, @function
 592               	ax88796SendPacketData:
 229:ax88796.c     **** 
 230:ax88796.c     **** void ax88796SendPacketData(unsigned char * localBuffer, unsigned int length)
 231:ax88796.c     **** {
 593               		.stabn 68,0,231,.LM90-ax88796SendPacketData
 594               	.LM90:
 595               	/* prologue: frame size=0 */
 596 021e EF92      		push r14
 597 0220 FF92      		push r15
 598 0222 0F93      		push r16
 599 0224 1F93      		push r17
 600 0226 CF93      		push r28

⌨️ 快捷键说明

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