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

📄 ppp.lis

📁 AVR单片机系统开发经典实例部分源程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 011A           ; bool PPP_WeAcceptedStr(u8 type)
 011A           ; {
 011A                   .dbline 192
 011A           ;       if (!SendDebugRStr(ppp_str1)) return false;
 011A 00E0              ldi R16,<_ppp_str1
 011C 10E0              ldi R17,>_ppp_str1
 011E 0E940000          xcall _SendDebugRStr
 0122 0023              tst R16
 0124 11F4              brne L25
 0126                   .dbline 192
 0126 0027              clr R16
 0128 0EC0              xjmp L24
 012A           L25:
 012A                   .dbline 193
 012A           ;       sprintf((char*)ScratchPad, "%u\n", type);
 012A 242E              mov R2,R20
 012C 3324              clr R3
 012E 3982              std y+1,R3
 0130 2882              std y+0,R2
 0132 20E0              ldi R18,<L27
 0134 30E0              ldi R19,>L27
 0136 00E0              ldi R16,<_ScratchPad
 0138 10E0              ldi R17,>_ScratchPad
 013A 0E940000          xcall _sprintf
 013E                   .dbline 194
 013E           ;       return SendDebugStr((char*)ScratchPad);
 013E 00E0              ldi R16,<_ScratchPad
 0140 10E0              ldi R17,>_ScratchPad
 0142 0E940000          xcall _SendDebugStr
 0146                   .dbline -2
 0146           L24:
 0146 2296              adiw R28,2
 0148 0E940000          xcall pop_gset1
 014C                   .dbline 0 ; func end
 014C 0895              ret
 014E                   .dbsym r type 20 c
 014E                   .dbend
 014E                   .dbfunc e PPP_WeNRejectedStr _PPP_WeNRejectedStr fc
 014E           ;           type -> R20
                        .even
 014E           _PPP_WeNRejectedStr::
 014E 0E940000          xcall push_gset1
 0152 402F              mov R20,R16
 0154 2297              sbiw R28,2
 0156                   .dbline -1
 0156                   .dbline 198
 0156           ; }
 0156           ; 
 0156           ; bool PPP_WeNRejectedStr(u8 type)
 0156           ; {
 0156                   .dbline 199
 0156           ;       if (!SendDebugRStr(ppp_str2)) return false;
 0156 00E0              ldi R16,<_ppp_str2
 0158 10E0              ldi R17,>_ppp_str2
 015A 0E940000          xcall _SendDebugRStr
 015E 0023              tst R16
 0160 11F4              brne L29
 0162                   .dbline 199
 0162 0027              clr R16
 0164 0EC0              xjmp L28
 0166           L29:
 0166                   .dbline 200
 0166           ;       sprintf((char*)ScratchPad, "%u\n", type);
 0166 242E              mov R2,R20
 0168 3324              clr R3
 016A 3982              std y+1,R3
 016C 2882              std y+0,R2
 016E 20E0              ldi R18,<L27
 0170 30E0              ldi R19,>L27
 0172 00E0              ldi R16,<_ScratchPad
 0174 10E0              ldi R17,>_ScratchPad
 0176 0E940000          xcall _sprintf
 017A                   .dbline 201
 017A           ;       return SendDebugStr((char*)ScratchPad);
 017A 00E0              ldi R16,<_ScratchPad
 017C 10E0              ldi R17,>_ScratchPad
 017E 0E940000          xcall _SendDebugStr
 0182                   .dbline -2
 0182           L28:
 0182 2296              adiw R28,2
 0184 0E940000          xcall pop_gset1
 0188                   .dbline 0 ; func end
 0188 0895              ret
 018A                   .dbsym r type 20 c
 018A                   .dbend
 018A                   .dbfunc e PPP_WeRejectedStr _PPP_WeRejectedStr fc
 018A           ;           type -> R20
                        .even
 018A           _PPP_WeRejectedStr::
 018A 0E940000          xcall push_gset1
 018E 402F              mov R20,R16
 0190 2297              sbiw R28,2
 0192                   .dbline -1
 0192                   .dbline 205
 0192           ; }
 0192           ; 
 0192           ; bool PPP_WeRejectedStr(u8 type)
 0192           ; {
 0192                   .dbline 206
 0192           ;       if (!SendDebugRStr(ppp_str3)) return false;
 0192 00E0              ldi R16,<_ppp_str3
 0194 10E0              ldi R17,>_ppp_str3
 0196 0E940000          xcall _SendDebugRStr
 019A 0023              tst R16
 019C 11F4              brne L32
 019E                   .dbline 206
 019E 0027              clr R16
 01A0 0EC0              xjmp L31
 01A2           L32:
 01A2                   .dbline 207
 01A2           ;       sprintf((char*)ScratchPad, "%u\n", type);
 01A2 242E              mov R2,R20
 01A4 3324              clr R3
 01A6 3982              std y+1,R3
 01A8 2882              std y+0,R2
 01AA 20E0              ldi R18,<L27
 01AC 30E0              ldi R19,>L27
 01AE 00E0              ldi R16,<_ScratchPad
 01B0 10E0              ldi R17,>_ScratchPad
 01B2 0E940000          xcall _sprintf
 01B6                   .dbline 208
 01B6           ;       return SendDebugStr((char*)ScratchPad);
 01B6 00E0              ldi R16,<_ScratchPad
 01B8 10E0              ldi R17,>_ScratchPad
 01BA 0E940000          xcall _SendDebugStr
 01BE                   .dbline -2
 01BE           L31:
 01BE 2296              adiw R28,2
 01C0 0E940000          xcall pop_gset1
 01C4                   .dbline 0 ; func end
 01C4 0895              ret
 01C6                   .dbsym r type 20 c
 01C6                   .dbend
 01C6                   .dbfunc e PPP_DisplayPacket _PPP_DisplayPacket fc
 01C6           ;             dw -> y+6
 01C6           ;              j -> R22,R23
 01C6           ;     CodeHeader -> R20,R21
 01C6           ;           type -> R12
 01C6           ;       Protocol -> R14,R15
 01C6           ;            len -> R10
 01C6           ;              i -> y+10
 01C6           ;          Bytes -> y+22
 01C6           ;             Tx -> R20
                        .even
 01C6           _PPP_DisplayPacket::
 01C6 3A93              st -y,r19
 01C8 2A93              st -y,r18
 01CA 0E940000          xcall push_gset5
 01CE 402F              mov R20,R16
 01D0 2C97              sbiw R28,12
 01D2                   .dbline -1
 01D2                   .dbline 212
 01D2           ; }
 01D2           ; 
 01D2           ; bool PPP_DisplayPacket(bool Tx, u16 Bytes)
 01D2           ; {
 01D2                   .dbline 218
 01D2           ;       u8                              type, len;
 01D2           ;       u16                             i, j, Protocol;
 01D2           ;       u32                             dw;
 01D2           ;       T_CodeHeader    *CodeHeader;
 01D2           ; 
 01D2           ;       i = 0;
 01D2 0024              clr R0
 01D4 1124              clr R1
 01D6 1B86              std y+11,R1
 01D8 0A86              std y+10,R0
 01DA                   .dbline 219
 01DA           ;       j = ntohs(*(u16*)(MainBuffer + i));                             //
 01DA 80E0              ldi R24,<_MainBuffer
 01DC 90E0              ldi R25,>_MainBuffer
 01DE F001              movw R30,R0
 01E0 E80F              add R30,R24
 01E2 F91F              adc R31,R25
 01E4 0081              ldd R16,z+0
 01E6 1181              ldd R17,z+1
 01E8 0E940000          xcall _ntohs
 01EC B801              movw R22,R16
 01EE                   .dbline 220
 01EE           ;       if (j == 0xff03) i += 2;                                                // the address/control fields are present (no ACFC)
 01EE 0330              cpi R16,3
 01F0 EFEF              ldi R30,255
 01F2 1E07              cpc R17,R30
 01F4 29F4              brne L35
 01F6                   .dbline 220
 01F6 8A85              ldd R24,y+10
 01F8 9B85              ldd R25,y+11
 01FA 0296              adiw R24,2
 01FC 9B87              std y+11,R25
 01FE 8A87              std y+10,R24
 0200           L35:
 0200                   .dbline 222
 0200           ;                                                                                                       //
 0200           ;       if (MainBuffer[i] & 0x01)                                               //
 0200 80E0              ldi R24,<_MainBuffer
 0202 90E0              ldi R25,>_MainBuffer
 0204 EA85              ldd R30,y+10
 0206 FB85              ldd R31,y+11
 0208 E80F              add R30,R24
 020A F91F              adc R31,R25
 020C 2080              ldd R2,z+0
 020E 20FE              sbrs R2,0
 0210 0EC0              rjmp L37
 0212                   .dbline 223
 0212           ;               Protocol = (u16)MainBuffer[i++];                        // the protocol field has been compressed
 0212 2A84              ldd R2,y+10
 0214 3B84              ldd R3,y+11
 0216 C101              movw R24,R2
 0218 0196              adiw R24,1
 021A 9B87              std y+11,R25
 021C 8A87              std y+10,R24
 021E 80E0              ldi R24,<_MainBuffer
 0220 90E0              ldi R25,>_MainBuffer
 0222 F101              movw R30,R2
 0224 E80F              add R30,R24
 0226 F91F              adc R31,R25
 0228 E080              ldd R14,z+0
 022A FF24              clr R15
 022C 10C0              xjmp L38
 022E           L37:
 022E                   .dbline 225
 022E           ;       else                                                                                    //
 022E           ;       {                                                                                               //
 022E                   .dbline 226
 022E           ;               Protocol = ntohs(*(u16*)(MainBuffer + i));      // no PFC
 022E 80E0              ldi R24,<_MainBuffer
 0230 90E0              ldi R25,>_MainBuffer
 0232 EA85              ldd R30,y+10
 0234 FB85              ldd R31,y+11
 0236 E80F              add R30,R24
 0238 F91F              adc R31,R25
 023A 0081              ldd R16,z+0
 023C 1181              ldd R17,z+1
 023E 0E940000          xcall _ntohs
 0242 7801              movw R14,R16
 0244                   .dbline 227
 0244           ;               i += 2;                                                                         //
 0244 8A85              ldd R24,y+10
 0246 9B85              ldd R25,y+11
 0248 0296              adiw R24,2
 024A 9B87              std y+11,R25
 024C 8A87              std y+10,R24
 024E                   .dbline 228
 024E           ;       }                                                                                               //
 024E           L38:
 024E                   .dbline 230
 024E           ;                                                                                                       //
 024E           ;       if (Protocol == PPP_IP) return true;                    // let the IP routine display the packet
 024E C701              movw R24,R14
 0250 8132              cpi R24,33
 0252 E0E0              ldi R30,0
 0254 9E07              cpc R25,R30
 0256 11F4              brne L39
 0258                   .dbline 230
 0258 01E0              ldi R16,1
 025A EDC2              xjmp L34
 025C           L39:
 025C                   .dbline 235
 025C           ; 
 025C           ;       // ********************
 025C           ;       // display the protocol
 025C           ; 
 025C           ;       if (Tx)
 025C 4423              tst R20
 025E 39F0              breq L41
 0260                   .dbline 236
 0260           ;               strcpy((char*)ScratchPad, "\nT");
 0260 20E0              ldi R18,<L43
 0262 30E0              ldi R19,>L43
 0264 00E0              ldi R16,<_ScratchPad
 0266 10E0              ldi R17,>_ScratchPad
 0268 0E940000          xcall _strcpy
 026C 06C0              xjmp L42
 026E           L41:
 026E                   .dbline 238

⌨️ 快捷键说明

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