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

📄 arp.lst

📁 ENC system full - ENC28J60
💻 LST
📖 第 1 页 / 共 3 页
字号:
 175:net/arp.c     **** 		}
 176:net/arp.c     **** 		
 177:net/arp.c     **** 		//show tale
 178:net/arp.c     **** 		//arp_print_table();
 179:net/arp.c     **** 	}
 180:net/arp.c     **** }
 181:net/arp.c     **** 
 182:net/arp.c     **** int arp_add_mac2ip(unsigned char *buffer, unsigned long ip){
 183:net/arp.c     **** 	unsigned char c;
 184:net/arp.c     **** 	int res;
 185:net/arp.c     **** 	
 186:net/arp.c     **** 	#if ARP_DEBUG
 187:net/arp.c     **** 	softuart_puts_progmem("ARP : adding ip ");
 188:net/arp.c     **** 	softuart_put_ip(ip);
 189:net/arp.c     **** 	softuart_puts_progmem(" to mac table");
 190:net/arp.c     **** 	softuart_putnewline();
 191:net/arp.c     **** 	#endif	
 192:net/arp.c     **** 
 193:net/arp.c     **** 	//set ip
 194:net/arp.c     **** 	arp_table[arp_table_pointer].ip = ip;
 195:net/arp.c     **** 	
 196:net/arp.c     **** 	//set mac:
 197:net/arp.c     **** 	for (c=0; c<6; c++){
 198:net/arp.c     **** 		arp_table[arp_table_pointer].mac[c] = buffer[c];
 199:net/arp.c     **** 	}
 200:net/arp.c     **** 
 201:net/arp.c     **** 	res = arp_table_pointer;	
 202:net/arp.c     **** 
 203:net/arp.c     **** 	//update ringbuffer pointer
 204:net/arp.c     **** 	arp_table_pointer++;
 205:net/arp.c     **** 	if (arp_table_pointer >= ARP_TABLE_SIZE)
 206:net/arp.c     **** 		arp_table_pointer=0;
 207:net/arp.c     **** 	
 208:net/arp.c     **** 	return res;
 209:net/arp.c     **** }
 210:net/arp.c     **** 
 211:net/arp.c     **** //send an arp request
 212:net/arp.c     **** void arp_send_request(unsigned char *buffer, uint32_t *dest_ip){
 213:net/arp.c     **** 	unsigned char c;	
 214:net/arp.c     **** 	
 215:net/arp.c     **** 	//generate ethernet packet:
 216:net/arp.c     **** 	for (c=0; c<6; c++){
 217:net/arp.c     **** 		//set destination mac address:
 218:net/arp.c     **** 		buffer[c]   = 0xFF; //BROADCAST!
 219:net/arp.c     **** 		//set source mac address:
 220:net/arp.c     **** 		buffer[c+6] = nic_mac[c];
 221:net/arp.c     **** 	}
 222:net/arp.c     **** 
 223:net/arp.c     **** 	//set ethernet packettype to ARP
 259               	gue: function */
 260               	/* frame size = 0 */
 261               	/* epilogue start */
 263               	.LM14:
 264               		ret
 224:net/arp.c     **** dress:
 225:net/arp.c     **** 		buffer[c+6] = nic_mac[c];
 226:net/arp.c     **** 	}
 227:net/arp.c     **** 
 228:net/arp.c     **** 	//set ethernet packettype to ARP
 229:net/arp.c     **** 	buffer[12] = 0x08;
 230:net/arp.c     **** 	buffer[13] = 0x06;
 231:net/arp.c     **** 
 232:net/arp.c     **** 	//set hardware type to ethernet:
 233:net/arp.c     **** 	buffer[ARP_POS_HARDWARE_TYPE+0] = 0x00;
 234:net/arp.c     **** 	buffer[ARP_POS_HARDWARE_TYPE+1] = 0x01;
 235:net/arp.c     **** 
 236:net/arp.c     **** 	//set protocol to IP:
 237:net/arp.c     **** 	buffer[ARP_POS_PROTOCOL+0] = 0x08;
 238:net/arp.c     **** 	buffer[ARP_POS_PROTOCOL+1] = 0x00;
 239:net/arp.c     **** 
 240:net/arp.c     **** 	//set hw size:
 241:net/arp.c     **** 	buffer[ARP_POS_HARDWARE_SIZE] = 0x06;
 242:net/arp.c     **** 
 243:net/arp.c     **** 	//set protocol size
 244:net/arp.c     **** 	buffer[ARP_POS_PROTOCOL_SIZE] = 0x04;
 245:net/arp.c     **** 
 246:net/arp.c     **** 	//set ARP type to REQUEST
 247:net/arp.c     **** 	buffer[ARP_POS_OP+0] = ARP_OP_REQUEST>>8;
 248:net/arp.c     **** 	buffer[ARP_POS_OP+1] = ARP_OP_REQUEST;
 249:net/arp.c     **** 
 265               		arp_print_table, .-arp_print_table
 266               	.Lscope3:
 269               	.global	arp_search_by_ip
 271               	arp_search_by_ip:
 273               	.LM15:
 274               	.LFBB4:
 250:net/arp.c     **** EQUEST>>8;
 251:net/arp.c     **** 	buffer[ARP_POS_OP+1] = ARP_OP_REQUEST;
 275               	e: function */
 276               	/* frame size = 0 */
 277               		movw r20,r22
 278               		movw r22,r24
 280 00ec AB01      	.LM16:
 281 00ee BC01      		ldi r30,lo8(arp_table)
 282               		ldi r31,hi8(arp_table)
 283               		ldi r18,lo8(0)
 284 00f0 E0E0      		ldi r19,hi8(0)
 285 00f2 F0E0      	.L12:
 287 00f6 30E0      	.LM17:
 288               		ld r24,Z
 252:net/arp.c     **** _REQUEST>>8;
 253:net/arp.c     **** 	buffer[ARP_POS_OP+1] = ARP_OP_REQUEST;
 254:net/arp.c     **** 
 289               	ldd r26,Z+2
 290               		ldd r27,Z+3
 291 00f8 8081      		cp r24,r20
 292 00fa 9181      		cpc r25,r21
 293 00fc A281      		cpc r26,r22
 294 00fe B381      		cpc r27,r23
 295 0100 8417      		breq .L11
 297 0104 A607      	.LM18:
 298 0106 B707      		subi r18,lo8(-(1))
 299 0108 01F0      		sbci r19,hi8(-(1))
 300               		adiw r30,10
 301               		cpi r18,4
 302 010a 2F5F      		cpc r19,__zero_reg__
 303 010c 3F4F      		brne .L12
 304 010e 3A96      		ldi r18,lo8(-1)
 305 0110 2430      		ldi r19,hi8(-1)
 306 0112 3105      	.L11:
 308 0116 2FEF      	.LM19:
 309 0118 3FEF      		movw r24,r18
 310               	/* epilogue start */
 255:net/arp.c     **** EQUEST>>8;
 256:net/arp.c     **** 	buffer[ARP_POS_OP+1] = ARP_OP_REQUEST;
 257:net/arp.c     **** 
 258:net/arp.c     **** 	//setup sender mac & ip:
 259:net/arp.c     **** 	nic_copy_mac_to_buf(&buffer[ARP_POS_SRC_MAC]);
 311               	_by_ip, .-arp_search_by_ip
 315 011c 0895      	.Lscope4:
 319               	.global	arp_send_request
 321               	arp_send_request:
 323               	.LM20:
 324               	.LFBB5:
 325               		push r14
 326               		push r15
 327               		push r16
 328               		push r17
 329               		push r28
 330 011e EF92      		push r29
 331 0120 FF92      	/* prologue: function */
 332 0122 0F93      	/* frame size = 0 */
 333 0124 1F93      		movw r28,r24
 334 0126 CF93      		movw r14,r22
 336               	.LM21:
 337               		movw r16,r24
 338 012a EC01      		ldi r26,lo8(nic_mac)
 339 012c 7B01      		ldi r27,hi8(nic_mac)
 340               		movw r30,r24
 342 012e 8C01      	.LM22:
 343 0130 A0E0      		ldi r25,lo8(-1)
 344 0132 B0E0      	.L16:
 345 0134 FC01      		st Z,r25
 347               	.LM23:
 348 0136 9FEF      		ld r24,X+
 349               		std Z+6,r24
 350 0138 9083      		adiw r30,1
 352               	.LM24:
 353 013a 8D91      		ldi r24,hi8(nic_mac+6)
 354 013c 8683      		cpi r26,lo8(nic_mac+6)
 355 013e 3196      		cpc r27,r24
 356               		brne .L16
 358 0140 80E0      	.LM25:
 359 0142 A030      		ldi r24,lo8(8)
 360 0144 B807      		std Y+12,r24
 362               	.LM26:
 363               		ldi r25,lo8(6)
 364 0148 88E0      		std Y+13,r25
 366               	.LM27:
 367               		std Y+14,__zero_reg__
 369 014e 9D87      	.LM28:
 370               		ldi r18,lo8(1)
 371               		std Y+15,r18
 373               	.LM29:
 374               		std Y+16,r24
 376 0154 2F87      	.LM30:
 377               		std Y+17,__zero_reg__
 379 0156 888B      	.LM31:
 380               		std Y+18,r25
 382 0158 198A      	.LM32:
 383               		ldi r24,lo8(4)
 384               		std Y+19,r24
 386               	.LM33:
 387               		std Y+20,__zero_reg__
 389 015e 8B8B      	.LM34:
 390               		std Y+21,r18
 392 0160 1C8A      	.LM35:
 393               		movw r24,r28
 394               		adiw r24,22
 395 0162 2D8B      		call nic_copy_mac_to_buf
 397               	.LM36:
 398 0164 CE01      		lds r20,nic_ip
 399 0166 4696      		lds r21,(nic_ip)+1
 400 0168 0E94 0000 		lds r22,(nic_ip)+2
 401               		lds r23,(nic_ip)+3
 402               		movw r24,r28
 403 016c 4091 0000 		adiw r24,28
 404 0170 5091 0000 		call nic_ip_to_buffer
 405 0174 6091 0000 		ldi r24,lo8(0)
 407 017c CE01      	.LM37:
 408 017e 4C96      		ldi r25,lo8(-1)
 409 0180 0E94 0000 	.L17:
 410 0184 80E0      		movw r30,r16
 411               		std Z+32,r25
 413 0186 9FEF      	.LM38:
 414               		subi r24,lo8(-(1))
 415 0188 F801      		subi r16,lo8(-(1))
 416 018a 90A3      		sbci r17,hi8(-(1))
 417               		cpi r24,lo8(6)
 418               		brne .L17
 420 018e 0F5F      	.LM39:
 421 0190 1F4F      		movw r30,r14
 422 0192 8630      		ld r20,Z
 423 0194 01F4      		ldd r21,Z+1
 424               		ldd r22,Z+2
 425               		ldd r23,Z+3
 426 0196 F701      		movw r24,r28
 427 0198 4081      		adiw r24,38
 428 019a 5181      		call nic_ip_to_buffer
 430 019e 7381      	.LM40:
 431 01a0 CE01      		movw r24,r28
 432 01a2 8696      		ldi r22,lo8(42)
 433 01a4 0E94 0000 		ldi r23,hi8(42)
 434               		call nic_send_packet
 435               	/* epilogue start */
 437 01aa 6AE2      	.LM41:
 438 01ac 70E0      		pop r29
 439 01ae 0E94 0000 		pop r28
 440               		pop r17
 441               		pop r16
 442               		pop r15
 443 01b2 DF91      		pop r14
 444 01b4 CF91      		ret
 449 01be 0895      	.Lscope5:
 453               	.global	arp_packet_in
 455               	arp_packet_in:
 457               	.LM42:
 458               	.LFBB6:
 459               		push r2
 460               		push r3
 461               		push r4
 462               		push r5
 463               		push r6
 464 01c0 2F92      		push r7
 465 01c2 3F92      		push r8
 466 01c4 4F92      		push r9
 467 01c6 5F92      		push r10
 468 01c8 6F92      		push r11
 469 01ca 7F92      		push r12
 470 01cc 8F92      		push r13
 471 01ce 9F92      		push r14
 472 01d0 AF92      		push r15
 473 01d2 BF92      		push r16
 474 01d4 CF92      		push r17
 475 01d6 DF92      		push r28
 476 01d8 EF92      		push r29
 477 01da FF92      	/* prologue: function */
 478 01dc 0F93      	/* frame size = 0 */
 479 01de 1F93      		movw r12,r24
 480 01e0 CF93      		movw r2,r22
 482               	.LM43:
 483               		ldi r31,lo8(28)
 484 01e4 6C01      		mov r6,r31
 485 01e6 1B01      		mov r7,__zero_reg__
 486               		add r6,r24
 487               		adc r7,r25
 488 01e8 FCE1      		movw r24,r6
 489 01ea 6F2E      		call nic_buffer_to_ip
 490 01ec 712C      		movw r8,r22
 491 01ee 680E      		movw r10,r24
 493 01f2 C301      	.LM44:
 494 01f4 0E94 0000 		ldi r30,lo8(38)
 495 01f8 4B01      		mov r4,r30
 496 01fa 5C01      		mov r5,__zero_reg__
 497               		add r4,r12
 498               		adc r5,r13
 499 01fc E6E2      		movw r24,r4
 500 01fe 4E2E      		call nic_buffer_to_ip
 501 0200 512C      		movw r14,r22
 502 0202 4C0C      		movw r16,r24
 504 0206 C201      	.LM45:
 505 0208 0E94 0000 		movw r24,r12
 506 020c 7B01      		call nic_buffer_to_unsigned_int
 507 020e 8C01      		sbiw r24,1
 508               		breq .+2
 509               		rjmp .L22
 511 0212 0E94 0000 	.LM46:
 512 0216 0197      		lds r24,nic_ip
 513 0218 01F0      		lds r25,(nic_ip)+1
 514 021a 00C0      		lds r26,(nic_ip)+2
 515               		lds r27,(nic_ip)+3
 516               		cp r14,r24
 517 021c 8091 0000 		cpc r15,r25
 518 0220 9091 0000 		cpc r16,r26
 519 0224 A091 0000 		cpc r17,r27
 520 0228 B091 0000 		breq .+2
 521 022c E816      		rjmp .L34
 522 022e F906      		ldi r30,lo8(arp_table)
 523 0230 0A07      		ldi r31,hi8(arp_table)
 524 0232 1B07      		ldi r18,lo8(0)
 525 0234 01F0      		ldi r19,hi8(0)
 526 0236 00C0      	.L25:
 527 0238 E0E0      	.LBB9:
 528 023a F0E0      	.LBB10:
 530 023e 30E0      	.LM47:
 531               		ld r24,Z
 532               		ldd r25,Z+1
 533               		ldd r26,Z+2
 534               		ldd r27,Z+3
 535               		cp r24,r8

⌨️ 快捷键说明

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