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

📄 cqt_boot.lst

📁 单片机MEGA128的BOOTLOADER程序。
💻 LST
📖 第 1 页 / 共 3 页
字号:
    FB0A 90400114  LDS	R4,Filelength+2
    FB0C 90500115  LDS	R5,Filelength+3
    FB0E 90200112  LDS	R2,Filelength
    FB10 90300113  LDS	R3,Filelength+1
    FB12 E040      LDI	R20,0
    FB13 E051      LDI	R21,1
    FB14 E060      LDI	R22,0
    FB15 E070      LDI	R23,0
    FB16 925A      ST	R5,-Y
    FB17 924A      ST	R4,-Y
    FB18 923A      ST	R3,-Y
    FB19 922A      ST	R2,-Y
    FB1A 018A      MOVW	R16,R20
    FB1B 019B      MOVW	R18,R22
    FB1C 940EFC08  CALL	empy32s
    FB1E 0118      MOVW	R2,R16
    FB1F 0129      MOVW	R4,R18
    FB20 90600137  LDS	R6,data+3
    FB22 2477      CLR	R7
    FB23 2488      CLR	R8
    FB24 2499      CLR	R9
    FB25 0C26      ADD	R2,R6
    FB26 1C37      ADC	R3,R7
    FB27 1C48      ADC	R4,R8
    FB28 1C59      ADC	R5,R9
    FB29 92300113  STS	Filelength+1,R3
    FB2B 92200112  STS	Filelength,R2
    FB2D 92500115  STS	Filelength+3,R5
    FB2F 92400114  STS	Filelength+2,R4
(0334) 	   delay_ms(1000);
    FB31 EE08      LDI	R16,0xE8
    FB32 E013      LDI	R17,3
    FB33 DDC4      RCALL	_delay_ms
(0335) 	   address=0;
    FB34 E040      LDI	R20,0
    FB35 E050      LDI	R21,0
    FB36 E060      LDI	R22,0
    FB37 E070      LDI	R23,0
    FB38 93500101  STS	address+1,R21
    FB3A 93400100  STS	address,R20
    FB3C 93700103  STS	address+3,R23
    FB3E 93600102  STS	address+2,R22
    FB40 C04E      RJMP	0xFB8F
