📄 bootload.lst
字号:
FILE: <library>
__start:
__text_start:
0E13 E001 LDI R16,1
0E14 BF05 OUT 0x35,R16
0E15 E002 LDI R16,2
0E16 BF05 OUT 0x35,R16
0E17 E5CF LDI R28,0x5F
0E18 E0D4 LDI R29,4
0E19 BFCD OUT 0x3D,R28
0E1A BFDE OUT 0x3E,R29
0E1B 51C0 SUBI R28,0x10
0E1C 40D0 SBCI R29,0
0E1D EA0A LDI R16,0xAA
0E1E 8308 STD Y+0,R16
0E1F 2400 CLR R0
0E20 E6E0 LDI R30,0x60
0E21 E0F0 LDI R31,0
0E22 E010 LDI R17,0
0E23 3AE4 CPI R30,0xA4
0E24 07F1 CPC R31,R17
0E25 F011 BEQ 0x0E28
0E26 9201 ST R0,Z+
0E27 CFFB RJMP 0x0E23
0E28 8300 STD Z+0,R16
0E29 E2E6 LDI R30,0x26
0E2A E1FC LDI R31,0x1C
0E2B E6A0 LDI R26,0x60
0E2C E0B0 LDI R27,0
0E2D E11C LDI R17,0x1C
0E2E 32E6 CPI R30,0x26
0E2F 07F1 CPC R31,R17
0E30 F021 BEQ 0x0E35
0E31 95C8 LPM
0E32 9631 ADIW R30,1
0E33 920D ST R0,X+
0E34 CFF9 RJMP 0x0E2E
0E35 D165 RCALL _main
_exit:
0E36 CFFF RJMP _exit
_write_page:
0E37 D020 RCALL 0x0E58
0E38 01F8 MOVW R30,R16
0E39 93200057 STS 0x57,R18
0E3B 95E8 SPM
0E3C 9508 RET
_fill_temp_buffer:
0E3D D01A RCALL 0x0E58
0E3E 01F9 MOVW R30,R18
0E3F 0108 MOVW R0,R16
0E40 E031 LDI R19,1
0E41 93300057 STS 0x57,R19
0E43 95E8 SPM
0E44 9508 RET
_read_program_memory:
0E45 01F8 MOVW R30,R16
0E46 FD20 SBRC R18,0
0E47 93200057 STS 0x57,R18
0E49 9105 LPM R16,Z+
0E4A 9114 LPM R17,0(Z)
0E4B 9508 RET
_write_lock_bits:
0E4C 2E00 MOV R0,R16
0E4D E019 LDI R17,0x9
0E4E 93100057 STS 0x57,R17
0E50 95E8 SPM
0E51 9508 RET
_enableRWW:
0E52 D005 RCALL 0x0E58
0E53 E1B1 LDI R27,0x11
0E54 93B00057 STS 0x57,R27
0E56 95E8 SPM
0E57 9508 RET
0E58 91B00057 LDS R27,0x57
0E5A FDB0 SBRC R27,0
0E5B CFFC RJMP 0x0E58
0E5C 9508 RET
_FlashLoad:
0E5D E201 LDI R16,0x21
0E5E D114 RCALL _TxChar
0E5F C019 RJMP 0x0E79
0E60 D01A RCALL _GetPageNumber
0E61 91800060 LDS R24,RealPageAddress
0E63 91900061 LDS R25,RealPageAddress+1
0E65 3F8F CPI R24,0xFF
0E66 EFEF LDI R30,0xFF
0E67 079E CPC R25,R30
0E68 F409 BNE 0x0E6A
0E69 C010 RJMP 0x0E7A
0E6A D02D RCALL _GetPage
0E6B 2300 TST R16
0E6C F051 BEQ 0x0E77
0E6D D056 RCALL _WriteFlash
0E6E D083 RCALL _CheckFlash
0E6F 2300 TST R16
0E70 F019 BEQ 0x0E74
0E71 E201 LDI R16,0x21
0E72 D100 RCALL _TxChar
0E73 C005 RJMP 0x0E79
0E74 E400 LDI R16,0x40
0E75 D0FD RCALL _TxChar
0E76 C002 RJMP 0x0E79
0E77 E400 LDI R16,0x40
0E78 D0FA RCALL _TxChar
0E79 CFE6 RJMP 0x0E60
0E7A 9508 RET
_GetPageNumber:
PageAddressLow --> R20
PageAddressHigh --> R22
0E7B D151 RCALL push_gset2
0E7C D0EE RCALL _IsChar
0E7D 2300 TST R16
0E7E F3E9 BEQ 0x0E7C
0E7F 95A8 WDR
0E80 D0F0 RCALL _RxChar
0E81 2F60 MOV R22,R16
0E82 D0E8 RCALL _IsChar
0E83 2300 TST R16
0E84 F3E9 BEQ 0x0E82
0E85 95A8 WDR
0E86 D0EA RCALL _RxChar
0E87 2F40 MOV R20,R16
0E88 2E36 MOV R3,R22
0E89 2E24 MOV R2,R20
0E8A 92300061 STS RealPageAddress+1,R3
0E8C 92200060 STS RealPageAddress,R2
0E8E E026 LDI R18,6
0E8F E030 LDI R19,0
0E90 0181 MOVW R16,R2
0E91 D154 RCALL lsl16
0E92 93100063 STS PageAddress+1,R17
0E94 93000062 STS PageAddress,R16
0E96 D12A RCALL pop_gset2
0E97 9508 RET
_GetPage:
CheckSum --> R20
LocalCheckSum --> R22
i --> R10
0E98 D132 RCALL push_gset3
0E99 2766 CLR R22
0E9A 2744 CLR R20
0E9B 24AA CLR R10
0E9C 24BB CLR R11
0E9D C014 RJMP 0x0EB2
0E9E D0CC RCALL _IsChar
0E9F 2300 TST R16
0EA0 F3E9 BEQ 0x0E9E
0EA1 95A8 WDR
0EA2 D0CE RCALL _RxChar
0EA3 E684 LDI R24,0x64
0EA4 E090 LDI R25,0
0EA5 01F5 MOVW R30,R10
0EA6 0FE8 ADD R30,R24
0EA7 1FF9 ADC R31,R25
0EA8 8300 STD Z+0,R16
0EA9 01F5 MOVW R30,R10
0EAA 0FE8 ADD R30,R24
0EAB 1FF9 ADC R31,R25
0EAC 8020 LDD R2,Z+0
0EAD 0D62 ADD R22,R2
0EAE 95A8 WDR
0EAF 01C5 MOVW R24,R10
0EB0 9601 ADIW R24,1
0EB1 015C MOVW R10,R24
0EB2 01C5 MOVW R24,R10
0EB3 3480 CPI R24,0x40
0EB4 E0E0 LDI R30,0
0EB5 079E CPC R25,R30
0EB6 F338 BCS 0x0E9E
0EB7 D0B3 RCALL _IsChar
0EB8 2300 TST R16
0EB9 F3E9 BEQ 0x0EB7
0EBA 95A8 WDR
0EBB D0B5 RCALL _RxChar
0EBC 2F40 MOV R20,R16
0EBD 1760 CP R22,R16
0EBE F411 BNE 0x0EC1
0EBF E001 LDI R16,1
0EC0 C001 RJMP 0x0EC2
0EC1 2700 CLR R16
0EC2 D100 RCALL pop_gset3
0EC3 9508 RET
_WriteFlash:
TempInt --> R20
i --> R22
0EC4 D108 RCALL push_gset2
0EC5 2766 CLR R22
0EC6 2777 CLR R23
0EC7 C016 RJMP 0x0EDE
0EC8 E684 LDI R24,0x64
0EC9 E090 LDI R25,0
0ECA 01FB MOVW R30,R22
0ECB 9631 ADIW R30,1
0ECC 0FE8 ADD R30,R24
0ECD 1FF9 ADC R31,R25
0ECE 8020 LDD R2,Z+0
0ECF 2433 CLR R3
0ED0 2C32 MOV R3,R2
0ED1 2422 CLR R2
0ED2 01FB MOVW R30,R22
0ED3 0FE8 ADD R30,R24
0ED4 1FF9 ADC R31,R25
0ED5 8140 LDD R20,Z+0
0ED6 2755 CLR R21
0ED7 0D42 ADD R20,R2
0ED8 1D53 ADC R21,R3
0ED9 019B MOVW R18,R22
0EDA 018A MOVW R16,R20
0EDB DF61 RCALL _fill_temp_buffer
0EDC 5F6E SUBI R22,0xFE
0EDD 4F7F SBCI R23,0xFF
0EDE 3460 CPI R22,0x40
0EDF E0E0 LDI R30,0
0EE0 077E CPC R23,R30
0EE1 F330 BCS 0x0EC8
0EE2 E023 LDI R18,3
0EE3 91000062 LDS R16,PageAddress
0EE5 91100063 LDS R17,PageAddress+1
0EE7 DF4F RCALL _write_page
0EE8 E025 LDI R18,5
0EE9 91000062 LDS R16,PageAddress
0EEB 91100063 LDS R17,PageAddress+1
0EED DF49 RCALL _write_page
0EEE DF63 RCALL _enableRWW
0EEF 95A8 WDR
0EF0 D0D0 RCALL pop_gset2
0EF1 9508 RET
_CheckFlash:
TempInt2 --> R20
TempInt --> R22
i --> R10
0EF2 D0D8 RCALL push_gset3
0EF3 95A8 WDR
0EF4 2744 CLR R20
0EF5 2755 CLR R21
0EF6 C021 RJMP 0x0F18
0EF7 2722 CLR R18
0EF8 91000062 LDS R16,PageAddress
0EFA 91100063 LDS R17,PageAddress+1
0EFC 0F04 ADD R16,R20
0EFD 1F15 ADC R17,R21
0EFE DF46 RCALL _read_program_memory
0EFF 0158 MOVW R10,R16
0F00 E684 LDI R24,0x64
0F01 E090 LDI R25,0
0F02 01FA MOVW R30,R20
0F03 9631 ADIW R30,1
0F04 0FE8 ADD R30,R24
0F05 1FF9 ADC R31,R25
0F06 8020 LDD R2,Z+0
0F07 2433 CLR R3
0F08 2C32 MOV R3,R2
0F09 2422 CLR R2
0F0A 01FA MOVW R30,R20
0F0B 0FE8 ADD R30,R24
0F0C 1FF9 ADC R31,R25
0F0D 8160 LDD R22,Z+0
0F0E 2777 CLR R23
0F0F 0D62 ADD R22,R2
0F10 1D73 ADC R23,R3
0F11 1706 CP R16,R22
0F12 0717 CPC R17,R23
0F13 F011 BEQ 0x0F16
0F14 2700 CLR R16
0F15 C007 RJMP 0x0F1D
0F16 5F4E SUBI R20,0xFE
0F17 4F5F SBCI R21,0xFF
0F18 3440 CPI R20,0x40
0F19 E0E0 LDI R30,0
0F1A 075E CPC R21,R30
0F1B F2D8 BCS 0x0EF7
0F1C E001 LDI R16,1
0F1D D0A5 RCALL pop_gset3
0F1E 9508 RET
_EEpromLoad:
0F1F D0A9 RCALL push_gset4
0F20 E209 LDI R16,0x29
0F21 D051 RCALL _TxChar
0F22 E201 LDI R16,0x21
0F23 D04F RCALL _TxChar
0F24 C033 RJMP 0x0F58
0F25 95A8 WDR
0F26 2744 CLR R20
0F27 D043 RCALL _IsChar
0F28 2300 TST R16
0F29 F3E9 BEQ 0x0F27
0F2A D046 RCALL _RxChar
0F2B 2EA0 MOV R10,R16
0F2C 0F40 ADD R20,R16
0F2D D03D RCALL _IsChar
0F2E 2300 TST R16
0F2F F3E9 BEQ 0x0F2D
0F30 D040 RCALL _RxChar
0F31 2F60 MOV R22,R16
0F32 0F40 ADD R20,R16
0F33 2CDA MOV R13,R10
0F34 2EC6 MOV R12,R22
0F35 01C6 MOVW R24,R12
0F36 3F8F CPI R24,0xFF
0F37 EFEF LDI R30,0xFF
0F38 079E CPC R25,R30
0F39 F409 BNE 0x0F3B
0F3A C01E RJMP 0x0F59
0F3B D02F RCALL _IsChar
0F3C 2300 TST R16
0F3D F3E9 BEQ 0x0F3B
0F3E D032 RCALL _RxChar
0F3F 2EA0 MOV R10,R16
0F40 0F40 ADD R20,R16
0F41 95A8 WDR
0F42 D028 RCALL _IsChar
0F43 2300 TST R16
0F44 F3E9 BEQ 0x0F42
0F45 D02B RCALL _RxChar
0F46 2F60 MOV R22,R16
0F47 1704 CP R16,R20
0F48 F469 BNE 0x0F56
0F49 2D2A MOV R18,R10
0F4A 0186 MOVW R16,R12
0F4B D00F RCALL _EEPROMwrite
0F4C 0186 MOVW R16,R12
0F4D D016 RCALL _EEPROMread
0F4E 150A CP R16,R10
0F4F F419 BNE 0x0F53
0F50 E201 LDI R16,0x21
0F51 D021 RCALL _TxChar
0F52 C005 RJMP 0x0F58
0F53 E400 LDI R16,0x40
0F54 D01E RCALL _TxChar
0F55 C002 RJMP 0x0F58
0F56 E400 LDI R16,0x40
0F57 D01B RCALL _TxChar
0F58 CFCC RJMP 0x0F25
0F59 D06B RCALL pop_gset4
0F5A 9508 RET
_EEPROMwrite:
0F5B 99E1 SBIC 0x1C,1
0F5C CFFE RJMP _EEPROMwrite
0F5D BB1F OUT 0x1F,R17
0F5E BB0E OUT 0x1E,R16
0F5F BB2D OUT 0x1D,R18
0F60 9AE2 SBI 0x1C,2
0F61 9AE1 SBI 0x1C,1
0F62 95A8 WDR
0F63 9508 RET
_EEPROMread:
0F64 99E1 SBIC 0x1C,1
0F65 CFFE RJMP _EEPROMread
0F66 BB1F OUT 0x1F,R17
0F67 BB0E OUT 0x1E,R16
0F68 9AE0 SBI 0x1C,0
0F69 B30D IN R16,0x1D
0F6A 9508 RET
_IsChar:
0F6B 9B5F SBIS 0x0B,7
0F6C C002 RJMP 0x0F6F
0F6D E001 LDI R16,1
0F6E C001 RJMP 0x0F70
0F6F 2700 CLR R16
0F70 9508 RET
_RxChar:
0F71 B10C IN R16,0x0C
0F72 9508 RET
_TxChar:
ch --> R16
0F73 9B5D SBIS 0x0B,5
0F74 CFFE RJMP _TxChar
0F75 9A94 SBI 0x12,4
0F76 B90C OUT 0x0C,R16
0F77 9B5E SBIS 0x0B,6
0F78 CFFE RJMP 0x0F77
0F79 9A5E SBI 0x0B,6
0F7A 9894 CBI 0x12,4
0F7B 95A8 WDR
0F7C 9508 RET
_Wait:
i --> R16
0F7D E000 LDI R16,0
0F7E E813 LDI R17,0x83
0F7F 5F0F SUBI R16,0xFF
0F80 4F1F SBCI R17,0xFF
0F81 3000 CPI R16,0
0F82 E7ED LDI R30,0x7D
0F83 071E CPC R17,R30
0F84 F3D4 BLT 0x0F7F
0F85 95A8 WDR
0F86 9508 RET
_SendDeviceID:
0F87 E401 LDI R16,0x41
0F88 DFEA RCALL _TxChar
0F89 E60C LDI R16,0x6C
0F8A DFE8 RCALL _TxChar
0F8B E604 LDI R16,0x64
0F8C DFE6 RCALL _TxChar
0F8D E502 LDI R16,0x52
0F8E DFE4 RCALL _TxChar
0F8F E301 LDI R16,0x31
0F90 DFE2 RCALL _TxChar
0F91 DFDF RCALL _RxChar
0F92 95A8 WDR
0F93 9508 RET
_ExecCode:
0F94 E081 LDI R24,1
0F95 BF8B OUT 0x3B,R24
0F96 2422 CLR R2
0F97 BE2B OUT 0x3B,R2
0F98 940C0000 JMP 0x0
0F9A 9508 RET
_main:
i --> Y+1
0F9B 94F8 BCLR 7
0F9C B581 IN R24,0x21
0F9D 6188 ORI R24,0x18
0F9E BD81 OUT 0x21,R24
0F9F E087 LDI R24,7
0FA0 BD81 OUT 0x21,R24
0FA1 E081 LDI R24,1
0FA2 BB82 OUT 0x12,R24
0FA3 2422 CLR R2
0FA4 B82A OUT 0x0A,R2
0FA5 B82B OUT 0x0B,R2
0FA6 E886 LDI R24,0x86
0FA7 BD80 OUT 0x20,R24
0FA8 BC20 OUT 0x20,R2
0FA9 E188 LDI R24,0x18
0FAA B98A OUT 0x0A,R24
0FAB 9A8C SBI 0x11,4
0FAC 9894 CBI 0x12,4
0FAD E047 LDI R20,7
0FAE C00E RJMP 0x0FBD
0FAF 95A8 WDR
0FB0 B949 OUT 0x09,R20
0FB1 DFBF RCALL _RxChar
0FB2 E30E LDI R16,0x3E
0FB3 DFBF RCALL _TxChar
0FB4 DFC8 RCALL _Wait
0FB5 DFBB RCALL _RxChar
0FB6 330C CPI R16,0x3C
0FB7 F421 BNE 0x0FBC
0FB8 DFCE RCALL _SendDeviceID
0FB9 DEA3 RCALL _FlashLoad
0FBA DF64 RCALL _EEpromLoad
0FBB DFD8 RCALL _ExecCode
0FBC 9543 INC R20
0FBD 304F CPI R20,0xF
0FBE F380 BCS 0x0FAF
0FBF DFD4 RCALL _ExecCode
0FC0 9508 RET
pop_gset2:
0FC1 E0E2 LDI R30,2
0FC2 C010 RJMP pop
pop_gset3:
0FC3 E0E4 LDI R30,4
0FC4 C00E RJMP pop
pop_gset4:
0FC5 E0E8 LDI R30,0x8
0FC6 C00C RJMP pop
push_gset5:
0FC7 92FA ST R15,-Y
0FC8 92EA ST R14,-Y
push_gset4:
0FC9 92DA ST R13,-Y
0FCA 92CA ST R12,-Y
push_gset3:
0FCB 92BA ST R11,-Y
0FCC 92AA ST R10,-Y
push_gset2:
0FCD 937A ST R23,-Y
0FCE 936A ST R22,-Y
push_gset1:
0FCF 935A ST R21,-Y
0FD0 934A ST R20,-Y
0FD1 9508 RET
pop_gset1:
0FD2 E0E1 LDI R30,1
pop:
0FD3 9149 LD R20,Y+
0FD4 9159 LD R21,Y+
0FD5 FDE0 SBRC R30,0
0FD6 9508 RET
0FD7 9169 LD R22,Y+
0FD8 9179 LD R23,Y+
0FD9 FDE1 SBRC R30,1
0FDA 9508 RET
0FDB 90A9 LD R10,Y+
0FDC 90B9 LD R11,Y+
0FDD FDE2 SBRC R30,2
0FDE 9508 RET
0FDF 90C9 LD R12,Y+
0FE0 90D9 LD R13,Y+
0FE1 FDE3 SBRC R30,3
0FE2 9508 RET
0FE3 90E9 LD R14,Y+
0FE4 90F9 LD R15,Y+
0FE5 9508 RET
lsl16:
0FE6 2322 TST R18
0FE7 F021 BEQ 0x0FEC
0FE8 0F00 LSL R16
0FE9 1F11 ROL R17
0FEA 952A DEC R18
0FEB CFFA RJMP lsl16
0FEC 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -