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

📄 rtl8019.lis

📁 uIP是免费的TCP/IP协议栈,我们将它移植到我们的AVR以太网开发板中
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 01F2 BB24              clr R11
 01F4 08C0              xjmp L143
 01F6           L140:
 01F6                   .dbline 456
 01F6           ;         if(rtl8019Read(ISR) & 1<<6)
 01F6 209000C7          lds R2,50944
 01FA 26FE              sbrs R2,6
 01FC 01C0              rjmp L144
 01FE                   .dbline 457
 01FE           ;             break;
 01FE 08C0              xjmp L142
 0200           L144:
 0200           L141:
 0200                   .dbline 455
 0200 C501              movw R24,R10
 0202 0196              adiw R24,1
 0204 5C01              movw R10,R24
 0206           L143:
 0206                   .dbline 455
 0206 84E1              ldi R24,20
 0208 90E0              ldi R25,0
 020A 8A15              cp R24,R10
 020C 9B05              cpc R25,R11
 020E 98F7              brsh L140
 0210           L142:
 0210           L146:
 0210                   .dbline 458
 0210                   .dbline 458
 0210 80E4              ldi R24,64
 0212 809300C7          sts 50944,R24
 0216                   .dbline 458
 0216           L147:
 0216                   .dbline 458
 0216                   .dbline 460
 0216 20900000          lds R2,_currentRetreiveAddress
 021A 30900100          lds R3,_currentRetreiveAddress+1
 021E 220E              add R2,R18
 0220 331E              adc R3,R19
 0222 30920100          sts _currentRetreiveAddress+1,R3
 0226 20920000          sts _currentRetreiveAddress,R2
 022A                   .dbline 461
 022A C101              movw R24,R2
 022C 8030              cpi R24,0
 022E E0E6              ldi R30,96
 0230 9E07              cpc R25,R30
 0232 30F0              brlo L149
 0234                   .dbline 462
 0234 8050              subi R24,0
 0236 9A41              sbci R25,26
 0238 90930100          sts _currentRetreiveAddress+1,R25
 023C 80930000          sts _currentRetreiveAddress,R24
 0240           L149:
 0240                   .dbline -2
 0240           L117:
 0240 0E940000          xcall pop_gset3x
 0244                   .dbline 0 ; func end
 0244 0895              ret
 0246                   .dbsym r i 10 i
 0246                   .dbsym r length 18 i
 0246                   .dbsym r localBuffer 16 pc
 0246                   .dbend
 0246                   .dbfunc e rtl8019EndPacketRetreive _rtl8019EndPacketRetreive fV
 0246           ;              i -> R16
                        .even
 0246           _rtl8019EndPacketRetreive::
 0246                   .dbline -1
 0246                   .dbline 468
 0246           ;     rtl8019Write(ISR, 1<<6);
 0246           ;     
 0246           ;     currentRetreiveAddress += length;
 0246           ;     if( currentRetreiveAddress >= 0x6000 )
 0246           ;       currentRetreiveAddress = currentRetreiveAddress - (0x6000-0x4600) ;
 0246           ; }
 0246           ; 
 0246           ; 
 0246           ; 
 0246           ; void rtl8019EndPacketRetreive(void)
 0246           ; {
 0246           L152:
 0246                   .dbline 472
 0246                   .dbline 472
 0246 82E2              ldi R24,34
 0248 809300C0          sts 49152,R24
 024C                   .dbline 472
 024C           L153:
 024C                   .dbline 472
 024C           ;       unsigned char i;
 024C           ; 
 024C           ;       // end the DMA operation
 024C           ;     rtl8019Write(CR, 0x22);
 024C                   .dbline 473
 024C           ;     for(i = 0; i <= 20; i++)
 024C 0027              clr R16
 024E 06C0              xjmp L158
 0250           L155:
 0250                   .dbline 474
 0250           ;         if(rtl8019Read(ISR) & 1<<6)
 0250 209000C7          lds R2,50944
 0254 26FE              sbrs R2,6
 0256 01C0              rjmp L159
 0258                   .dbline 475
 0258           ;             break;
 0258 04C0              xjmp L157
 025A           L159:
 025A           L156:
 025A                   .dbline 473
 025A 0395              inc R16
 025C           L158:
 025C                   .dbline 473
 025C 84E1              ldi R24,20
 025E 8017              cp R24,R16
 0260 B8F7              brsh L155
 0262           L157:
 0262           L161:
 0262                   .dbline 476
 0262                   .dbline 476
 0262 80E4              ldi R24,64
 0264 809300C7          sts 50944,R24
 0268                   .dbline 476
 0268           L162:
 0268                   .dbline 476
 0268           ;     rtl8019Write(ISR, 1<<6);
 0268           L164:
 0268                   .dbline 479
 0268                   .dbline 479
 0268 20900200          lds R2,_nextPage
 026C 209200C3          sts 49920,R2
 0270                   .dbline 479
 0270           L165:
 0270                   .dbline 479
 0270           ; 
 0270           ;       // set the boundary register to point to the start of the next packet
 0270           ;     rtl8019Write(BNRY, nextPage);
 0270                   .dbline -2
 0270           L151:
 0270                   .dbline 0 ; func end
 0270 0895              ret
 0272                   .dbsym r i 16 c
 0272                   .dbend
 0272                   .dbfunc e rtl8019Overrun _rtl8019Overrun fV
 0272           ;         resend -> R10
 0272           ;         data_L -> R12
                        .even
 0272           _rtl8019Overrun::
 0272 0E940000          xcall push_gset4x
 0276                   .dbline -1
 0276                   .dbline 484
 0276           ; }
 0276           ; 
 0276           ; 
 0276           ; void rtl8019Overrun(void)
 0276           ; {
 0276                   .dbline 487
 0276           ;       unsigned char data_L, resend;   
 0276           ; 
 0276           ;       data_L = rtl8019Read(CR);
 0276 C09000C0          lds R12,49152
 027A           L168:
 027A                   .dbline 488
 027A                   .dbline 488
 027A 81E2              ldi R24,33
 027C 809300C0          sts 49152,R24
 0280                   .dbline 488
 0280           L169:
 0280                   .dbline 488
 0280           ;       rtl8019Write(CR, 0x21);
 0280                   .dbline 489
 0280           ;       delay_ms(2);
 0280 02E0              ldi R16,2
 0282 0E940000          xcall _delay_ms
 0286           L171:
 0286                   .dbline 490
 0286                   .dbline 490
 0286 2224              clr R2
 0288 209200CA          sts 51712,R2
 028C                   .dbline 490
 028C           L172:
 028C                   .dbline 490
 028C           ;       rtl8019Write(RBCR0, 0x00);
 028C           L174:
 028C                   .dbline 491
 028C                   .dbline 491
 028C 2224              clr R2
 028E 209200CB          sts 51968,R2
 0292                   .dbline 491
 0292           L175:
 0292                   .dbline 491
 0292           ;       rtl8019Write(RBCR1, 0x00);
 0292                   .dbline 492
 0292           ;       if(!(data_L & 0x04))
 0292 C2FC              sbrc R12,2
 0294 02C0              rjmp L177
 0296                   .dbline 493
 0296           ;               resend = 0;
 0296 AA24              clr R10
 0298 0CC0              xjmp L178
 029A           L177:
 029A                   .dbline 494
 029A           ;       else if(data_L & 0x04)
 029A C2FE              sbrs R12,2
 029C 0AC0              rjmp L179
 029E                   .dbline 495
 029E           ;       {
 029E                   .dbline 496
 029E           ;               data_L = rtl8019Read(ISR);
 029E C09000C7          lds R12,50944
 02A2                   .dbline 497
 02A2           ;               if((data_L & 0x02) || (data_L & 0x08))
 02A2 C1FC              sbrc R12,1
 02A4 02C0              rjmp L183
 02A6 C3FE              sbrs R12,3
 02A8 02C0              rjmp L181
 02AA           L183:
 02AA                   .dbline 498
 02AA           ;               resend = 0;
 02AA AA24              clr R10
 02AC 02C0              xjmp L182
 02AE           L181:
 02AE                   .dbline 500
 02AE           ;           else
 02AE           ;               resend = 1;
 02AE AA24              clr R10
 02B0 A394              inc R10
 02B2           L182:
 02B2                   .dbline 501
 02B2           ;       }
 02B2           L179:
 02B2           L178:
 02B2           L184:
 02B2                   .dbline 503
 02B2                   .dbline 503
 02B2 82E0              ldi R24,2
 02B4 809300CD          sts 52480,R24
 02B8                   .dbline 503
 02B8           L185:
 02B8                   .dbline 503
 02B8           ;       
 02B8           ;       rtl8019Write(TCR, 0x02);
 02B8           L187:
 02B8                   .dbline 504
 02B8                   .dbline 504
 02B8 82E2              ldi R24,34
 02BA 809300C0          sts 49152,R24
 02BE                   .dbline 504
 02BE           L188:
 02BE                   .dbline 504
 02BE           ;       rtl8019Write(CR, 0x22);
 02BE           L190:
 02BE                   .dbline 505
 02BE                   .dbline 505
 02BE 86E4              ldi R24,70
 02C0 809300C3          sts 49920,R24
 02C4                   .dbline 505
 02C4           L191:
 02C4                   .dbline 505
 02C4           ;       rtl8019Write(BNRY, RXSTART_INIT);
 02C4           L193:
 02C4                   .dbline 506
 02C4                   .dbline 506
 02C4 82E6              ldi R24,98
 02C6 809300C0          sts 49152,R24
 02CA                   .dbline 506
 02CA           L194:
 02CA                   .dbline 506
 02CA           ;       rtl8019Write(CR, 0x62);
 02CA           L196:
 02CA                   .dbline 507
 02CA                   .dbline 507
 02CA 86E4              ldi R24,70
 02CC 809300C7          sts 50944,R24
 02D0                   .dbline 507
 02D0           L197:
 02D0                   .dbline 507
 02D0           ;       rtl8019Write(CURR, RXSTART_INIT);
 02D0           L199:
 02D0                   .dbline 508
 02D0                   .dbline 508
 02D0 82E2              ldi R24,34
 02D2 809300C0          sts 49152,R24
 02D6                   .dbline 508
 02D6           L200:
 02D6                   .dbline 508
 02D6           ;       rtl8019Write(CR, 0x22);
 02D6           L202:
 02D6                   .dbline 509
 02D6                   .dbline 509
 02D6 80E1              ldi R24,16
 02D8 809300C7          sts 50944,R24
 02DC                   .dbline 509
 02DC           L203:
 02DC                   .dbline 509
 02DC           ;       rtl8019Write(ISR, 0x10);
 02DC           L205:
 02DC                   .dbline 510
 02DC                   .dbline 510
 02DC 2224              clr R2
 02DE 209200CD          sts 52480,R2
 02E2                   .dbline 510
 02E2           L206:
 02E2                   .dbline 510
 02E2           ;       rtl8019Write(TCR, TCR_INIT);
 02E2                   .dbline 512
 02E2           ;       
 02E2           ;     if(resend)
 02E2 AA20              tst R10
 02E4 19F0              breq L208
 02E6           L210:
 02E6                   .dbline 513
 02E6                   .dbline 513
 02E6 86E2              ldi R24,38
 02E8 809300C0          sts 49152,R24
 02EC                   .dbline 513
 02EC           L211:
 02EC                   .dbline 513
 02EC           ;         rtl8019Write(CR, 0x26);
 02EC           L208:
 02EC           L213:
 02EC                   .dbline 515
 02EC                   .dbline 515
 02EC 8FEF              ldi R24,255
 02EE 809300C7          sts 50944,R24
 02F2                   .dbline 515
 02F2           L214:
 02F2                   .dbline 515
 02F2           ; 
 02F2           ;     rtl8019Write(ISR, 0xFF);

⌨️ 快捷键说明

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