(0336) 	    while (Filelength>SPM_PAGESIZE)
(0337) 		   {
(0338) 		   delay_ms(2);
    FB41 E002      LDI	R16,2
    FB42 E010      LDI	R17,0
    FB43 DDB4      RCALL	_delay_ms
(0339) 		   page_num=page_counter_rd;
    FB44 90C00110  LDS	R12,page_counter_rd
    FB46 90D00111  LDS	R13,page_counter_rd+1
(0340) 	       byte_num=page_offset_rd;  
    FB48 90A0010E  LDS	R10,page_offset_rd
    FB4A 90B0010F  LDS	R11,page_offset_rd+1
(0341) 		   memset(data,0xff,SPM_PAGESIZE); 	
    FB4C E080      LDI	R24,0
    FB4D E091      LDI	R25,1
    FB4E 8399      STD	Y+1,R25
    FB4F 8388      STD	Y+0,R24
    FB50 EF2F      LDI	R18,0xFF
    FB51 E030      LDI	R19,0
    FB52 E304      LDI	R16,0x34
    FB53 E011      LDI	R17,1
    FB54 940EFBF8  CALL	_memset
(0342) 	   	   Read_Testfile(data ,SPM_PAGESIZE );
    FB56 E020      LDI	R18,0
    FB57 E031      LDI	R19,1
    FB58 E304      LDI	R16,0x34
    FB59 E011      LDI	R17,1
    FB5A DDC6      RCALL	_Read_Testfile
(0343) 		   
(0344) 		   delay_ms(10);
    FB5B E00A      LDI	R16,0xA
    FB5C E010      LDI	R17,0
    FB5D DD9A      RCALL	_delay_ms
(0345) 		   
(0346) 		   write_one_page();            //收到256字节写入一页Flash中 
    FB5E DD38      RCALL	_write_one_page
(0347)            address += SPM_PAGESIZE;    //Flash页加1 
    FB5F E040      LDI	R20,0
    FB60 E051      LDI	R21,1
    FB61 E060      LDI	R22,0
    FB62 E070      LDI	R23,0
    FB63 90400102  LDS	R4,address+2
    FB65 90500103  LDS	R5,address+3
    FB67 90200100  LDS	R2,address
    FB69 90300101  LDS	R3,address+1
    FB6B 0E24      ADD	R2,R20
    FB6C 1E35      ADC	R3,R21
    FB6D 1E46      ADC	R4,R22
    FB6E 1E57      ADC	R5,R23
    FB6F 92300101  STS	address+1,R3
    FB71 92200100  STS	address,R2
    FB73 92500103  STS	address+3,R5
    FB75 92400102  STS	address+2,R4
(0348) 		   Filelength=Filelength-SPM_PAGESIZE;		  
    FB77 E040      LDI	R20,0
    FB78 E051      LDI	R21,1
    FB79 E060      LDI	R22,0
    FB7A E070      LDI	R23,0
    FB7B 90400114  LDS	R4,Filelength+2
    FB7D 90500115  LDS	R5,Filelength+3
    FB7F 90200112  LDS	R2,Filelength
    FB81 90300113  LDS	R3,Filelength+1
    FB83 1A24      SUB	R2,R20
    FB84 0A35      SBC	R3,R21
    FB85 0A46      SBC	R4,R22
    FB86 0A57      SBC	R5,R23
    FB87 92300113  STS	Filelength+1,R3
    FB89 92200112  STS	Filelength,R2
    FB8B 92500115  STS	Filelength+3,R5
    FB8D 92400114  STS	Filelength+2,R4
    FB8F E040      LDI	R20,0
    FB90 E051      LDI	R21,1
    FB91 E060      LDI	R22,0
    FB92 E070      LDI	R23,0
    FB93 90400114  LDS	R4,Filelength+2
    FB95 90500115  LDS	R5,Filelength+3
    FB97 90200112  LDS	R2,Filelength
    FB99 90300113  LDS	R3,Filelength+1
    FB9B 1542      CP	R20,R2
    FB9C 0553      CPC	R21,R3
    FB9D 0564      CPC	R22,R4
    FB9E 0575      CPC	R23,R5
    FB9F F40C      BGE	0xFBA1
    FBA0 CFA0      RJMP	0xFB41
(0349) 		   }
(0350) 		 if(Filelength>0)
    FBA1 E040      LDI	R20,0
    FBA2 E050      LDI	R21,0
    FBA3 E060      LDI	R22,0
    FBA4 E070      LDI	R23,0
    FBA5 1542      CP	R20,R2
    FBA6 0553      CPC	R21,R3
    FBA7 0564      CPC	R22,R4
    FBA8 0575      CPC	R23,R5
    FBA9 F584      BGE	0xFBDA
(0351) 		       {
(0352) 			    delay_ms(2);
    FBAA E002      LDI	R16,2
    FBAB E010      LDI	R17,0
    FBAC DD4B      RCALL	_delay_ms
(0353) 			    memset(data,0xff,SPM_PAGESIZE); 
    FBAD E080      LDI	R24,0
    FBAE E091      LDI	R25,1
    FBAF 8399      STD	Y+1,R25
    FBB0 8388      STD	Y+0,R24
    FBB1 EF2F      LDI	R18,0xFF
    FBB2 E030      LDI	R19,0
    FBB3 E304      LDI	R16,0x34
    FBB4 E011      LDI	R17,1
    FBB5 940EFBF8  CALL	_memset
(0354) 			    Read_Testfile(data ,Filelength );				    
    FBB7 91200112  LDS	R18,Filelength
    FBB9 91300113  LDS	R19,Filelength+1
    FBBB E304      LDI	R16,0x34
    FBBC E011      LDI	R17,1
    FBBD DD63      RCALL	_Read_Testfile
(0355) 		   		write_one_page();
    FBBE DCD8      RCALL	_write_one_page
(0356) 				clr_dog();
    FBBF DD4E      RCALL	_clr_dog
(0357) 		   		BootFlag=0;
    FBC0 2422      CLR	R2
    FBC1 822A      STD	Y+2,R2
(0358) 				EEPROM_WRITE(0x7ff,BootFlag);	
    FBC2 E081      LDI	R24,1
    FBC3 E090      LDI	R25,0
    FBC4 8399      STD	Y+1,R25
    FBC5 8388      STD	Y+0,R24
    FBC6 019E      MOVW	R18,R28
    FBC7 5F2E      SUBI	R18,0xFE
    FBC8 4F3F      SBCI	R19,0xFF
    FBC9 EF0F      LDI	R16,0xFF
    FBCA E017      LDI	R17,7
    FBCB 940EFCBA  CALL	_EEPROMWriteBytes
(0359) 				EEPROM_WRITE(0x600,BootFlag);	 
    FBCD E081      LDI	R24,1
    FBCE E090      LDI	R25,0
    FBCF 8399      STD	Y+1,R25
    FBD0 8388      STD	Y+0,R24
    FBD1 019E      MOVW	R18,R28
    FBD2 5F2E      SUBI	R18,0xFE
    FBD3 4F3F      SBCI	R19,0xFF
    FBD4 E000      LDI	R16,0
    FBD5 E016      LDI	R17,6
    FBD6 940EFCBA  CALL	_EEPROMWriteBytes
(0360) 		        quit();
    FBD8 DCF9      RCALL	_quit
(0361) 		       }
    FBD9 C01C      RJMP	0xFBF6
