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

📄 bootload.lst

📁 AVR mage8单片机的bootload程序、完整版本、本人做项目一下在用、此程序为16m晶振版本、非常好用
💻 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 D163      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 D112      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 D02B      RCALL	_GetPage
    0E6B 2300      TST	R16
    0E6C F051      BEQ	0x0E77
    0E6D D054      RCALL	_WriteFlash
    0E6E D081      RCALL	_CheckFlash
    0E6F 2300      TST	R16
    0E70 F019      BEQ	0x0E74
    0E71 E201      LDI	R16,0x21
    0E72 D0FE      RCALL	_TxChar
    0E73 C005      RJMP	0x0E79
    0E74 E400      LDI	R16,0x40
    0E75 D0FB      RCALL	_TxChar
    0E76 C002      RJMP	0x0E79
    0E77 E400      LDI	R16,0x40
    0E78 D0F8      RCALL	_TxChar
    0E79 CFE6      RJMP	0x0E60
    0E7A 9508      RET
_GetPageNumber:
  PageAddressLow       --> R20
  PageAddressHigh      --> R22
    0E7B D14E      RCALL	push_gset2
    0E7C D0EC      RCALL	_IsChar
    0E7D 2300      TST	R16
    0E7E F3E9      BEQ	0x0E7C
    0E7F D0EF      RCALL	_RxChar
    0E80 2F60      MOV	R22,R16
    0E81 D0E7      RCALL	_IsChar
    0E82 2300      TST	R16
    0E83 F3E9      BEQ	0x0E81
    0E84 D0EA      RCALL	_RxChar
    0E85 2F40      MOV	R20,R16
    0E86 2E36      MOV	R3,R22
    0E87 2E24      MOV	R2,R20
    0E88 92300061  STS	RealPageAddress+1,R3
    0E8A 92200060  STS	RealPageAddress,R2
    0E8C E026      LDI	R18,6
    0E8D E030      LDI	R19,0
    0E8E 0181      MOVW	R16,R2
    0E8F D153      RCALL	lsl16
    0E90 93100063  STS	PageAddress+1,R17
    0E92 93000062  STS	PageAddress,R16
    0E94 D129      RCALL	pop_gset2
    0E95 9508      RET
_GetPage:
  CheckSum             --> R20
  LocalCheckSum        --> R22
  i                    --> R10
    0E96 D131      RCALL	push_gset3
    0E97 2766      CLR	R22
    0E98 2744      CLR	R20
    0E99 24AA      CLR	R10
    0E9A 24BB      CLR	R11
    0E9B C014      RJMP	0x0EB0
    0E9C D0CC      RCALL	_IsChar
    0E9D 2300      TST	R16
    0E9E F3E9      BEQ	0x0E9C
    0E9F 95A8      WDR
    0EA0 D0CE      RCALL	_RxChar
    0EA1 E684      LDI	R24,0x64
    0EA2 E090      LDI	R25,0
    0EA3 01F5      MOVW	R30,R10
    0EA4 0FE8      ADD	R30,R24
    0EA5 1FF9      ADC	R31,R25
    0EA6 8300      STD	Z+0,R16
    0EA7 01F5      MOVW	R30,R10
    0EA8 0FE8      ADD	R30,R24
    0EA9 1FF9      ADC	R31,R25
    0EAA 8020      LDD	R2,Z+0
    0EAB 0D62      ADD	R22,R2
    0EAC 95A8      WDR
    0EAD 01C5      MOVW	R24,R10
    0EAE 9601      ADIW	R24,1
    0EAF 015C      MOVW	R10,R24
    0EB0 01C5      MOVW	R24,R10
    0EB1 3480      CPI	R24,0x40
    0EB2 E0E0      LDI	R30,0
    0EB3 079E      CPC	R25,R30
    0EB4 F338      BCS	0x0E9C
    0EB5 D0B3      RCALL	_IsChar
    0EB6 2300      TST	R16
    0EB7 F3E9      BEQ	0x0EB5
    0EB8 95A8      WDR
    0EB9 D0B5      RCALL	_RxChar
    0EBA 2F40      MOV	R20,R16
    0EBB 1760      CP	R22,R16
    0EBC F411      BNE	0x0EBF
    0EBD E001      LDI	R16,1
    0EBE C001      RJMP	0x0EC0
    0EBF 2700      CLR	R16
    0EC0 D0FF      RCALL	pop_gset3
    0EC1 9508      RET
