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

📄 uip_arp.lst

📁 一个AVR 上的UIP移植程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s 			page 1


   1               		.file	"uip_arp.c"
   2               		.arch atmega323
   3               	__SREG__ = 0x3f
   4               	__SP_H__ = 0x3e
   5               	__SP_L__ = 0x3d
   6               	__tmp_reg__ = 0
   7               	__zero_reg__ = 1
   8               		.global __do_copy_data
   9               		.global __do_clear_bss
  10               		.stabs	"C:\\Code\\AVR\\uip-avr/",100,0,0,.Ltext0
  11               		.stabs	"uip_arp.c",100,0,0,.Ltext0
  12               		.text
  13               	.Ltext0:
  14               		.stabs	"gcc2_compiled.",60,0,0,0
  15               		.stabs	"int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
  16               		.stabs	"char:t(0,2)=r(0,2);0;127;",128,0,0,0
  17               		.stabs	"long int:t(0,3)=@s32;r(0,3);0020000000000;0017777777777;",128,0,0,0
  18               		.stabs	"unsigned int:t(0,4)=r(0,4);0000000000000;0000000177777;",128,0,0,0
  19               		.stabs	"long unsigned int:t(0,5)=@s32;r(0,5);0000000000000;0037777777777;",128,0,0,0
  20               		.stabs	"long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
  21               		.stabs	"long long unsigned int:t(0,7)=@s64;r(0,7);0000000000000;01777777777777777777777;",128,0,0,
  22               		.stabs	"short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
  23               		.stabs	"short unsigned int:t(0,9)=r(0,9);0000000000000;0000000177777;",128,0,0,0
  24               		.stabs	"signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
  25               		.stabs	"unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
  26               		.stabs	"float:t(0,12)=r(0,1);4;0;",128,0,0,0
  27               		.stabs	"double:t(0,13)=r(0,1);4;0;",128,0,0,0
  28               		.stabs	"long double:t(0,14)=r(0,1);4;0;",128,0,0,0
  29               		.stabs	"complex int:t(0,15)=s4real:(0,1),0,16;imag:(0,1),16,16;;",128,0,0,0
  30               		.stabs	"complex float:t(0,16)=R3;8;0;",128,0,0,0
  31               		.stabs	"complex double:t(0,17)=R3;8;0;",128,0,0,0
  32               		.stabs	"complex long double:t(0,18)=R3;8;0;",128,0,0,0
  33               		.stabs	"__builtin_va_list:t(0,19)=*(0,20)=(0,20)",128,0,0,0
  34               		.stabs	"_Bool:t(0,21)=@s8;-16;",128,0,0,0
  35               		.stabs	"uip_arp.c",130,0,0,0
  36               		.stabs	"uip_arp.h",130,0,0,0
  37               		.stabs	"uip.h",130,0,0,0
  38               		.stabs	"uipopt.h",130,0,0,0
  39               		.stabs	"u8_t:t(4,1)=(0,11)",128,0,52,0
  40               		.stabs	"u16_t:t(4,2)=(0,9)",128,0,53,0
  41               		.stabs	"app.h",130,0,0,0
  42               		.stabs	"uip.h",130,0,0,0
  43               		.stabn	162,0,0,0
  44               		.stabn	162,0,0,0
  45               		.stabn	162,0,0,0
  46               		.stabs	"uip_conn:T(3,1)=s25tcpstateflags:(4,1),0,8;lport:(4,2),8,16;rport:(4,2),24,16;ripaddr:(3,2
  47               		.stabs	"uip_stats:T(3,6)=s44ip:(3,7)=s18drop:(4,2),0,16;recv:(4,2),16,16;sent:(4,2),32,16;vhlerr:(
  48               		.stabs	"uip_tcpip_hdr:t(3,10)=(3,11)=s44vhl:(4,1),0,8;tos:(4,1),8,8;len:(3,12)=ar(3,3);0;1;(4,1),1
  49               		.stabn	162,0,0,0
  50               		.stabs	"uip_eth_addr:T(2,1)=s6addr:(2,2)=ar(3,3);0;5;(4,1),0,48;;",128,0,0,0
  51               		.stabs	"uip_eth_hdr:T(2,3)=s14dest:(2,1),0,48;src:(2,1),48,48;type:(4,2),96,16;;",128,0,0,0
  52               		.stabn	162,0,0,0
  53               		.stabs	"arp_hdr:T(1,1)=s42ethhdr:(2,3),0,112;hwtype:(4,2),112,16;protocol:(4,2),128,16;hwlen:(4,1)
  54               		.stabs	"ethip_hdr:T(1,2)=s34ethhdr:(2,3),0,112;vhl:(4,1),112,8;tos:(4,1),120,8;len:(3,12),128,16;i
  55               		.stabs	"arp_entry:T(1,3)=s11ipaddr:(3,2),0,32;ethaddr:(2,1),32,48;time:(4,1),80,8;;",128,0,0,0
  56               		.data
  57               		.type	ethaddr, @object
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s 			page 2


  58               		.size	ethaddr, 6
  59               	ethaddr:
  60 0000 30        		.byte	48
  61 0001 46        		.byte	70
  62 0002 46        		.byte	70
  63 0003 49        		.byte	73
  64 0004 43        		.byte	67
  65 0005 45        		.byte	69
  66               		.text
  67               		.stabs	"uip_arp_init:F(0,20)",36,0,110,uip_arp_init
  68               	.global	uip_arp_init
  69               		.type	uip_arp_init, @function
  70               	uip_arp_init:
   1:uip_arp.c     **** /*****************************************************************************
   2:uip_arp.c     **** *  modified by Louis Beaudoin for uIP-AVR port - September 20, 2002
   3:uip_arp.c     **** *  www.embedded-creations.com
   4:uip_arp.c     **** *	
   5:uip_arp.c     **** *  added: sets uip_len to length of packet ignoring Ethernet trailer
   6:uip_arp.c     **** *         in uip_arp_ipin(void) (yes, kind of a hack, but it works for now)
   7:uip_arp.c     **** *
   8:uip_arp.c     **** *  fixed: array index error under uip_arp_out() - Build an ethernet header.
   9:uip_arp.c     **** *	
  10:uip_arp.c     **** *****************************************************************************/
  11:uip_arp.c     **** 
  12:uip_arp.c     **** /*
  13:uip_arp.c     ****  * Copyright (c) 2001-2002, Adam Dunkels.
  14:uip_arp.c     ****  * All rights reserved. 
  15:uip_arp.c     ****  *
  16:uip_arp.c     ****  * Redistribution and use in source and binary forms, with or without 
  17:uip_arp.c     ****  * modification, are permitted provided that the following conditions 
  18:uip_arp.c     ****  * are met: 
  19:uip_arp.c     ****  * 1. Redistributions of source code must retain the above copyright 
  20:uip_arp.c     ****  *    notice, this list of conditions and the following disclaimer. 
  21:uip_arp.c     ****  * 2. Redistributions in binary form must reproduce the above copyright 
  22:uip_arp.c     ****  *    notice, this list of conditions and the following disclaimer in the 
  23:uip_arp.c     ****  *    documentation and/or other materials provided with the distribution. 
  24:uip_arp.c     ****  * 3. All advertising materials mentioning features or use of this software
  25:uip_arp.c     ****  *    must display the following acknowledgement:
  26:uip_arp.c     ****  *      This product includes software developed by Adam Dunkels.
  27:uip_arp.c     ****  * 4. The name of the author may not be used to endorse or promote
  28:uip_arp.c     ****  *    products derived from this software without specific prior
  29:uip_arp.c     ****  *    written permission.  
  30:uip_arp.c     ****  *
  31:uip_arp.c     ****  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
  32:uip_arp.c     ****  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  33:uip_arp.c     ****  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  34:uip_arp.c     ****  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
  35:uip_arp.c     ****  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  36:uip_arp.c     ****  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
  37:uip_arp.c     ****  * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  38:uip_arp.c     ****  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  39:uip_arp.c     ****  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  40:uip_arp.c     ****  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  41:uip_arp.c     ****  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  
  42:uip_arp.c     ****  *
  43:uip_arp.c     ****  * This file is part of the uIP TCP/IP stack.
  44:uip_arp.c     ****  *
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s 			page 3


  45:uip_arp.c     ****  * $Id: uip_arp.c,v 1.2 2002/09/22 06:34:36 User Exp $
  46:uip_arp.c     ****  *
  47:uip_arp.c     ****  */
  48:uip_arp.c     **** 
  49:uip_arp.c     **** 
  50:uip_arp.c     **** #include "uip_arp.h"
  51:uip_arp.c     **** 
  52:uip_arp.c     **** struct arp_hdr {
  53:uip_arp.c     ****   struct uip_eth_hdr ethhdr;
  54:uip_arp.c     ****   u16_t hwtype;
  55:uip_arp.c     ****   u16_t protocol;
  56:uip_arp.c     ****   u8_t hwlen;
  57:uip_arp.c     ****   u8_t protolen;
  58:uip_arp.c     ****   u16_t opcode;
  59:uip_arp.c     ****   struct uip_eth_addr shwaddr;
  60:uip_arp.c     ****   u16_t sipaddr[2];
  61:uip_arp.c     ****   struct uip_eth_addr dhwaddr;
  62:uip_arp.c     ****   u16_t dipaddr[2]; 
  63:uip_arp.c     **** };
  64:uip_arp.c     **** 
  65:uip_arp.c     **** struct ethip_hdr {
  66:uip_arp.c     ****   struct uip_eth_hdr ethhdr;
  67:uip_arp.c     ****   /* IP header. */
  68:uip_arp.c     ****   u8_t vhl,
  69:uip_arp.c     ****     tos,          
  70:uip_arp.c     ****     len[2],       
  71:uip_arp.c     ****     ipid[2],        
  72:uip_arp.c     ****     ipoffset[2],  
  73:uip_arp.c     ****     ttl,          
  74:uip_arp.c     ****     proto;     
  75:uip_arp.c     ****   u16_t ipchksum;
  76:uip_arp.c     ****   u16_t srcipaddr[2], 
  77:uip_arp.c     ****     destipaddr[2];
  78:uip_arp.c     **** };
  79:uip_arp.c     **** 
  80:uip_arp.c     **** #define ARP_REQUEST 1
  81:uip_arp.c     **** #define ARP_REPLY   2
  82:uip_arp.c     **** 
  83:uip_arp.c     **** #define ARP_HWTYPE_ETH 1
  84:uip_arp.c     **** 
  85:uip_arp.c     **** struct arp_entry {
  86:uip_arp.c     ****   u16_t ipaddr[2];
  87:uip_arp.c     ****   struct uip_eth_addr ethaddr;
  88:uip_arp.c     ****   u8_t time;
  89:uip_arp.c     **** };
  90:uip_arp.c     **** 
  91:uip_arp.c     **** static const struct uip_eth_addr ethaddr = {{UIP_ETHADDR0,
  92:uip_arp.c     **** 					     UIP_ETHADDR1,
  93:uip_arp.c     **** 					     UIP_ETHADDR2,
  94:uip_arp.c     **** 					     UIP_ETHADDR3,
  95:uip_arp.c     **** 					     UIP_ETHADDR4,
  96:uip_arp.c     **** 					     UIP_ETHADDR5}};
  97:uip_arp.c     **** 
  98:uip_arp.c     **** static struct arp_entry arp_table[UIP_ARPTAB_SIZE];
  99:uip_arp.c     **** static u16_t ipaddr[2];
 100:uip_arp.c     **** static u8_t i, c;
 101:uip_arp.c     **** 
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s 			page 4


 102:uip_arp.c     **** static u8_t time;
 103:uip_arp.c     **** static u8_t tmpage;
 104:uip_arp.c     **** 
 105:uip_arp.c     **** #define BUF   ((struct arp_hdr *)&uip_buf[0])
 106:uip_arp.c     **** #define IPBUF ((struct ethip_hdr *)&uip_buf[0])
 107:uip_arp.c     **** /*-----------------------------------------------------------------------------------*/
 108:uip_arp.c     **** void
 109:uip_arp.c     **** uip_arp_init(void)
 110:uip_arp.c     **** {
  71               		.stabn 68,0,110,.LM1-uip_arp_init
  72               	.LM1:
  73               	/* prologue: frame size=0 */
  74               	/* prologue end (size=0) */
 111:uip_arp.c     ****   for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {
  75               		.stabn 68,0,111,.LM2-uip_arp_init
  76               	.LM2:
  77 0000 1092 0000 		sts i,__zero_reg__
  78 0004 80E0      		ldi r24,lo8(0)
  79 0006 E0E0      		ldi r30,lo8(arp_table)
  80 0008 F0E0      		ldi r31,hi8(arp_table)
  81               	.L6:
 112:uip_arp.c     ****     arp_table[i].ipaddr[0] =
  82               		.stabn 68,0,112,.LM3-uip_arp_init
  83               	.LM3:
  84 000a 1282      		std Z+2,__zero_reg__
  85 000c 1382      		std Z+3,__zero_reg__
  86 000e 1082      		st Z,__zero_reg__
  87 0010 1182      		std Z+1,__zero_reg__
  88               		.stabn 68,0,111,.LM4-uip_arp_init
  89               	.LM4:
  90 0012 8F5F      		subi r24,lo8(-(1))
  91 0014 3B96      		adiw r30,11
  92 0016 8823      		tst r24
  93 0018 C1F3      		breq .L6
  94 001a 81E0      		ldi r24,lo8(1)
  95 001c 8093 0000 		sts i,r24
 113:uip_arp.c     ****       arp_table[i].ipaddr[1] = 0;
 114:uip_arp.c     ****   }
 115:uip_arp.c     **** }
  96               		.stabn 68,0,115,.LM5-uip_arp_init
  97               	.LM5:
  98               	/* epilogue: frame size=0 */
  99 0020 0895      		ret
 100               	/* epilogue end (size=1) */
 101               	/* function uip_arp_init size 17 (16) */
 102               		.size	uip_arp_init, .-uip_arp_init
 103               	.Lscope0:
 104               		.stabs	"",36,0,0,.Lscope0-uip_arp_init
 105               		.stabs	"uip_arp_timer:F(0,20)",36,0,119,uip_arp_timer
 106               	.global	uip_arp_timer
 107               		.type	uip_arp_timer, @function
 108               	uip_arp_timer:
 116:uip_arp.c     **** /*-----------------------------------------------------------------------------------*/
 117:uip_arp.c     **** void
 118:uip_arp.c     **** uip_arp_timer(void)
 119:uip_arp.c     **** {
 109               		.stabn 68,0,119,.LM6-uip_arp_timer
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cckxaaaa.s 			page 5


 110               	.LM6:
 111               	/* prologue: frame size=0 */
 112               	/* prologue end (size=0) */
 120:uip_arp.c     ****   ++time;
 113               		.stabn 68,0,120,.LM7-uip_arp_timer
 114               	.LM7:
 115 0022 8091 0000 		lds r24,time
 116 0026 8F5F      		subi r24,lo8(-(1))
 117 0028 8093 0000 		sts time,r24
 121:uip_arp.c     ****   for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {
 118               		.stabn 68,0,121,.LM8-uip_arp_timer
 119               	.LM8:
 120 002c 1092 0000 		sts i,__zero_reg__
 121 0030 20E0      		ldi r18,lo8(0)
 122 0032 582F      		mov r21,r24
 123               	.L16:
 122:uip_arp.c     ****     if((arp_table[i].ipaddr[0] | arp_table[i].ipaddr[1]) != 0 &&
 124               		.stabn 68,0,122,.LM9-uip_arp_timer
 125               	.LM9:
 126 0034 422F      		mov r20,r18
 127 0036 3327      		clr r19
 128 0038 8BE0      		ldi r24,lo8(11)
 129 003a 90E0      		ldi r25,hi8(11)
 130 003c 289F      		mul r18,r24
 131 003e F001      		movw r30,r0
 132 0040 299F      		mul r18,r25
 133 0042 F00D      		add r31,r0
 134 0044 389F      		mul r19,r24
 135 0046 F00D      		add r31,r0
 136 0048 1124      		clr r1
 137 004a E050      		subi r30,lo8(-(arp_table))
 138 004c F040      		sbci r31,hi8(-(arp_table))
 139 004e 8081      		ld r24,Z

⌨️ 快捷键说明

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