(0362) 		else
(0363) 			   {
(0364) 			   delay_ms(2);
    FBDA E002      LDI	R16,2
    FBDB E010      LDI	R17,0
    FBDC DD1B      RCALL	_delay_ms
(0365) 			   BootFlag=0;
    FBDD 2422      CLR	R2
    FBDE 822A      STD	Y+2,R2
(0366) 			   EEPROM_WRITE(0x7ff,BootFlag);	
    FBDF E081      LDI	R24,1
    FBE0 E090      LDI	R25,0
    FBE1 8399      STD	Y+1,R25
    FBE2 8388      STD	Y+0,R24
    FBE3 019E      MOVW	R18,R28
    FBE4 5F2E      SUBI	R18,0xFE
    FBE5 4F3F      SBCI	R19,0xFF
    FBE6 EF0F      LDI	R16,0xFF
    FBE7 E017      LDI	R17,7
    FBE8 940EFCBA  CALL	_EEPROMWriteBytes
(0367) 			   EEPROM_WRITE(0x600,BootFlag); 
    FBEA E081      LDI	R24,1
    FBEB E090      LDI	R25,0
    FBEC 8399      STD	Y+1,R25
    FBED 8388      STD	Y+0,R24
    FBEE 019E      MOVW	R18,R28
    FBEF 5F2E      SUBI	R18,0xFE
    FBF0 4F3F      SBCI	R19,0xFF
    FBF1 E000      LDI	R16,0
    FBF2 E016      LDI	R17,6
    FBF3 940EFCBA  CALL	_EEPROMWriteBytes
(0368) 		       quit();
    FBF5 DCDC      RCALL	_quit
(0369) 			   }  
(0370) 		}
FILE: <library>
    FBF6 9623      ADIW	R28,3
    FBF7 9508      RET
_memset:
    FBF8 8188      LDD	R24,Y+0
    FBF9 8199      LDD	R25,Y+1
    FBFA 3080      CPI	R24,0
    FBFB 0789      CPC	R24,R25
    FBFC F029      BEQ	0xFC02
    FBFD 2FE0      MOV	R30,R16
    FBFE 2FF1      MOV	R31,R17
    FBFF 9321      ST	R18,Z+
    FC00 9701      SBIW	R24,1
    FC01 F7E9      BNE	0xFBFF
    FC02 9508      RET
push_arg4:
    FC03 933A      ST	R19,-Y
    FC04 932A      ST	R18,-Y
push_arg2:
    FC05 931A      ST	R17,-Y
    FC06 930A      ST	R16,-Y
    FC07 9508      RET
empy32s:
empy32u:
    FC08 D050      RCALL	long_prolog
    FC09 927F      PUSH	R7
    FC0A D067      RCALL	tstzero1
    FC0B F131      BEQ	0xFC32
    FC0C 2477      CLR	R7
    FC0D D06A      RCALL	tstzero2
    FC0E F419      BNE	0xFC12
    FC0F 018C      MOVW	R16,R24
    FC10 019D      MOVW	R18,R26
    FC11 C020      RJMP	0xFC32
    FC12 9F08      MUL	R16,R24
    FC13 2CB0      MOV	R11,R0
    FC14 2CA1      MOV	R10,R1
    FC15 9F28      MUL	R18,R24
    FC16 2C90      MOV	R9,R0
    FC17 2C81      MOV	R8,R1
    FC18 9F18      MUL	R17,R24
    FC19 0CA0      ADD	R10,R0
    FC1A 1C91      ADC	R9,R1
    FC1B 1C87      ADC	R8,R7
    FC1C 9F09      MUL	R16,R25
    FC1D 0CA0      ADD	R10,R0
    FC1E 1C91      ADC	R9,R1
    FC1F 1C87      ADC	R8,R7
    FC20 9F19      MUL	R17,R25
    FC21 0C90      ADD	R9,R0
    FC22 1C81      ADC	R8,R1
    FC23 9F0A      MUL	R16,R26
    FC24 0C90      ADD	R9,R0
    FC25 1C81      ADC	R8,R1
    FC26 9F38      MUL	R19,R24
    FC27 0C80      ADD	R8,R0
    FC28 9F29      MUL	R18,R25
    FC29 0C80      ADD	R8,R0
    FC2A 9F1A      MUL	R17,R26
    FC2B 0C80      ADD	R8,R0
    FC2C 9F0B      MUL	R16,R27
    FC2D 0C80      ADD	R8,R0
    FC2E 2D0B      MOV	R16,R11
    FC2F 2D1A      MOV	R17,R10
    FC30 2D29      MOV	R18,R9
    FC31 2D38      MOV	R19,R8
    FC32 907F      POP	R7
    FC33 C033      RJMP	long_epilog
pop_gset2:
    FC34 E0E2      LDI	R30,2
    FC35 C010      RJMP	pop
pop_gset3:
    FC36 E0E4      LDI	R30,4
    FC37 C00E      RJMP	pop
pop_gset4:
    FC38 E0E8      LDI	R30,0x8
    FC39 C00C      RJMP	pop
push_gset5:
    FC3A 92FA      ST	R15,-Y
    FC3B 92EA      ST	R14,-Y
push_gset4:
    FC3C 92DA      ST	R13,-Y
    FC3D 92CA      ST	R12,-Y
push_gset3:
    FC3E 92BA      ST	R11,-Y
    FC3F 92AA      ST	R10,-Y
push_gset2:
    FC40 937A      ST	R23,-Y
    FC41 936A      ST	R22,-Y
push_gset1:
    FC42 935A      ST	R21,-Y
    FC43 934A      ST	R20,-Y
    FC44 9508      RET
pop_gset1:
    FC45 E0E1      LDI	R30,1
pop:
    FC46 9149      LD	R20,Y+
    FC47 9159      LD	R21,Y+
    FC48 FDE0      SBRC	R30,0
    FC49 9508      RET
    FC4A 9169      LD	R22,Y+
    FC4B 9179      LD	R23,Y+
    FC4C FDE1      SBRC	R30,1
    FC4D 9508      RET
    FC4E 90A9      LD	R10,Y+
    FC4F 90B9      LD	R11,Y+
    FC50 FDE2      SBRC	R30,2
    FC51 9508      RET
    FC52 90C9      LD	R12,Y+
    FC53 90D9      LD	R13,Y+
    FC54 FDE3      SBRC	R30,3
    FC55 9508      RET
    FC56 90E9      LD	R14,Y+
    FC57 90F9      LD	R15,Y+
    FC58 9508      RET
long_prolog:
    FC59 928A      ST	R8,-Y
    FC5A 929A      ST	R9,-Y
    FC5B 92AA      ST	R10,-Y
    FC5C 92BA      ST	R11,-Y
    FC5D 93EA      ST	R30,-Y
    FC5E 938A      ST	R24,-Y
    FC5F 939A      ST	R25,-Y
    FC60 93AA      ST	R26,-Y
    FC61 93BA      ST	R27,-Y
    FC62 8589      LDD	R24,Y+9
    FC63 859A      LDD	R25,Y+10
    FC64 85AB      LDD	R26,Y+11
    FC65 85BC      LDD	R27,Y+12
    FC66 9508      RET
long_epilog:
    FC67 91B9      LD	R27,Y+
    FC68 91A9      LD	R26,Y+
    FC69 9199      LD	R25,Y+
    FC6A 9189      LD	R24,Y+
    FC6B 91E9      LD	R30,Y+
    FC6C 90B9      LD	R11,Y+
    FC6D 90A9      LD	R10,Y+
    FC6E 9099      LD	R9,Y+
    FC6F 9089      LD	R8,Y+
    FC70 9624      ADIW	R28,4
    FC71 9508      RET
tstzero1:
    FC72 27EE      CLR	R30
    FC73 2BE0      OR	R30,R16
    FC74 2BE1      OR	R30,R17
    FC75 2BE2      OR	R30,R18
    FC76 2BE3      OR	R30,R19
    FC77 9508      RET
tstzero2:
    FC78 27EE      CLR	R30
    FC79 2BE8      OR	R30,R24
    FC7A 2BE9      OR	R30,R25
    FC7B 2BEA      OR	R30,R26
    FC7C 2BEB      OR	R30,R27
    FC7D 9508      RET
lsr16:
    FC7E 2322      TST	R18
    FC7F F021      BEQ	0xFC84
    FC80 9516      LSR	R17
    FC81 9507      ROR	R16
    FC82 952A      DEC	R18
    FC83 CFFA      RJMP	lsr16
    FC84 9508      RET