_WriteFlash:
  TempInt              --> R20
  i                    --> R22
    0EC2 D107      RCALL	push_gset2
    0EC3 2766      CLR	R22
    0EC4 2777      CLR	R23
    0EC5 C016      RJMP	0x0EDC
    0EC6 E684      LDI	R24,0x64
    0EC7 E090      LDI	R25,0
    0EC8 01FB      MOVW	R30,R22
    0EC9 9631      ADIW	R30,1
    0ECA 0FE8      ADD	R30,R24
    0ECB 1FF9      ADC	R31,R25
    0ECC 8020      LDD	R2,Z+0
    0ECD 2433      CLR	R3
    0ECE 2C32      MOV	R3,R2
    0ECF 2422      CLR	R2
    0ED0 01FB      MOVW	R30,R22
    0ED1 0FE8      ADD	R30,R24
    0ED2 1FF9      ADC	R31,R25
    0ED3 8140      LDD	R20,Z+0
    0ED4 2755      CLR	R21
    0ED5 0D42      ADD	R20,R2
    0ED6 1D53      ADC	R21,R3
    0ED7 019B      MOVW	R18,R22
    0ED8 018A      MOVW	R16,R20
    0ED9 DF63      RCALL	_fill_temp_buffer
    0EDA 5F6E      SUBI	R22,0xFE
    0EDB 4F7F      SBCI	R23,0xFF
    0EDC 3460      CPI	R22,0x40
    0EDD E0E0      LDI	R30,0
    0EDE 077E      CPC	R23,R30
    0EDF F330      BCS	0x0EC6
    0EE0 E023      LDI	R18,3
    0EE1 91000062  LDS	R16,PageAddress
    0EE3 91100063  LDS	R17,PageAddress+1
    0EE5 DF51      RCALL	_write_page
    0EE6 E025      LDI	R18,5
    0EE7 91000062  LDS	R16,PageAddress
    0EE9 91100063  LDS	R17,PageAddress+1
    0EEB DF4B      RCALL	_write_page
    0EEC DF65      RCALL	_enableRWW
    0EED 95A8      WDR
    0EEE D0CF      RCALL	pop_gset2
    0EEF 9508      RET
_CheckFlash:
  TempInt2             --> R20
  TempInt              --> R22
  i                    --> R10
    0EF0 D0D7      RCALL	push_gset3
    0EF1 95A8      WDR
    0EF2 2744      CLR	R20
    0EF3 2755      CLR	R21
    0EF4 C021      RJMP	0x0F16
    0EF5 2722      CLR	R18
    0EF6 91000062  LDS	R16,PageAddress
    0EF8 91100063  LDS	R17,PageAddress+1
    0EFA 0F04      ADD	R16,R20
    0EFB 1F15      ADC	R17,R21
    0EFC DF48      RCALL	_read_program_memory
    0EFD 0158      MOVW	R10,R16
    0EFE E684      LDI	R24,0x64
    0EFF E090      LDI	R25,0
    0F00 01FA      MOVW	R30,R20
    0F01 9631      ADIW	R30,1
    0F02 0FE8      ADD	R30,R24
    0F03 1FF9      ADC	R31,R25
    0F04 8020      LDD	R2,Z+0
    0F05 2433      CLR	R3
    0F06 2C32      MOV	R3,R2
    0F07 2422      CLR	R2
    0F08 01FA      MOVW	R30,R20
    0F09 0FE8      ADD	R30,R24
    0F0A 1FF9      ADC	R31,R25
    0F0B 8160      LDD	R22,Z+0
    0F0C 2777      CLR	R23
    0F0D 0D62      ADD	R22,R2
    0F0E 1D73      ADC	R23,R3
    0F0F 1706      CP	R16,R22
    0F10 0717      CPC	R17,R23
    0F11 F011      BEQ	0x0F14
    0F12 2700      CLR	R16
    0F13 C007      RJMP	0x0F1B
    0F14 5F4E      SUBI	R20,0xFE
    0F15 4F5F      SBCI	R21,0xFF
    0F16 3440      CPI	R20,0x40
    0F17 E0E0      LDI	R30,0
    0F18 075E      CPC	R21,R30
    0F19 F2D8      BCS	0x0EF5
    0F1A E001      LDI	R16,1
    0F1B D0A4      RCALL	pop_gset3
    0F1C 9508      RET
