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

📄 bootload.lst

📁 AVR mage8单片机的bootload程序、完整版本、本人做项目一下在用、此程序为13.56m晶振版本、非常好用
💻 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 + -