_EEPROMread:
    FC85 BB1F      OUT	0x1F,R17
    FC86 BB0E      OUT	0x1E,R16
    FC87 9AE0      SBI	0x1C,0
    FC88 B30D      IN	R16,0x1D
    FC89 9508      RET
_EEPROMwrite:
    FC8A DFB7      RCALL	push_gset1
    FC8B BB1F      OUT	0x1F,R17
    FC8C BB0E      OUT	0x1E,R16
    FC8D BB2D      OUT	0x1D,R18
    FC8E B74F      IN	R20,0x3F
    FC8F 94F8      BCLR	7
    FC90 9AE2      SBI	0x1C,2
    FC91 9AE1      SBI	0x1C,1
    FC92 99E1      SBIC	0x1C,1
    FC93 CFFE      RJMP	0xFC92
    FC94 BF4F      OUT	0x3F,R20
    FC95 2700      CLR	R16
    FC96 2711      CLR	R17
    FC97 DFAD      RCALL	pop_gset1
    FC98 9508      RET
_EEPROMReadBytes:
    FC99 DFA2      RCALL	push_gset4
    FC9A 2EC2      MOV	R12,R18
    FC9B 2ED3      MOV	R13,R19
    FC9C 2EA0      MOV	R10,R16
    FC9D 2EB1      MOV	R11,R17
    FC9E 8568      LDD	R22,Y+8
    FC9F 8579      LDD	R23,Y+9
    FCA0 2D4C      MOV	R20,R12
    FCA1 2D5D      MOV	R21,R13
    FCA2 C00D      RJMP	0xFCB0
    FCA3 2D0A      MOV	R16,R10
    FCA4 2D1B      MOV	R17,R11
    FCA5 DFDF      RCALL	_EEPROMread
    FCA6 2FE4      MOV	R30,R20
    FCA7 2FF5      MOV	R31,R21
    FCA8 8300      STD	Z+0,R16
    FCA9 2D8A      MOV	R24,R10
    FCAA 2D9B      MOV	R25,R11
    FCAB 9601      ADIW	R24,1
    FCAC 2EA8      MOV	R10,R24
    FCAD 2EB9      MOV	R11,R25
    FCAE 5F4F      SUBI	R20,0xFF
    FCAF 4F5F      SBCI	R21,0xFF
    FCB0 2E26      MOV	R2,R22
    FCB1 2E37      MOV	R3,R23
    FCB2 5061      SUBI	R22,1
    FCB3 4070      SBCI	R23,0
    FCB4 2022      TST	R2
    FCB5 F769      BNE	0xFCA3
    FCB6 2033      TST	R3
    FCB7 F759      BNE	0xFCA3
    FCB8 DF7F      RCALL	pop_gset4
    FCB9 9508      RET
_EEPROMWriteBytes:
    FCBA DF81      RCALL	push_gset4
    FCBB 2EC2      MOV	R12,R18
    FCBC 2ED3      MOV	R13,R19
    FCBD 2EA0      MOV	R10,R16
    FCBE 2EB1      MOV	R11,R17
    FCBF 8568      LDD	R22,Y+8
    FCC0 8579      LDD	R23,Y+9
    FCC1 2D4C      MOV	R20,R12
    FCC2 2D5D      MOV	R21,R13
    FCC3 C00D      RJMP	0xFCD1
    FCC4 2FE4      MOV	R30,R20
    FCC5 2FF5      MOV	R31,R21
    FCC6 8120      LDD	R18,Z+0
    FCC7 2D0A      MOV	R16,R10
    FCC8 2D1B      MOV	R17,R11
    FCC9 DFC0      RCALL	_EEPROMwrite
    FCCA 2D8A      MOV	R24,R10
    FCCB 2D9B      MOV	R25,R11
    FCCC 9601      ADIW	R24,1
    FCCD 2EA8      MOV	R10,R24
    FCCE 2EB9      MOV	R11,R25
    FCCF 5F4F      SUBI	R20,0xFF
    FCD0 4F5F      SBCI	R21,0xFF
    FCD1 2E26      MOV	R2,R22
    FCD2 2E37      MOV	R3,R23
    FCD3 5061      SUBI	R22,1
    FCD4 4070      SBCI	R23,0
    FCD5 2022      TST	R2
    FCD6 F769      BNE	0xFCC4
    FCD7 2033      TST	R3
    FCD8 F759      BNE	0xFCC4
    FCD9 DF5E      RCALL	pop_gset4
    FCDA 9508      RET

⌨️ 快捷键说明

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