_EEpromLoad:
    0F1D D0A8      RCALL	push_gset4
    0F1E E209      LDI	R16,0x29
    0F1F D051      RCALL	_TxChar
    0F20 E201      LDI	R16,0x21
    0F21 D04F      RCALL	_TxChar
    0F22 C033      RJMP	0x0F56
    0F23 95A8      WDR
    0F24 2744      CLR	R20
    0F25 D043      RCALL	_IsChar
    0F26 2300      TST	R16
    0F27 F3E9      BEQ	0x0F25
    0F28 D046      RCALL	_RxChar
    0F29 2EA0      MOV	R10,R16
    0F2A 0F40      ADD	R20,R16
    0F2B D03D      RCALL	_IsChar
    0F2C 2300      TST	R16
    0F2D F3E9      BEQ	0x0F2B
    0F2E D040      RCALL	_RxChar
    0F2F 2F60      MOV	R22,R16
    0F30 0F40      ADD	R20,R16
    0F31 2CDA      MOV	R13,R10
    0F32 2EC6      MOV	R12,R22
    0F33 01C6      MOVW	R24,R12
    0F34 3F8F      CPI	R24,0xFF
    0F35 EFEF      LDI	R30,0xFF
    0F36 079E      CPC	R25,R30
    0F37 F409      BNE	0x0F39
    0F38 C01E      RJMP	0x0F57
    0F39 D02F      RCALL	_IsChar
    0F3A 2300      TST	R16
    0F3B F3E9      BEQ	0x0F39
    0F3C D032      RCALL	_RxChar
    0F3D 2EA0      MOV	R10,R16
    0F3E 0F40      ADD	R20,R16
    0F3F 95A8      WDR
    0F40 D028      RCALL	_IsChar
    0F41 2300      TST	R16
    0F42 F3E9      BEQ	0x0F40
    0F43 D02B      RCALL	_RxChar
    0F44 2F60      MOV	R22,R16
    0F45 1704      CP	R16,R20
    0F46 F469      BNE	0x0F54
    0F47 2D2A      MOV	R18,R10
    0F48 0186      MOVW	R16,R12
    0F49 D00F      RCALL	_EEPROMwrite
    0F4A 0186      MOVW	R16,R12
    0F4B D016      RCALL	_EEPROMread
    0F4C 150A      CP	R16,R10
    0F4D F419      BNE	0x0F51
    0F4E E201      LDI	R16,0x21
    0F4F D021      RCALL	_TxChar
    0F50 C005      RJMP	0x0F56
    0F51 E400      LDI	R16,0x40
    0F52 D01E      RCALL	_TxChar
    0F53 C002      RJMP	0x0F56
    0F54 E400      LDI	R16,0x40
    0F55 D01B      RCALL	_TxChar
    0F56 CFCC      RJMP	0x0F23
    0F57 D06A      RCALL	pop_gset4
    0F58 9508      RET
_EEPROMwrite:
    0F59 99E1      SBIC	0x1C,1
    0F5A CFFE      RJMP	_EEPROMwrite
    0F5B BB1F      OUT	0x1F,R17
    0F5C BB0E      OUT	0x1E,R16
    0F5D BB2D      OUT	0x1D,R18
    0F5E 9AE2      SBI	0x1C,2
    0F5F 9AE1      SBI	0x1C,1
    0F60 95A8      WDR
    0F61 9508      RET
_EEPROMread:
    0F62 99E1      SBIC	0x1C,1
    0F63 CFFE      RJMP	_EEPROMread
    0F64 BB1F      OUT	0x1F,R17
    0F65 BB0E      OUT	0x1E,R16
    0F66 9AE0      SBI	0x1C,0
    0F67 B30D      IN	R16,0x1D
    0F68 9508      RET
_IsChar:
    0F69 9B5F      SBIS	0x0B,7
    0F6A C002      RJMP	0x0F6D
    0F6B E001      LDI	R16,1
    0F6C C001      RJMP	0x0F6E
    0F6D 2700      CLR	R16
    0F6E 9508      RET
_RxChar:
    0F6F B10C      IN	R16,0x0C
    0F70 9508      RET
_TxChar:
  ch                   --> R16
    0F71 9B5D      SBIS	0x0B,5
    0F72 CFFE      RJMP	_TxChar
    0F73 9AAD      SBI	0x15,5
    0F74 B90C      OUT	0x0C,R16
    0F75 9B5E      SBIS	0x0B,6
    0F76 CFFE      RJMP	0x0F75
    0F77 9A5E      SBI	0x0B,6
    0F78 98AD      CBI	0x15,5
    0F79 95A8      WDR
    0F7A 9508      RET
_Wait:
  i                    --> R16
    0F7B E000      LDI	R16,0
    0F7C E813      LDI	R17,0x83
    0F7D 5F0F      SUBI	R16,0xFF
    0F7E 4F1F      SBCI	R17,0xFF
    0F7F 3000      CPI	R16,0
    0F80 E7ED      LDI	R30,0x7D
    0F81 071E      CPC	R17,R30
    0F82 F3D4      BLT	0x0F7D
    0F83 95A8      WDR
    0F84 9508      RET
