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

📄 main.lst

📁 一个AVR 上的UIP移植程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 241 0056 80E0      		ldi r24,lo8(__c.0)
 242 0058 90E0      		ldi r25,hi8(__c.0)
 243 005a 9F93      		push r25
 244 005c 8F93      		push r24
 245 005e 81E0      		ldi r24,lo8(1)
 246 0060 8F93      		push r24
 247 0062 0E94 0000 		call rprintf1RamRom
  69:main.c        **** 
  70:main.c        **** 	// init device driver
  71:main.c        **** 	ax88796devInit();
 248               		.stabn 68,0,71,.LM15-main
 249               	.LM15:
 250 0066 0E94 0000 		call ax88796devInit
  72:main.c        **** 
  73:main.c        **** 	// init uIP
  74:main.c        **** 	uip_init();
 251               		.stabn 68,0,74,.LM16-main
 252               	.LM16:
 253 006a 0E94 0000 		call uip_init
  75:main.c        **** 
  76:main.c        **** 	// init app
  77:main.c        **** 	appInit();
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/ccOyaaaa.s 			page 7


 254               		.stabn 68,0,77,.LM17-main
 255               	.LM17:
 256 006e 0E94 0000 		call appInit
  78:main.c        **** 
  79:main.c        **** 	// init ARP cache
  80:main.c        **** 	uip_arp_init();
 257               		.stabn 68,0,80,.LM18-main
 258               	.LM18:
 259 0072 0E94 0000 		call uip_arp_init
  81:main.c        **** 
  82:main.c        **** 	// init periodic timer
  83:main.c        **** 	initTimer();
 260               		.stabn 68,0,83,.LM19-main
 261               	.LM19:
 262 0076 0E94 0000 		call initTimer
  84:main.c        ****   
  85:main.c        **** 	sei();
 263               		.stabn 68,0,85,.LM20-main
 264               	.LM20:
 265               	/* #APP */
 266 007a 7894      		sei
  86:main.c        **** 
  87:main.c        **** 	rprintf("Starting packet receive loop\r\n");
 267               		.stabn 68,0,87,.LM21-main
 268               	.LM21:
 269               	/* #NOAPP */
 270 007c 0F90      		pop __tmp_reg__
 271 007e 0F90      		pop __tmp_reg__
 272 0080 0F90      	 	pop __tmp_reg__
 273 0082 80E0      		ldi r24,lo8(__c.1)
 274 0084 90E0      		ldi r25,hi8(__c.1)
 275 0086 9F93      		push r25
 276 0088 8F93      		push r24
 277 008a 81E0      		ldi r24,lo8(1)
 278 008c 8F93      		push r24
 279 008e 0E94 0000 		call rprintf1RamRom
  88:main.c        **** 	while(1)
 280               		.stabn 68,0,88,.LM22-main
 281               	.LM22:
 282 0092 0F90      		pop __tmp_reg__
 283 0094 0F90      		pop __tmp_reg__
 284 0096 0F90      	 	pop __tmp_reg__
 285               	.L24:
  89:main.c        **** 	{
  90:main.c        **** 	    // look for a packet
  91:main.c        **** 		uip_len = ax88796devPoll();
 286               		.stabn 68,0,91,.LM23-main
 287               	.LM23:
 288 0098 0E94 0000 		call ax88796devPoll
 289 009c 8093 0000 		sts uip_len,r24
  92:main.c        **** 		if(uip_len == 0)
 290               		.stabn 68,0,92,.LM24-main
 291               	.LM24:
 292 00a0 C091 0000 		lds r28,uip_len
 293 00a4 CC23      		tst r28
 294 00a6 21F5      		brne .L7
  93:main.c        **** 		{
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/ccOyaaaa.s 			page 8


  94:main.c        **** 			// if timed out, call periodic function for each connection
  95:main.c        **** 			if(timerCounter > TIMERCOUNTER_PERIODIC_TIMEOUT)
 295               		.stabn 68,0,95,.LM25-main
 296               	.LM25:
 297 00a8 8091 0000 		lds r24,timerCounter
 298 00ac 8031      		cpi r24,lo8(16)
 299 00ae A0F3      		brlo .L24
  96:main.c        **** 			{
  97:main.c        **** 				timerCounter = 0;
 300               		.stabn 68,0,97,.LM26-main
 301               	.LM26:
 302 00b0 C093 0000 		sts timerCounter,r28
  98:main.c        ****         
  99:main.c        **** 				vt100SetCursorPos(18,0);
 303               		.stabn 68,0,99,.LM27-main
 304               	.LM27:
 305 00b4 6C2F      		mov r22,r28
 306 00b6 82E1      		ldi r24,lo8(18)
 307 00b8 0E94 0000 		call vt100SetCursorPos
 100:main.c        **** 				ax88796RegDump();
 308               		.stabn 68,0,100,.LM28-main
 309               	.LM28:
 310 00bc 0E94 0000 		call ax88796RegDump
 311               	.L15:
 101:main.c        **** 
 102:main.c        **** 				for(i = 0; i < UIP_CONNS; i++)
 103:main.c        **** 				{
 104:main.c        **** 					uip_periodic(i);
 312               		.stabn 68,0,104,.LM29-main
 313               	.LM29:
 314 00c0 89E1      		ldi r24,lo8(25)
 315 00c2 C89F      		mul r28,r24
 316 00c4 C001      		movw r24,r0
 317 00c6 1124      		clr r1
 318 00c8 8050      		subi r24,lo8(-(uip_conns))
 319 00ca 9040      		sbci r25,hi8(-(uip_conns))
 320 00cc 9093 0000 		sts (uip_conn)+1,r25
 321 00d0 8093 0000 		sts uip_conn,r24
 322 00d4 82E0      		ldi r24,lo8(2)
 323 00d6 0E94 0000 		call uip_process
 105:main.c        **** 		
 106:main.c        **** 					// transmit a packet, if one is ready
 107:main.c        **** 					if(uip_len > 0)
 324               		.stabn 68,0,107,.LM30-main
 325               	.LM30:
 326 00da 8091 0000 		lds r24,uip_len
 327 00de 8823      		tst r24
 328 00e0 21F0      		breq .L11
 108:main.c        **** 					{
 109:main.c        **** 						uip_arp_out();
 329               		.stabn 68,0,109,.LM31-main
 330               	.LM31:
 331 00e2 0E94 0000 		call uip_arp_out
 110:main.c        **** 						ax88796devSend();
 332               		.stabn 68,0,110,.LM32-main
 333               	.LM32:
 334 00e6 0E94 0000 		call ax88796devSend
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/ccOyaaaa.s 			page 9


 335               		.stabn 68,0,102,.LM33-main
 336               	.LM33:
 337               	.L11:
 338 00ea CF5F      		subi r28,lo8(-(1))
 339 00ec 49F3      		breq .L15
 340 00ee D4CF      		rjmp .L24
 341               	.L7:
 111:main.c        **** 					}
 112:main.c        **** 				}
 113:main.c        **** 
 114:main.c        **** 				/* Call the ARP timer function every 10 seconds. */
 115:main.c        **** 				/* not tested yet
 116:main.c        **** 				if(++arptimer == 20)
 117:main.c        **** 				{	
 118:main.c        **** 					uip_arp_timer();
 119:main.c        **** 					arptimer = 0;
 120:main.c        **** 				}*/
 121:main.c        **** 
 122:main.c        **** 			}
 123:main.c        **** 		}
 124:main.c        **** 		else  // packet received
 125:main.c        **** 		{
 126:main.c        **** 			rprintf("Packet Received with length: %d\r\n",uip_len);
 342               		.stabn 68,0,126,.LM34-main
 343               	.LM34:
 344 00f0 8091 0000 		lds r24,uip_len
 345 00f4 9927      		clr r25
 346 00f6 9F93      		push r25
 347 00f8 8F93      		push r24
 348 00fa 80E0      		ldi r24,lo8(__c.2)
 349 00fc 90E0      		ldi r25,hi8(__c.2)
 350 00fe 9F93      		push r25
 351 0100 8F93      		push r24
 352 0102 C1E0      		ldi r28,lo8(1)
 353 0104 CF93      		push r28
 354 0106 0E94 0000 		call rprintf1RamRom
 127:main.c        **** 
 128:main.c        **** 			// process an IP packet
 129:main.c        **** 			if(BUF->type == htons(UIP_ETHTYPE_IP))
 355               		.stabn 68,0,129,.LM35-main
 356               	.LM35:
 357 010a 8091 0000 		lds r24,uip_buf+12
 358 010e 9091 0000 		lds r25,(uip_buf+12)+1
 359 0112 0F90      		pop __tmp_reg__
 360 0114 0F90      		pop __tmp_reg__
 361 0116 0F90      		pop __tmp_reg__
 362 0118 0F90      		pop __tmp_reg__
 363 011a 0F90      		pop __tmp_reg__
 364 011c 8830      		cpi r24,8
 365 011e 9105      		cpc r25,__zero_reg__
 366 0120 71F0      		breq .L26
 130:main.c        **** 			{
 131:main.c        **** 				// add the source to the ARP cache
 132:main.c        **** 				// also correctly set the ethernet packet length before processing
 133:main.c        **** 				uip_arp_ipin();
 134:main.c        **** 				uip_input();
 135:main.c        **** 
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/ccOyaaaa.s 			page 10


 136:main.c        **** 				// transmit a packet, if one is ready
 137:main.c        **** 				if(uip_len > 0)
 138:main.c        **** 				{
 139:main.c        **** 					uip_arp_out();
 140:main.c        **** 					ax88796devSend();
 141:main.c        **** 				}
 142:main.c        **** 			}
 143:main.c        **** 			// process an ARP packet
 144:main.c        **** 			else if(BUF->type == htons(UIP_ETHTYPE_ARP))
 367               		.stabn 68,0,144,.LM36-main
 368               	.LM36:
 369 0122 8850      		subi r24,lo8(1544)
 370 0124 9640      		sbci r25,hi8(1544)
 371 0126 09F0      		breq _PC_+2
 372 0128 B7CF      		rjmp .L24
 145:main.c        **** 			{
 146:main.c        **** 				uip_arp_arpin();
 373               		.stabn 68,0,146,.LM37-main
 374               	.LM37:
 375 012a 0E94 0000 		call uip_arp_arpin
 147:main.c        **** 
 148:main.c        **** 				// transmit a packet, if one is ready
 149:main.c        **** 				if(uip_len > 0)
 376               		.stabn 68,0,149,.LM38-main
 377               	.LM38:
 378 012e 8091 0000 		lds r24,uip_len
 379 0132 8823      		tst r24
 380 0134 09F4      		brne _PC_+2
 381 0136 B0CF      		rjmp .L24
 150:main.c        **** 					ax88796devSend();
 382               		.stabn 68,0,150,.LM39-main
 383               	.LM39:
 384               	.L25:
 385 0138 0E94 0000 		call ax88796devSend
 386 013c ADCF      		rjmp .L24
 387               		.stabn 68,0,133,.LM40-main
 388               	.LM40:
 389               	.L26:
 390 013e 0E94 0000 		call uip_arp_ipin
 391               		.stabn 68,0,134,.LM41-main
 392               	.LM41:
 393 0142 8C2F      		mov r24,r28
 394 0144 0E94 0000 		call uip_process
 395               		.stabn 68,0,137,.LM42-main
 396               	.LM42:
 397 0148 8091 0000 		lds r24,uip_len
 398 014c 8823      		tst r24
 399 014e 09F4      		brne _PC_+2
 400 0150 A3CF      		rjmp .L24
 401               		.stabn 68,0,139,.LM43-main
 402               	.LM43:
 403 0152 0E94 0000 		call uip_arp_out
 404               		.stabn 68,0,140,.LM44-main
 405               	.LM44:
 406 0156 F0CF      		rjmp .L25
 151:main.c        **** 			}
 152:main.c        **** 		}
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/ccOyaaaa.s 			page 11


 153:main.c        **** 	}
 154:main.c        **** 
 155:main.c        **** 	return 1;
 156:main.c        **** }
 407               		.stabn 68,0,156,.LM45-main
 408               	.LM45:
 409               	.LBE2:
 410               	/* epilogue: frame size=0 */
 411               	/* epilogue: noreturn */
 412               	/* epilogue end (size=0) */
 413               	/* function main size 150 (146) */
 414               	.Lfe3:
 415               		.size	main,.Lfe3-main
 416               		.stabs	"i:r(0,11)",64,0,62,28
 417               		.stabn	192,0,0,.LBB2-main
 418               		.stabn	224,0,0,.LBE2-main
 419               	.Lscope2:
 420               		.stabs	"",36,0,0,.Lscope2-main
 421               		.lcomm timerCounter,1
 422               		.stabs	"timerCounter:S(0,11)",40,0,39,timerCounter
 423               		.text
 424               		.stabs "",100,0,0,Letext
 425               	Letext:
 426               	/* File "main.c": code  175 = 0x00af ( 158), prologues  10, epilogues   7 */
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/ccOyaaaa.s 			page 12


DEFINED SYMBOLS
                            *ABS*:00000000 main.c
                            *ABS*:0000003f __SREG__
                            *ABS*:0000003e __SP_H__
                            *ABS*:0000003d __SP_L__
                            *ABS*:00000000 __tmp_reg__
                            *ABS*:00000001 __zero_reg__
                            *ABS*:00000002 _PC_
C:\DOCUME~1\pstang\LOCALS~1\Temp/ccOyaaaa.s:133    .text:00000000 initTimer
                             .bss:00000000 timerCounter
C:\DOCUME~1\pstang\LOCALS~1\Temp/ccOyaaaa.s:163    .text:00000010 __vector_11
C:\DOCUME~1\pstang\LOCALS~1\Temp/ccOyaaaa.s:197    .progmem.data:00000000 __c.0
C:\DOCUME~1\pstang\LOCALS~1\Temp/ccOyaaaa.s:201    .progmem.data:00000015 __c.1
C:\DOCUME~1\pstang\LOCALS~1\Temp/ccOyaaaa.s:205    .progmem.data:00000034 __c.2
C:\DOCUME~1\pstang\LOCALS~1\Temp/ccOyaaaa.s:211    .text:00000032 main
C:\DOCUME~1\pstang\LOCALS~1\Temp/ccOyaaaa.s:425    .text:00000158 Letext
                            *ABS*:00000000 *ABS*

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__stack
uartInit
uartSetBaudRate
uartSendByte
rprintfInit
vt100ClearScreen
rprintf1RamRom
ax88796devInit
uip_init
appInit
uip_arp_init
ax88796devPoll
uip_len
vt100SetCursorPos
ax88796RegDump
uip_conns
uip_conn
uip_process
uip_arp_out
ax88796devSend
uip_buf
uip_arp_arpin
uip_arp_ipin

⌨️ 快捷键说明

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