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

📄 rtl8019as.lis

📁 AVR以太网开发板中的几个例子。文件中定义了网卡芯片的IP地址,默认值是192.168.0.99。
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 03F2                   .dbline 270
 03F2           ;                        buffer[9]=mac_sou[0];
 03F2 2880              ldd R2,y+0
 03F4 20920900          sts _buffer+9,R2
 03F8                   .dbline 272
 03F8           ;                        
 03F8           ;                        buffer[10]=mac_des[5];
 03F8 2B84              ldd R2,y+11
 03FA 20920A00          sts _buffer+10,R2
 03FE                   .dbline 273
 03FE           ;                        buffer[11]=mac_des[4];
 03FE 2A84              ldd R2,y+10
 0400 20920B00          sts _buffer+11,R2
 0404                   .dbline 274
 0404           ;                        buffer[12]=mac_des[3];
 0404 2984              ldd R2,y+9
 0406 20920C00          sts _buffer+12,R2
 040A                   .dbline 275
 040A           ;                        buffer[13]=mac_des[2];
 040A 2884              ldd R2,y+8
 040C 20920D00          sts _buffer+13,R2
 0410                   .dbline 276
 0410           ;                        buffer[14]=mac_des[1];
 0410 2F80              ldd R2,y+7
 0412 20920E00          sts _buffer+14,R2
 0416                   .dbline 277
 0416           ;                        buffer[15]=mac_des[0];
 0416 2E80              ldd R2,y+6
 0418 20920F00          sts _buffer+15,R2
 041C                   .dbline 279
 041C           ;                        
 041C           ;                        rtl8019_sendpack(packlen,4);
 041C 24E0              ldi R18,4
 041E 8A01              movw R16,R20
 0420 07DF              xcall _rtl8019_sendpack
 0422                   .dbline 280
 0422           ;                       break;
 0422                   .dbline 282
 0422           ;               case 17://UDP包处理      
 0422           ;                   break;
 0422                   .dbline 283
 0422           ;           default:break;
 0422                   .dbline 285
 0422           ;          } 
 0422           ;        break;
 0422                   .dbline 287
 0422           ;    
 0422           ;   default:break;                        
 0422                   .dbline 290
 0422           ;  }
 0422           ;  
 0422           ;  return;
 0422                   .dbline -2
 0422           L35:
 0422 2C96              adiw R28,12
 0424 0E940000          xcall pop_gset3
 0428                   .dbline 0 ; func end
 0428 0895              ret
 042A                   .dbsym r i 10 i
 042A                   .dbsym r packlen 20 i
 042A                   .dbsym r packtyp 22 i
 042A                   .dbsym l mac_des 6 A[6:6]c
 042A                   .dbsym l mac_sou 0 A[6:6]c
 042A                   .dbend
 042A                   .dbfunc e tsum _tsum fi
 042A           ;          tempp -> R10,R11
 042A           ;          cksum -> y+0
 042A           ;           size -> R18,R19
 042A           ;         buffer -> R16,R17
                        .even
 042A           _tsum::
 042A 0E940000          xcall push_gset3
 042E 2497              sbiw R28,4
 0430                   .dbline -1
 0430                   .dbline 294
 0430           ; }
 0430           ; 
 0430           ; unsigned int tsum(unsigned int *buffer,unsigned int size) //校验和的求法
 0430           ; {
 0430                   .dbline 295
 0430           ;  unsigned long cksum=0x0;
 0430 40E0              ldi R20,0
 0432 50E0              ldi R21,0
 0434 60E0              ldi R22,0
 0436 70E0              ldi R23,0
 0438 FE01              movw R30,R28
 043A 4083              std z+0,R20
 043C 5183              std z+1,R21
 043E 6283              std z+2,R22
 0440 7383              std z+3,R23
 0442                   .dbline 298
 0442           ;  unsigned char *tempp;
 0442           ;  
 0442           ;  if(size&0x01)
 0442 20FF              sbrs R18,0
 0444 1FC0              rjmp L108
 0446                   .dbline 299
 0446           ;  {
 0446                   .dbline 300
 0446           ;   tempp=(unsigned char *)buffer;
 0446 5801              movw R10,R16
 0448                   .dbline 301
 0448           ;   tempp+=size;
 0448 A20E              add R10,R18
 044A B31E              adc R11,R19
 044C                   .dbline 302
 044C           ;   size++;
 044C 2F5F              subi R18,255  ; offset = 1
 044E 3F4F              sbci R19,255
 0450                   .dbline 303
 0450           ;   *tempp=0;
 0450 2224              clr R2
 0452 F501              movw R30,R10
 0454 2082              std z+0,R2
 0456                   .dbline 304
 0456           ;  }
 0456 16C0              xjmp L108
 0458           L107:
 0458                   .dbline 307
 0458                   .dbline 308
 0458 F801              movw R30,R16
 045A 2190              ld R2,Z+
 045C 3190              ld R3,Z+
 045E 8F01              movw R16,R30
 0460 4424              clr R4
 0462 5524              clr R5
 0464 FE01              movw R30,R28
 0466 6080              ldd R6,z+0
 0468 7180              ldd R7,z+1
 046A 8280              ldd R8,z+2
 046C 9380              ldd R9,z+3
 046E 620C              add R6,R2
 0470 731C              adc R7,R3
 0472 841C              adc R8,R4
 0474 951C              adc R9,R5
 0476 FE01              movw R30,R28
 0478 6082              std z+0,R6
 047A 7182              std z+1,R7
 047C 8282              std z+2,R8
 047E 9382              std z+3,R9
 0480                   .dbline 309
 0480 2250              subi R18,2
 0482 3040              sbci R19,0
 0484                   .dbline 310
 0484           L108:
 0484                   .dbline 306
 0484           ;  
 0484           ;  while(size>0) //各位求和
 0484 2030              cpi R18,0
 0486 2307              cpc R18,R19
 0488 39F7              brne L107
 048A           X3:
 048A                   .dbline 311
 048A           ;  {
 048A           ;   cksum=cksum+(*buffer++);
 048A           ;   size-=2;
 048A           ;  }
 048A           ;  cksum=(unsigned int)cksum+(cksum>>16);
 048A FE01              movw R30,R28
 048C 2080              ldd R2,z+0
 048E 3180              ldd R3,z+1
 0490 4280              ldd R4,z+2
 0492 5380              ldd R5,z+3
 0494 1201              movw R2,R4
 0496 4424              clr R4
 0498 5524              clr R5
 049A FE01              movw R30,R28
 049C 6080              ldd R6,z+0
 049E 7180              ldd R7,z+1
 04A0 8824              clr R8
 04A2 9924              clr R9
 04A4 620C              add R6,R2
 04A6 731C              adc R7,R3
 04A8 841C              adc R8,R4
 04AA 951C              adc R9,R5
 04AC FE01              movw R30,R28
 04AE 6082              std z+0,R6
 04B0 7182              std z+1,R7
 04B2 8282              std z+2,R8
 04B4 9382              std z+3,R9
 04B6                   .dbline 313
 04B6           ; 
 04B6           ;  return(~cksum); //再取反
 04B6 FE01              movw R30,R28
 04B8 0081              ldd R16,z+0
 04BA 1181              ldd R17,z+1
 04BC 0095              com R16
 04BE 1095              com R17
 04C0                   .dbline -2
 04C0           L104:
 04C0 2496              adiw R28,4
 04C2 0E940000          xcall pop_gset3
 04C6                   .dbline 0 ; func end
 04C6 0895              ret
 04C8                   .dbsym r tempp 10 pc
 04C8                   .dbsym l cksum 0 l
 04C8                   .dbsym r size 18 i
 04C8                   .dbsym r buffer 16 pi
 04C8                   .dbend
 04C8                   .dbfunc e send_ippack _send_ippack fV
 04C8           ;       protocol -> y+26
 04C8           ;       packtype -> R22,R23
 04C8           ;            len -> R20,R21
                        .even
 04C8           _send_ippack::
 04C8 0E940000          xcall push_gset2
 04CC B901              movw R22,R18
 04CE A801              movw R20,R16
 04D0 6697              sbiw R28,22
 04D2                   .dbline -1
 04D2                   .dbline 317
 04D2           ; }
 04D2           ; 
 04D2           ; void send_ippack(unsigned int len,unsigned int packtype,unsigned char protocol)
 04D2           ; {
 04D2                   .dbline 319
 04D2           ; 
 04D2           ;   buildpack(tempmac_d5,
 04D2 7D8B              std y+21,R23
 04D4 6C8B              std y+20,R22
 04D6 85E4              ldi R24,69
 04D8 8A8B              std y+18,R24
 04DA 83E4              ldi R24,67
 04DC 888B              std y+16,R24
 04DE 89E4              ldi R24,73
 04E0 8E87              std y+14,R24
 04E2 86E4              ldi R24,70
 04E4 8C87              std y+12,R24
 04E6 8A87              std y+10,R24
 04E8 8FE4              ldi R24,79
 04EA 8887              std y+8,R24
 04EC 20900000          lds R2,_tempmac_d0
 04F0 2E82              std y+6,R2
 04F2 20900100          lds R2,_tempmac_d1
 04F6 2C82              std y+4,R2
 04F8 20900200          lds R2,_tempmac_d2
 04FC 2A82              std y+2,R2
 04FE 20900300          lds R2,_tempmac_d3
 0502 2882              std y+0,R2
 0504 20910400          lds R18,_tempmac_d4
 0508 00910500          lds R16,_tempmac_d5
 050C B7DE              xcall _buildpack
 050E                   .dbline 332
 050E           ;                       tempmac_d4,
 050E           ;                       tempmac_d3,
 050E           ;                       tempmac_d2,
 050E           ;                       tempmac_d1,
 050E           ;                       tempmac_d0,
 050E           ;                       mynodeid_0,
 050E           ;                       mynodeid_1,
 050E           ;                       mynodeid_2,
 050E           ;                       mynodeid_3,
 050E           ;                       mynodeid_4,
 050E           ;                       mynodeid_5,
 050E           ;                       packtype);
 050E           ;   ip_buildpack(&buffer[14],(len-14),ip_id,protocol,tempip_d3,tempip_d2,tempip_d1,tempip_d0);
 050E 20900000          lds R2,_tempip_d0
 0512 2A86              std y+10,R2
 0514 20900000          lds R2,_tempip_d1
 0518 2886              std y+8,R2
 051A 20900000          lds R2,_tempip_d2
 051E 2E82              std y+6,R2
 0520 20900000          lds R2,_tempip_d3
 0524 2C82              std y+4,R2
 0526 0A8C              ldd R0,y+26
 0528 0A82              std y+2,R0
 052A 20900000          lds R2,_ip_id
 052E 30900100          lds R3,_ip_id+1
 0532 3982              std y+1,R3
 0534 2882              std y+0,R2
 0536 9A01              movw R18,R20
 0538 2E50              subi R18,14
 053A 3040              sbci R19,0
 053C 00E0              ldi R16,<_buffer+14
 053E 10E0              ldi R17,>_buffer+14
 0540 0E940000          xcall _ip_buildpack
 0544                   .dbline 333
 0544           ;   if(len<64){rtl8019_sendpack(64,0);}
 0544 4034              cpi R20,64
 0546 E0E0              ldi R30,0
 0548 5E07              cpc R21,R30
 054A 28F4              brsh L112
 054C                   .dbline 333
 054C                   .dbline 333
 054C 2227              clr R18
 054E 00E4              ldi R16,64
 0550 10E0              ldi R17,0
 0552 6EDE              xcall _rtl8019_sendpack
 0554                   .dbline 333
 0554 03C0              xjmp L113
 0556           L112:
 0556                   .dbline 334
 0556 2227              clr R18
 0558 8A01              movw R16,R20
 055A 6ADE              xcall _rtl8019_sendpack
 055C           L113:
 055C                   .dbline -2
 055C           L110:
 055C 6696              adiw R28,22
 055E 0E940000          xcall pop_gset2
 0562                   .dbline 0 ; func end
 0562 0895              ret
 0564                   .dbsym l protocol 26 c
 0564                   .dbsym r packtype 22 i
 0564                   .dbsym r len 20 i
 0564                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\hexok项目\AVRNET项目\AVRNET光盘\icc例子\rtl8019as.c
 0000           _tempmac_d0::
 0000                   .blkb 1
 0001                   .dbsym e tempmac_d0 _tempmac_d0 c
 0001           _tempmac_d1::
 0001                   .blkb 1
 0002                   .dbsym e tempmac_d1 _tempmac_d1 c
 0002           _tempmac_d2::
 0002                   .blkb 1
 0003                   .dbsym e tempmac_d2 _tempmac_d2 c
 0003           _tempmac_d3::
 0003                   .blkb 1
 0004                   .dbsym e tempmac_d3 _tempmac_d3 c
 0004           _tempmac_d4::
 0004                   .blkb 1
 0005                   .dbsym e tempmac_d4 _tempmac_d4 c
 0005           _tempmac_d5::
 0005                   .blkb 1
 0006                   .dbsym e tempmac_d5 _tempmac_d5 c
 0006           _count::
 0006                   .blkb 2
 0008                   .dbsym e count _count i

⌨️ 快捷键说明

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