_SendDeviceID:
    0F85 E401      LDI	R16,0x41
    0F86 DFEA      RCALL	_TxChar
    0F87 E60C      LDI	R16,0x6C
    0F88 DFE8      RCALL	_TxChar
    0F89 E604      LDI	R16,0x64
    0F8A DFE6      RCALL	_TxChar
    0F8B E502      LDI	R16,0x52
    0F8C DFE4      RCALL	_TxChar
    0F8D E301      LDI	R16,0x31
    0F8E DFE2      RCALL	_TxChar
    0F8F DFDF      RCALL	_RxChar
    0F90 95A8      WDR
    0F91 9508      RET
_ExecCode:
    0F92 E081      LDI	R24,1
    0F93 BF8B      OUT	0x3B,R24
    0F94 2422      CLR	R2
    0F95 BE2B      OUT	0x3B,R2
    0F96 940C0000  JMP	0x0
    0F98 9508      RET
_main:
  i                    --> Y+1
    0F99 94F8      BCLR	7
    0F9A B581      IN	R24,0x21
    0F9B 6188      ORI	R24,0x18
    0F9C BD81      OUT	0x21,R24
    0F9D E087      LDI	R24,7
    0F9E BD81      OUT	0x21,R24
    0F9F E081      LDI	R24,1
    0FA0 BB82      OUT	0x12,R24
    0FA1 2422      CLR	R2
    0FA2 B82A      OUT	0x0A,R2
    0FA3 B82B      OUT	0x0B,R2
    0FA4 E886      LDI	R24,0x86
    0FA5 BD80      OUT	0x20,R24
    0FA6 BC20      OUT	0x20,R2
    0FA7 E188      LDI	R24,0x18
    0FA8 B98A      OUT	0x0A,R24
    0FA9 9AA5      SBI	0x14,5
    0FAA 98AD      CBI	0x15,5
    0FAB E045      LDI	R20,5
    0FAC C00D      RJMP	0x0FBA
    0FAD B949      OUT	0x09,R20
    0FAE DFC0      RCALL	_RxChar
    0FAF E30E      LDI	R16,0x3E
    0FB0 DFC0      RCALL	_TxChar
    0FB1 DFC9      RCALL	_Wait
    0FB2 DFBC      RCALL	_RxChar
    0FB3 330C      CPI	R16,0x3C
    0FB4 F421      BNE	0x0FB9
    0FB5 DFCF      RCALL	_SendDeviceID
    0FB6 DEA6      RCALL	_FlashLoad
    0FB7 DF65      RCALL	_EEpromLoad
    0FB8 DFD9      RCALL	_ExecCode
    0FB9 9543      INC	R20
    0FBA 3144      CPI	R20,0x14
    0FBB F388      BCS	0x0FAD
    0FBC DFD5      RCALL	_ExecCode
    0FBD 9508      RET
pop_gset2:
    0FBE E0E2      LDI	R30,2
    0FBF C010      RJMP	pop
pop_gset3:
    0FC0 E0E4      LDI	R30,4
    0FC1 C00E      RJMP	pop
pop_gset4:
    0FC2 E0E8      LDI	R30,0x8
    0FC3 C00C      RJMP	pop
push_gset5:
    0FC4 92FA      ST	R15,-Y
    0FC5 92EA      ST	R14,-Y
push_gset4:
    0FC6 92DA      ST	R13,-Y
    0FC7 92CA      ST	R12,-Y
push_gset3:
    0FC8 92BA      ST	R11,-Y
    0FC9 92AA      ST	R10,-Y
push_gset2:
    0FCA 937A      ST	R23,-Y
    0FCB 936A      ST	R22,-Y
push_gset1:
    0FCC 935A      ST	R21,-Y
    0FCD 934A      ST	R20,-Y
    0FCE 9508      RET
pop_gset1:
    0FCF E0E1      LDI	R30,1
pop:
    0FD0 9149      LD	R20,Y+
    0FD1 9159      LD	R21,Y+
    0FD2 FDE0      SBRC	R30,0
    0FD3 9508      RET
    0FD4 9169      LD	R22,Y+
    0FD5 9179      LD	R23,Y+
    0FD6 FDE1      SBRC	R30,1
    0FD7 9508      RET
    0FD8 90A9      LD	R10,Y+
    0FD9 90B9      LD	R11,Y+
    0FDA FDE2      SBRC	R30,2
    0FDB 9508      RET
    0FDC 90C9      LD	R12,Y+
    0FDD 90D9      LD	R13,Y+
    0FDE FDE3      SBRC	R30,3
    0FDF 9508      RET
    0FE0 90E9      LD	R14,Y+
    0FE1 90F9      LD	R15,Y+
    0FE2 9508      RET
lsl16:
    0FE3 2322      TST	R18
    0FE4 F021      BEQ	0x0FE9
    0FE5 0F00      LSL	R16
    0FE6 1F11      ROL	R17
    0FE7 952A      DEC	R18
    0FE8 CFFA      RJMP	lsl16
    0FE9 9508      RET

⌨️ 快捷键说明

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