📄 cqt_boot.lst
字号:
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 + -