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

📄 uip.lst

📁 一个AVR 上的UIP移植程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
  79 001a 0196      		adiw r24,1
  80 001c 2223      		tst r18
  81 001e A9F3      		breq .L6
 190:uip.c         ****   }
 191:uip.c         ****   for(c = 0; c < UIP_CONNS; ++c) {
  82               		.stabn 68,0,191,.LM5-uip_init
  83               	.LM5:
  84 0020 1092 0000 		sts c,__zero_reg__
  85 0024 80E0      		ldi r24,lo8(0)
  86 0026 E0E0      		ldi r30,lo8(uip_conns)
  87 0028 F0E0      		ldi r31,hi8(uip_conns)
  88               	.L11:
 192:uip.c         ****     uip_conns[c].tcpstateflags = CLOSED;
  89               		.stabn 68,0,192,.LM6-uip_init
  90               	.LM6:
  91 002a 1082      		st Z,__zero_reg__
  92 002c 7996      		adiw r30,25
  93               		.stabn 68,0,191,.LM7-uip_init
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/ccSyaaaa.s 			page 6


  94               	.LM7:
  95 002e 8F5F      		subi r24,lo8(-(1))
  96 0030 E1F3      		breq .L11
  97 0032 81E0      		ldi r24,lo8(1)
  98 0034 8093 0000 		sts c,r24
 193:uip.c         ****   }
 194:uip.c         **** #if UIP_ACTIVE_OPEN
 195:uip.c         ****   lastport = 1024;
 196:uip.c         **** #endif /* UIP_ACTIVE_OPEN */
 197:uip.c         **** }
  99               		.stabn 68,0,197,.LM8-uip_init
 100               	.LM8:
 101               	/* epilogue: frame size=0 */
 102 0038 0895      		ret
 103               	/* epilogue end (size=1) */
 104               	/* function uip_init size 30 (29) */
 105               		.size	uip_init, .-uip_init
 106               	.Lscope0:
 107               		.stabs	"",36,0,0,.Lscope0-uip_init
 108               		.stabs	"uip_listen:F(0,20)",36,0,262,uip_listen
 109               		.stabs	"port:P(3,2)",64,0,261,18
 110               	.global	uip_listen
 111               		.type	uip_listen, @function
 112               	uip_listen:
 198:uip.c         **** /*-----------------------------------------------------------------------------------*/
 199:uip.c         **** #if UIP_ACTIVE_OPEN
 200:uip.c         **** struct uip_conn *
 201:uip.c         **** uip_connect(u16_t *ripaddr, u16_t rport)
 202:uip.c         **** {
 203:uip.c         ****   struct uip_conn *conn;
 204:uip.c         ****   
 205:uip.c         ****   /* Find an unused local port. */
 206:uip.c         ****  again:
 207:uip.c         ****   ++lastport;
 208:uip.c         **** 
 209:uip.c         ****   if(lastport >= 32000) {
 210:uip.c         ****     lastport = 4096;
 211:uip.c         ****   }
 212:uip.c         ****   
 213:uip.c         ****   for(c = 0; c < UIP_CONNS; ++c) {
 214:uip.c         ****     if(uip_conns[c].tcpstateflags != CLOSED &&
 215:uip.c         ****        uip_conns[c].lport == lastport)
 216:uip.c         ****       goto again;
 217:uip.c         ****   }
 218:uip.c         **** 
 219:uip.c         **** 
 220:uip.c         ****   for(c = 0; c < UIP_CONNS; ++c) {
 221:uip.c         ****     if(uip_conns[c].tcpstateflags == CLOSED) 
 222:uip.c         ****       goto found_unused;
 223:uip.c         ****   }
 224:uip.c         ****   for(c = 0; c < UIP_CONNS; ++c) {
 225:uip.c         ****     if(uip_conns[c].tcpstateflags == TIME_WAIT) 
 226:uip.c         ****       goto found_unused;
 227:uip.c         ****   }
 228:uip.c         ****   return (void *)0;
 229:uip.c         ****   
 230:uip.c         ****  found_unused:
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/ccSyaaaa.s 			page 7


 231:uip.c         **** 
 232:uip.c         ****   conn = &uip_conns[c];
 233:uip.c         ****   
 234:uip.c         ****   conn->tcpstateflags = SYN_SENT | UIP_OUTSTANDING;
 235:uip.c         **** 
 236:uip.c         ****   conn->snd_nxt[0] = conn->ack_nxt[0] = iss[0];
 237:uip.c         ****   conn->snd_nxt[1] = conn->ack_nxt[1] = iss[1];
 238:uip.c         ****   conn->snd_nxt[2] = conn->ack_nxt[2] = iss[2];
 239:uip.c         ****   conn->snd_nxt[3] = conn->ack_nxt[3] = iss[3];
 240:uip.c         **** 
 241:uip.c         ****   if(++conn->ack_nxt[3] == 0) {
 242:uip.c         ****     if(++conn->ack_nxt[2] == 0) {
 243:uip.c         ****       if(++conn->ack_nxt[1] == 0) {
 244:uip.c         **** 	++conn->ack_nxt[0];
 245:uip.c         ****       }
 246:uip.c         ****     }
 247:uip.c         ****   }
 248:uip.c         ****   
 249:uip.c         ****   conn->nrtx = 0;
 250:uip.c         ****   conn->timer = 1; /* Send the SYN next time around. */
 251:uip.c         ****   conn->lport = htons(lastport);
 252:uip.c         ****   conn->rport = htons(rport);
 253:uip.c         ****   conn->ripaddr[0] = ripaddr[0];
 254:uip.c         ****   conn->ripaddr[1] = ripaddr[1];
 255:uip.c         ****   
 256:uip.c         ****   return conn;
 257:uip.c         **** }
 258:uip.c         **** #endif /* UIP_ACTIVE_OPEN */
 259:uip.c         **** /*-----------------------------------------------------------------------------------*/
 260:uip.c         **** void
 261:uip.c         **** uip_listen(u16_t port)
 262:uip.c         **** {
 113               		.stabn 68,0,262,.LM9-uip_listen
 114               	.LM9:
 115               	/* prologue: frame size=0 */
 116               	/* prologue end (size=0) */
 117 003a 9C01      		movw r18,r24
 263:uip.c         ****   for(c = 0; c < UIP_LISTENPORTS; ++c) {
 118               		.stabn 68,0,263,.LM10-uip_listen
 119               	.LM10:
 120 003c 1092 0000 		sts c,__zero_reg__
 121 0040 40E0      		ldi r20,lo8(0)
 122               	.L24:
 264:uip.c         ****     if(uip_listenports[c] == 0) {
 123               		.stabn 68,0,264,.LM11-uip_listen
 124               	.LM11:
 125 0042 E42F      		mov r30,r20
 126 0044 FF27      		clr r31
 127 0046 EE0F      		add r30,r30
 128 0048 FF1F      		adc r31,r31
 129 004a E050      		subi r30,lo8(-(uip_listenports))
 130 004c F040      		sbci r31,hi8(-(uip_listenports))
 131 004e 8081      		ld r24,Z
 132 0050 9181      		ldd r25,Z+1
 133 0052 892B      		or r24,r25
 134 0054 49F4      		brne .L21
 265:uip.c         ****       uip_listenports[c] = htons(port);
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/ccSyaaaa.s 			page 8


 135               		.stabn 68,0,265,.LM12-uip_listen
 136               	.LM12:
 137 0056 922F      		mov r25,r18
 138 0058 8827      		clr r24
 139 005a 232F      		mov r18,r19
 140 005c 3327      		clr r19
 141 005e 822B      		or r24,r18
 142 0060 932B      		or r25,r19
 143 0062 8083      		st Z,r24
 144 0064 9183      		std Z+1,r25
 266:uip.c         ****       break;
 145               		.stabn 68,0,266,.LM13-uip_listen
 146               	.LM13:
 147 0066 02C0      		rjmp .L26
 148               		.stabn 68,0,263,.LM14-uip_listen
 149               	.LM14:
 150               	.L21:
 151 0068 4F5F      		subi r20,lo8(-(1))
 152 006a 59F3      		breq .L24
 153               	.L26:
 154 006c 4093 0000 		sts c,r20
 267:uip.c         ****     }
 268:uip.c         ****   }
 269:uip.c         **** }
 155               		.stabn 68,0,269,.LM15-uip_listen
 156               	.LM15:
 157               	/* epilogue: frame size=0 */
 158 0070 0895      		ret
 159               	/* epilogue end (size=1) */
 160               	/* function uip_listen size 29 (28) */
 161               		.size	uip_listen, .-uip_listen
 162               	.Lscope1:
 163               		.stabs	"",36,0,0,.Lscope1-uip_listen
 164               		.stabs	"uip_process:F(0,20)",36,0,273,uip_process
 165               		.stabs	"flag:P(3,1)",64,0,272,18
 166               	.global	uip_process
 167               		.type	uip_process, @function
 168               	uip_process:
 270:uip.c         **** /*-----------------------------------------------------------------------------------*/
 271:uip.c         **** void
 272:uip.c         **** uip_process(u8_t flag)
 273:uip.c         **** {
 169               		.stabn 68,0,273,.LM16-uip_process
 170               	.LM16:
 171               	/* prologue: frame size=0 */
 172 0072 CF93      		push r28
 173               	/* prologue end (size=1) */
 174 0074 282F      		mov r18,r24
 274:uip.c         ****   uip_appdata = &uip_buf[40 + UIP_LLH_LEN];
 175               		.stabn 68,0,274,.LM17-uip_process
 176               	.LM17:
 177 0076 80E0      		ldi r24,lo8(uip_buf+54)
 178 0078 90E0      		ldi r25,hi8(uip_buf+54)
 179 007a 9093 0000 		sts (uip_appdata)+1,r25
 180 007e 8093 0000 		sts uip_appdata,r24
 275:uip.c         ****     
 276:uip.c         ****   /* Check if we were invoked because of the perodic timer fireing. */
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/ccSyaaaa.s 			page 9


 277:uip.c         ****   if(flag == UIP_TIMER) {
 181               		.stabn 68,0,277,.LM18-uip_process
 182               	.LM18:
 183 0082 2230      		cpi r18,lo8(2)
 184 0084 09F0      		breq .+2
 185 0086 90C0      		rjmp .L28
 278:uip.c         ****     /* Increase the initial sequence number. */
 279:uip.c         ****     if(++iss[3] == 0) {
 186               		.stabn 68,0,279,.LM19-uip_process
 187               	.LM19:
 188 0088 8091 0000 		lds r24,iss+3
 189 008c 8F5F      		subi r24,lo8(-(1))
 190 008e 8093 0000 		sts iss+3,r24
 191 0092 8823      		tst r24
 192 0094 99F4      		brne .L29
 280:uip.c         ****       if(++iss[2] == 0) {
 193               		.stabn 68,0,280,.LM20-uip_process
 194               	.LM20:
 195 0096 8091 0000 		lds r24,iss+2
 196 009a 8F5F      		subi r24,lo8(-(1))
 197 009c 8093 0000 		sts iss+2,r24
 198 00a0 8823      		tst r24
 199 00a2 61F4      		brne .L29
 281:uip.c         **** 	if(++iss[1] == 0) {
 200               		.stabn 68,0,281,.LM21-uip_process
 201               	.LM21:
 202 00a4 8091 0000 		lds r24,iss+1
 203 00a8 8F5F      		subi r24,lo8(-(1))
 204 00aa 8093 0000 		sts iss+1,r24
 205 00ae 8823      		tst r24
 206 00b0 29F4      		brne .L29
 282:uip.c         **** 	  ++iss[0];
 207               		.stabn 68,0,282,.LM22-uip_process
 208               	.LM22:
 209 00b2 8091 0000 		lds r24,iss
 210 00b6 8F5F      		subi r24,lo8(-(1))
 211 00b8 8093 0000 		sts iss,r24
 212               	.L29:
 283:uip.c         **** 	}
 284:uip.c         ****       }
 285:uip.c         ****     }    
 286:uip.c         ****     uip_len = 0;
 213               		.stabn 68,0,286,.LM23-uip_process
 214               	.LM23:
 215 00bc 1092 0000 		sts uip_len,__zero_reg__
 287:uip.c         ****     if(uip_conn->tcpstateflags == TIME_WAIT ||
 216               		.stabn 68,0,287,.LM24-uip_process
 217               	.LM24:
 218 00c0 E091 0000 		lds r30,uip_conn
 219 00c4 F091 0000 		lds r31,(uip_conn)+1
 220 00c8 8081      		ld r24,Z
 221 00ca 8730      		cpi r24,lo8(7)
 222 00cc 11F0      		breq .L33
 223 00ce 8530      		cpi r24,lo8(5)
 224 00d0 61F4      		brne .L32
 225               	.L33:
 288:uip.c         ****        uip_conn->tcpstateflags == FIN_WAIT_2) {
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/ccSyaaaa.s 			page 10


 289:uip.c         ****       ++(uip_conn->timer);
 226               		.stabn 68,0,289,.LM25-uip_process
 227               	.LM25:
 228 00d2 8689      		ldd r24,Z+22
 229 00d4 8F5F      		subi r24,lo8(-(1))
 230 00d6 868B      		std Z+22,r24
 290:uip.c         ****       if(uip_conn->timer == UIP_TIME_WAIT_TIMEOUT) {
 231               		.stabn 68,0,290,.LM26-uip_process
 232               	.LM26:
 233 00d8 E091 0000 		lds r30,uip_conn
 234 00dc F091 0000 		lds r31,(uip_conn)+1
 235 00e0 8689      		ldd r24,Z+22
 236 00e2 8837      		cpi r24,lo8(120)
 237 00e4 09F0      		breq .+2
 238 00e6 C5C4      		rjmp .L58
 291:uip.c         **** 	uip_conn->tcpstateflags = CLOSED;
 239               		.stabn 68,0,291,.LM27-uip_process
 240               	.LM27:
 241 00e8 DAC3      		rjmp .L180
 242               	.L32:
 292:uip.c         ****       }

⌨️ 快捷键说明

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