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

📄 newmain.lis

📁 单片机MEGA128的BOOTLOADER程序。
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 04E2           ;          page_offset_rd=0;
 04E2 2224              clr R2
 04E4 3324              clr R3
 04E6 30920B00          sts _page_offset_rd+1,R3
 04EA 20920A00          sts _page_offset_rd,R2
 04EE                   .dbline 328
 04EE           ;          delay_ms(2);
 04EE 02E0              ldi R16,2
 04F0 10E0              ldi R17,0
 04F2 0FDE              xcall _delay_ms
 04F4                   .dbline 329
 04F4           ;          Read_Testfile(data ,4 );     
 04F4 24E0              ldi R18,4
 04F6 30E0              ldi R19,0
 04F8 00E0              ldi R16,<_data
 04FA 10E0              ldi R17,>_data
 04FC 33DE              xcall _Read_Testfile
 04FE                   .dbline 330
 04FE           ;          delay_ms(2);
 04FE 02E0              ldi R16,2
 0500 10E0              ldi R17,0
 0502 07DE              xcall _delay_ms
 0504                   .dbline 331
 0504           ;          Filelength=0;
 0504 40E0              ldi R20,0
 0506 50E0              ldi R21,0
 0508 60E0              ldi R22,0
 050A 70E0              ldi R23,0
 050C 50930F00          sts _Filelength+1,R21
 0510 40930E00          sts _Filelength,R20
 0514 70931100          sts _Filelength+2+1,R23
 0518 60931000          sts _Filelength+2,R22
 051C                   .dbline 332
 051C           ;          Filelength=data[2];
 051C 20903200          lds R2,_data+2
 0520 3324              clr R3
 0522 4424              clr R4
 0524 5524              clr R5
 0526 30920F00          sts _Filelength+1,R3
 052A 20920E00          sts _Filelength,R2
 052E 50921100          sts _Filelength+2+1,R5
 0532 40921000          sts _Filelength+2,R4
 0536                   .dbline 333
 0536           ;          Filelength=Filelength*0x100+data[3];
 0536 40901000          lds R4,_Filelength+2
 053A 50901100          lds R5,_Filelength+2+1
 053E 20900E00          lds R2,_Filelength
 0542 30900F00          lds R3,_Filelength+1
 0546 40E0              ldi R20,0
 0548 51E0              ldi R21,1
 054A 60E0              ldi R22,0
 054C 70E0              ldi R23,0
 054E 5A92              st -y,R5
 0550 4A92              st -y,R4
 0552 3A92              st -y,R3
 0554 2A92              st -y,R2
 0556 8A01              movw R16,R20
 0558 9B01              movw R18,R22
 055A 0E940000          xcall empy32s
 055E 1801              movw R2,R16
 0560 2901              movw R4,R18
 0562 60903300          lds R6,_data+3
 0566 7724              clr R7
 0568 8824              clr R8
 056A 9924              clr R9
 056C 260C              add R2,R6
 056E 371C              adc R3,R7
 0570 481C              adc R4,R8
 0572 591C              adc R5,R9
 0574 30920F00          sts _Filelength+1,R3
 0578 20920E00          sts _Filelength,R2
 057C 50921100          sts _Filelength+2+1,R5
 0580 40921000          sts _Filelength+2,R4
 0584                   .dbline 334
 0584           ;          delay_ms(1000);
 0584 08EE              ldi R16,1000
 0586 13E0              ldi R17,3
 0588 C4DD              xcall _delay_ms
 058A                   .dbline 335
 058A           ;          address=0;
 058A 40E0              ldi R20,0
 058C 50E0              ldi R21,0
 058E 60E0              ldi R22,0
 0590 70E0              ldi R23,0
 0592 50930100          sts _address+1,R21
 0596 40930000          sts _address,R20
 059A 70930300          sts _address+2+1,R23
 059E 60930200          sts _address+2,R22
 05A2 4EC0              xjmp L125
 05A4           L124:
 05A4                   .dbline 337
 05A4                   .dbline 338
 05A4 02E0              ldi R16,2
 05A6 10E0              ldi R17,0
 05A8 B4DD              xcall _delay_ms
 05AA                   .dbline 339
 05AA C0900C00          lds R12,_page_counter_rd
 05AE D0900D00          lds R13,_page_counter_rd+1
 05B2                   .dbline 340
 05B2 A0900A00          lds R10,_page_offset_rd
 05B6 B0900B00          lds R11,_page_offset_rd+1
 05BA                   .dbline 341
 05BA 80E0              ldi R24,256
 05BC 91E0              ldi R25,1
 05BE 9983              std y+1,R25
 05C0 8883              std y+0,R24
 05C2 2FEF              ldi R18,255
 05C4 30E0              ldi R19,0
 05C6 00E0              ldi R16,<_data
 05C8 10E0              ldi R17,>_data
 05CA 0E940000          xcall _memset
 05CE                   .dbline 342
 05CE 20E0              ldi R18,256
 05D0 31E0              ldi R19,1
 05D2 00E0              ldi R16,<_data
 05D4 10E0              ldi R17,>_data
 05D6 C6DD              xcall _Read_Testfile
 05D8                   .dbline 344
 05D8 0AE0              ldi R16,10
 05DA 10E0              ldi R17,0
 05DC 9ADD              xcall _delay_ms
 05DE                   .dbline 346
 05DE 38DD              xcall _write_one_page
 05E0                   .dbline 347
 05E0 40E0              ldi R20,0
 05E2 51E0              ldi R21,1
 05E4 60E0              ldi R22,0
 05E6 70E0              ldi R23,0
 05E8 40900200          lds R4,_address+2
 05EC 50900300          lds R5,_address+2+1
 05F0 20900000          lds R2,_address
 05F4 30900100          lds R3,_address+1
 05F8 240E              add R2,R20
 05FA 351E              adc R3,R21
 05FC 461E              adc R4,R22
 05FE 571E              adc R5,R23
 0600 30920100          sts _address+1,R3
 0604 20920000          sts _address,R2
 0608 50920300          sts _address+2+1,R5
 060C 40920200          sts _address+2,R4
 0610                   .dbline 348
 0610 40E0              ldi R20,0
 0612 51E0              ldi R21,1
 0614 60E0              ldi R22,0
 0616 70E0              ldi R23,0
 0618 40901000          lds R4,_Filelength+2
 061C 50901100          lds R5,_Filelength+2+1
 0620 20900E00          lds R2,_Filelength
 0624 30900F00          lds R3,_Filelength+1
 0628 241A              sub R2,R20
 062A 350A              sbc R3,R21
 062C 460A              sbc R4,R22
 062E 570A              sbc R5,R23
 0630 30920F00          sts _Filelength+1,R3
 0634 20920E00          sts _Filelength,R2
 0638 50921100          sts _Filelength+2+1,R5
 063C 40921000          sts _Filelength+2,R4
 0640                   .dbline 349
 0640           L125:
 0640                   .dbline 336
 0640           ;           while (Filelength>SPM_PAGESIZE)
 0640 40E0              ldi R20,0
 0642 51E0              ldi R21,1
 0644 60E0              ldi R22,0
 0646 70E0              ldi R23,0
 0648 40901000          lds R4,_Filelength+2
 064C 50901100          lds R5,_Filelength+2+1
 0650 20900E00          lds R2,_Filelength
 0654 30900F00          lds R3,_Filelength+1
 0658 4215              cp R20,R2
 065A 5305              cpc R21,R3
 065C 6405              cpc R22,R4
 065E 7505              cpc R23,R5
 0660 0CF4              brge X8
 0662 A0CF              xjmp L124
 0664           X8:
 0664                   .dbline 350
 0664           ;                  {
 0664           ;                  delay_ms(2);
 0664           ;                  page_num=page_counter_rd;
 0664           ;              byte_num=page_offset_rd;  
 0664           ;                  memset(data,0xff,SPM_PAGESIZE);      
 0664           ;                  Read_Testfile(data ,SPM_PAGESIZE );
 0664           ;                  
 0664           ;                  delay_ms(10);
 0664           ;                  
 0664           ;                  write_one_page();            //收到256字节写入一页Flash中 
 0664           ;            address += SPM_PAGESIZE;    //Flash页加1 
 0664           ;                  Filelength=Filelength-SPM_PAGESIZE;            
 0664           ;                  }
 0664           ;                if(Filelength>0)
 0664 40E0              ldi R20,0
 0666 50E0              ldi R21,0
 0668 60E0              ldi R22,0
 066A 70E0              ldi R23,0
 066C 4215              cp R20,R2
 066E 5305              cpc R21,R3
 0670 6405              cpc R22,R4
 0672 7505              cpc R23,R5
 0674 84F5              brge L127
 0676                   .dbline 351
 0676           ;                      {
 0676                   .dbline 352
 0676           ;                           delay_ms(2);
 0676 02E0              ldi R16,2
 0678 10E0              ldi R17,0
 067A 4BDD              xcall _delay_ms
 067C                   .dbline 353
 067C           ;                           memset(data,0xff,SPM_PAGESIZE); 
 067C 80E0              ldi R24,256
 067E 91E0              ldi R25,1
 0680 9983              std y+1,R25
 0682 8883              std y+0,R24
 0684 2FEF              ldi R18,255
 0686 30E0              ldi R19,0
 0688 00E0              ldi R16,<_data
 068A 10E0              ldi R17,>_data
 068C 0E940000          xcall _memset
 0690                   .dbline 354
 0690           ;                           Read_Testfile(data ,Filelength );                               
 0690 20910E00          lds R18,_Filelength
 0694 30910F00          lds R19,_Filelength+1
 0698 00E0              ldi R16,<_data
 069A 10E0              ldi R17,>_data
 069C 63DD              xcall _Read_Testfile
 069E                   .dbline 355
 069E           ;                               write_one_page();
 069E D8DC              xcall _write_one_page
 06A0                   .dbline 356
 06A0           ;                               clr_dog();
 06A0 4EDD              xcall _clr_dog
 06A2                   .dbline 357
 06A2           ;                               BootFlag=0;
 06A2 2224              clr R2
 06A4 2A82              std y+2,R2
 06A6                   .dbline 358
 06A6           ;                               EEPROM_WRITE(0x7ff,BootFlag);   
 06A6 81E0              ldi R24,1
 06A8 90E0              ldi R25,0
 06AA 9983              std y+1,R25
 06AC 8883              std y+0,R24
 06AE 9E01              movw R18,R28
 06B0 2E5F              subi R18,254  ; offset = 2
 06B2 3F4F              sbci R19,255
 06B4 0FEF              ldi R16,2047
 06B6 17E0              ldi R17,7
 06B8 0E940000          xcall _EEPROMWriteBytes
 06BC                   .dbline 359
 06BC           ;                               EEPROM_WRITE(0x600,BootFlag);    
 06BC 81E0              ldi R24,1
 06BE 90E0              ldi R25,0
 06C0 9983              std y+1,R25
 06C2 8883              std y+0,R24
 06C4 9E01              movw R18,R28
 06C6 2E5F              subi R18,254  ; offset = 2
 06C8 3F4F              sbci R19,255
 06CA 00E0              ldi R16,1536
 06CC 16E0              ldi R17,6
 06CE 0E940000          xcall _EEPROMWriteBytes
 06D2                   .dbline 360
 06D2           ;                       quit();
 06D2 F9DC              xcall _quit
 06D4                   .dbline 361
 06D4           ;                      }
 06D4 1CC0              xjmp L128
 06D6           L127:
 06D6                   .dbline 363
 06D6           ;               else
 06D6           ;                          {
 06D6                   .dbline 364
 06D6           ;                          delay_ms(2);
 06D6 02E0              ldi R16,2
 06D8 10E0              ldi R17,0
 06DA 1BDD              xcall _delay_ms
 06DC                   .dbline 365
 06DC           ;                          BootFlag=0;
 06DC 2224              clr R2
 06DE 2A82              std y+2,R2
 06E0                   .dbline 366
 06E0           ;                          EEPROM_WRITE(0x7ff,BootFlag);        
 06E0 81E0              ldi R24,1
 06E2 90E0              ldi R25,0
 06E4 9983              std y+1,R25
 06E6 8883              std y+0,R24
 06E8 9E01              movw R18,R28
 06EA 2E5F              subi R18,254  ; offset = 2
 06EC 3F4F              sbci R19,255
 06EE 0FEF              ldi R16,2047
 06F0 17E0              ldi R17,7
 06F2 0E940000          xcall _EEPROMWriteBytes
 06F6                   .dbline 367
 06F6           ;                          EEPROM_WRITE(0x600,BootFlag); 
 06F6 81E0              ldi R24,1
 06F8 90E0              ldi R25,0
 06FA 9983              std y+1,R25
 06FC 8883              std y+0,R24
 06FE 9E01              movw R18,R28
 0700 2E5F              subi R18,254  ; offset = 2
 0702 3F4F              sbci R19,255
 0704 00E0              ldi R16,1536
 0706 16E0              ldi R17,6
 0708 0E940000          xcall _EEPROMWriteBytes
 070C                   .dbline 368
 070C           ;                      quit();
 070C DCDC              xcall _quit
 070E                   .dbline 369
 070E           ;                          }  
 070E           L128:
 070E                   .dbline 370
 070E           ;               }
 070E           L111:
 070E           L109:
 070E                   .dbline -2
 070E           L107:
 070E 2396              adiw R28,3
 0710                   .dbline 0 ; func end
 0710 0895              ret
 0712                   .dbsym r byte_num 10 I
 0712                   .dbsym r page_num 12 I
 0712                   .dbsym l BootFlag 2 c
 0712                   .dbsym r i 10 c
 0712                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile E:\cqt\cqt_boot\newmain.c
 0000           _Num::
 0000                   .blkb 1
 0001                   .dbsym e Num _Num c
 0001           _ROK_flag::
 0001                   .blkb 1
 0002                   .dbsym e ROK_flag _ROK_flag c
 0002           _length1::
 0002                   .blkb 2
 0004                   .dbsym e length1 _length1 I
 0004           _lengt

⌨️ 快捷键说明

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