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

📄 main.lis

📁 BootLoad_Pei&Ecirc &Ccedil ICC&micro &Auml &Ocirc &acute &acute ú&Acirc &euml &pound &not MegaLoad
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0098 2080              ldd R2,z+0
 009A A20C              add R10,R2
 009C                   .dbline 149
 009C           L15:
 009C                   .dbline 145
 009C 6395              inc R22
 009E           L17:
 009E                   .dbline 145
 009E 6034              cpi R22,64
 00A0 78F3              brlo L14
 00A2                   .dbline 151
 00A2           ;       {
 00A2           ;       PageBuffer[i]=RecChar();
 00A2           ;       LocalCheckSum += PageBuffer[i];
 00A2           ;       }
 00A2           ;                  
 00A2           ;     CheckSum = RecChar(); 
 00A2 65D0              rcall _RecChar
 00A4 402F              mov R20,R16
 00A6                   .dbline 152
 00A6           ;     if (LocalCheckSum == CheckSum) return 1;
 00A6 A016              cp R10,R16
 00A8 11F4              brne L18
 00AA                   .dbline 152
 00AA 01E0              ldi R16,1
 00AC 01C0              rjmp L11
 00AE           L18:
 00AE                   .dbline 153
 00AE           ;     else return 0;
 00AE 0027              clr R16
 00B0                   .dbline -2
 00B0           L11:
 00B0 00D0              rcall pop_gset4
 00B2                   .dbline 0 ; func end
 00B2 0895              ret
 00B4                   .dbsym r CheckSum 20 c
 00B4                   .dbsym r AddL 22 c
 00B4                   .dbsym r AddH 12 c
 00B4                   .dbsym r LocalCheckSum 10 c
 00B4                   .dbsym r i 22 c
 00B4                   .dbend
 00B4                   .dbfunc e WriteFlash _WriteFlash fV
 00B4           ;        TempInt -> R20,R21
 00B4           ;              i -> R22,R23
                        .even
 00B4           _WriteFlash::
 00B4 00D0              rcall push_gset2
 00B6                   .dbline -1
 00B6                   .dbline 158
 00B6           ;   }
 00B6           ; 
 00B6           ; /*****************************************************************************/
 00B6           ; void WriteFlash(void)
 00B6           ;   {
 00B6                   .dbline 162
 00B6           ;     unsigned int i;
 00B6           ;     unsigned int TempInt;
 00B6           ; 
 00B6           ;     for (i=0;i<PageByte;i+=2)
 00B6 6627              clr R22
 00B8 7727              clr R23
 00BA 16C0              rjmp L24
 00BC           L21:
 00BC                   .dbline 163
 00BC                   .dbline 164
 00BC 80E0              ldi R24,<_PageBuffer
 00BE 90E0              ldi R25,>_PageBuffer
 00C0 FB01              movw R30,R22
 00C2 3196              adiw R30,1
 00C4 E80F              add R30,R24
 00C6 F91F              adc R31,R25
 00C8 2080              ldd R2,z+0
 00CA 3324              clr R3
 00CC 322C              mov R3,R2
 00CE 2224              clr R2
 00D0 FB01              movw R30,R22
 00D2 E80F              add R30,R24
 00D4 F91F              adc R31,R25
 00D6 4081              ldd R20,z+0
 00D8 5527              clr R21
 00DA 420D              add R20,R2
 00DC 531D              adc R21,R3
 00DE                   .dbline 165
 00DE 9B01              movw R18,R22
 00E0 8A01              movw R16,R20
 00E2 00D0              rcall _fill_temp_buffer
 00E4                   .dbline 166
 00E4           L22:
 00E4                   .dbline 162
 00E4 6E5F              subi R22,254  ; offset = 2
 00E6 7F4F              sbci R23,255
 00E8           L24:
 00E8                   .dbline 162
 00E8 6034              cpi R22,64
 00EA E0E0              ldi R30,0
 00EC 7E07              cpc R23,R30
 00EE 30F3              brlo L21
 00F0                   .dbline 168
 00F0           ;       {
 00F0           ;       TempInt=PageBuffer[i]+(PageBuffer[i+1]<<8);
 00F0           ;       fill_temp_buffer(TempInt,i);    //call asm routine.
 00F0           ;       }
 00F0           ;       
 00F0           ;     write_page(PageAddress,0x03);       //擦除页
 00F0 23E0              ldi R18,3
 00F2 00910000          lds R16,_PageAddress
 00F6 10910100          lds R17,_PageAddress+1
 00FA 00D0              rcall _write_page
 00FC                   .dbline 169
 00FC           ;     write_page(PageAddress,0x05);       //写页数据
 00FC 25E0              ldi R18,5
 00FE 00910000          lds R16,_PageAddress
 0102 10910100          lds R17,_PageAddress+1
 0106 00D0              rcall _write_page
 0108                   .dbline 171
 0108           ;    
 0108           ;     enableRWW();
 0108 00D0              rcall _enableRWW
 010A                   .dbline -2
 010A           L20:
 010A 00D0              rcall pop_gset2
 010C                   .dbline 0 ; func end
 010C 0895              ret
 010E                   .dbsym r TempInt 20 i
 010E                   .dbsym r i 22 i
 010E                   .dbend
 010E                   .dbfunc e CheckFlash _CheckFlash fc
 010E           ;       TempInt2 -> R20,R21
 010E           ;        TempInt -> R22,R23
 010E           ;              i -> R10
                        .even
 010E           _CheckFlash::
 010E 00D0              rcall push_gset3
 0110                   .dbline -1
 0110                   .dbline 177
 0110           ;   }
 0110           ; 
 0110           ; /*****************************************************************************/
 0110           ; 
 0110           ; char CheckFlash(void)
 0110           ;   {
 0110                   .dbline 182
 0110           ;     unsigned char i;                                                  
 0110           ;     unsigned int TempInt;
 0110           ;     unsigned int TempInt2;
 0110           ; 
 0110           ;     for (i=0;i<PageByte;i+=2)
 0110 AA24              clr R10
 0112 27C0              rjmp L29
 0114           L26:
 0114                   .dbline 183
 0114           ;       {
 0114                   .dbline 184
 0114           ;       TempInt = read_program_memory(PageAddress + i,0x00);
 0114 2227              clr R18
 0116 2A2C              mov R2,R10
 0118 3324              clr R3
 011A 00910000          lds R16,_PageAddress
 011E 10910100          lds R17,_PageAddress+1
 0122 020D              add R16,R2
 0124 131D              adc R17,R3
 0126 00D0              rcall _read_program_memory
 0128 B801              movw R22,R16
 012A                   .dbline 185
 012A           ;       TempInt2 = PageBuffer[i] +(PageBuffer[i+1]<<8);
 012A 80E0              ldi R24,<_PageBuffer+1
 012C 90E0              ldi R25,>_PageBuffer+1
 012E EA2D              mov R30,R10
 0130 FF27              clr R31
 0132 E80F              add R30,R24
 0134 F91F              adc R31,R25
 0136 2080              ldd R2,z+0
 0138 3324              clr R3
 013A 322C              mov R3,R2
 013C 2224              clr R2
 013E 80E0              ldi R24,<_PageBuffer
 0140 90E0              ldi R25,>_PageBuffer
 0142 EA2D              mov R30,R10
 0144 FF27              clr R31
 0146 E80F              add R30,R24
 0148 F91F              adc R31,R25
 014A 4081              ldd R20,z+0
 014C 5527              clr R21
 014E 420D              add R20,R2
 0150 531D              adc R21,R3
 0152                   .dbline 186
 0152           ;       if (TempInt != TempInt2) return 0;
 0152 0417              cp R16,R20
 0154 1507              cpc R17,R21
 0156 11F0              breq L31
 0158                   .dbline 186
 0158 0027              clr R16
 015A 07C0              rjmp L25
 015C           L31:
 015C                   .dbline 187
 015C           L27:
 015C                   .dbline 182
 015C 8A2D              mov R24,R10
 015E 8E5F              subi R24,254    ; addi 2
 0160 A82E              mov R10,R24
 0162           L29:
 0162                   .dbline 182
 0162 8A2D              mov R24,R10
 0164 8034              cpi R24,64
 0166 B0F2              brlo L26
 0168                   .dbline 188
 0168           ;       }
 0168           ;     return 1;
 0168 01E0              ldi R16,1
 016A                   .dbline -2
 016A           L25:
 016A 00D0              rcall pop_gset3
 016C                   .dbline 0 ; func end
 016C 0895              ret
 016E                   .dbsym r TempInt2 20 i
 016E                   .dbsym r TempInt 22 i
 016E                   .dbsym r i 10 c
 016E                   .dbend
 016E                   .dbfunc e RecChar _RecChar fc
                        .even
 016E           _RecChar::
 016E                   .dbline -1
 016E                   .dbline 194
 016E           ;   }
 016E           ; 
 016E           ; /*****************************************************************************/
 016E           ; /*            字符输入函数             */     
 016E           ; unsigned char RecChar(void)
 016E           ;   {
 016E           L34:
 016E                   .dbline 195
 016E           L35:
 016E                   .dbline 195
 016E           ;      while(!(UCSRA & 0x80));
 016E 5F9B              sbis 0xb,7
 0170 FECF              rjmp L34
 0172                   .dbline 196
 0172           ;      return UDR;
 0172 0CB1              in R16,0xc
 0174                   .dbline -2
 0174           L33:
 0174                   .dbline 0 ; func end
 0174 0895              ret
 0176                   .dbend
 0176                   .dbfunc e SendChar _SendChar fV
 0176           ;              c -> R16
                        .even
 0176           _SendChar::
 0176                   .dbline -1
 0176                   .dbline 200
 0176           ;   }           
 0176           ; /*****************************************************************************/
 0176           ; void SendChar(unsigned char c)
 0176           ;   {    
 0176           L38:
 0176                   .dbline 201
 0176           L39:
 0176                   .dbline 201
 0176           ;     while (!(UCSRA&(1<<UDRE)));
 0176 5D9B              sbis 0xb,5
 0178 FECF              rjmp L38
 017A                   .dbline 202
 017A           ;     UDR=c;
 017A 0CB9              out 0xc,R16
 017C                   .dbline -2
 017C           L37:
 017C                   .dbline 0 ; func end
 017C 0895              ret
 017E                   .dbsym r c 16 c
 017E                   .dbend
 017E                   .dbfunc e delay _delay fV
 017E           ;              i -> R16,R17
                        .even
 017E           _delay::
 017E                   .dbline -1

⌨️ 快捷键说明

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