📄 main.lis
字号:
009E C02E mov R12,R16
00A0 DD24 clr R13
00A2 .dbline 102
00A2 ; page_address|=recchar()<<8;
00A2 00D0 rcall _recchar
00A4 202E mov R2,R16
00A6 3324 clr R3
00A8 322C mov R3,R2
00AA 2224 clr R2
00AC C228 or R12,R2
00AE D328 or R13,R3
00B0 .dbline 103
00B0 ; for(address=0;address < APP_END;address += PAGESIZE) //Application section = 60 pages
00B0 6627 clr R22
00B2 7727 clr R23
00B4 3AC0 rjmp L26
00B6 L23:
00B6 .dbline 104
00B6 ; {
00B6 .dbline 105
00B6 ; for(page_size=0;page_size < PAGESIZE;page_size += 2) //Application section = 60 pages
00B6 AA24 clr R10
00B8 2FC0 rjmp L30
00BA L27:
00BA .dbline 106
00BA ; {
00BA .dbline 107
00BA ; if(page_address!=0)
00BA CC20 tst R12
00BC 11F4 brne X1
00BE DD20 tst R13
00C0 21F0 breq L31
00C2 X1:
00C2 .dbline 108
00C2 ; data=recchar();
00C2 00D0 rcall _recchar
00C4 E02E mov R14,R16
00C6 FF24 clr R15
00C8 03C0 rjmp L32
00CA L31:
00CA .dbline 110
00CA ; else
00CA ; data=0xFF;
00CA 8FEF ldi R24,255
00CC 90E0 ldi R25,0
00CE 7C01 movw R14,R24
00D0 L32:
00D0 .dbline 111
00D0 ; if(page_address)
00D0 CC20 tst R12
00D2 11F4 brne X2
00D4 DD20 tst R13
00D6 19F0 breq L33
00D8 X2:
00D8 .dbline 112
00D8 ; page_address--;
00D8 C601 movw R24,R12
00DA 0197 sbiw R24,1
00DC 6C01 movw R12,R24
00DE L33:
00DE .dbline 113
00DE ; if(page_address!=0)
00DE CC20 tst R12
00E0 11F4 brne X3
00E2 DD20 tst R13
00E4 41F0 breq L35
00E6 X3:
00E6 .dbline 114
00E6 ; data|=recchar()<<8;
00E6 00D0 rcall _recchar
00E8 202E mov R2,R16
00EA 3324 clr R3
00EC 322C mov R3,R2
00EE 2224 clr R2
00F0 E228 or R14,R2
00F2 F328 or R15,R3
00F4 03C0 rjmp L36
00F6 L35:
00F6 .dbline 116
00F6 ; else
00F6 ; data|=0xFF<<8;
00F6 C701 movw R24,R14
00F8 9F6F ori R25,255
00FA 7C01 movw R14,R24
00FC L36:
00FC .dbline 117
00FC ; if(page_address)
00FC CC20 tst R12
00FE 11F4 brne X4
0100 DD20 tst R13
0102 19F0 breq L37
0104 X4:
0104 .dbline 118
0104 ; page_address--;
0104 C601 movw R24,R12
0106 0197 sbiw R24,1
0108 6C01 movw R12,R24
010A L37:
010A .dbline 119
010A 2A2D mov R18,R10
010C 3327 clr R19
010E 8701 movw R16,R14
0110 00D0 rcall _fill_temp_buffer
0112 .dbline 120
0112 L28:
0112 .dbline 105
0112 8A2D mov R24,R10
0114 8E5F subi R24,254 ; addi 2
0116 A82E mov R10,R24
0118 L30:
0118 .dbline 105
0118 8A2D mov R24,R10
011A 8034 cpi R24,64
011C 08F4 brsh X6
011E CDCF rjmp L27
0120 X6:
0120 .dbline 121
0120 25E0 ldi R18,5
0122 8B01 movw R16,R22
0124 00D0 rcall _write_page
0126 .dbline 122
0126 L24:
0126 .dbline 103
0126 605C subi R22,192 ; offset = 64
0128 7F4F sbci R23,255
012A L26:
012A .dbline 103
012A 6030 cpi R22,0
012C ECE1 ldi R30,28
012E 7E07 cpc R23,R30
0130 08F4 brsh X7
0132 C1CF rjmp L23
0134 X7:
0134 .dbline 123
0134 ; fill_temp_buffer(data,(page_size)); //call asm routine.
0134 ; }
0134 ; write_page((address),0x05);
0134 ; }
0134 ; sendstr("End Write ");
0134 00E0 ldi R16,<L39
0136 10E0 ldi R17,>L39
0138 00D0 rcall _sendstr
013A .dbline 124
013A ; }
013A A7CF rjmp L16
013C L20:
013C .dbline 126
013C ;
013C ; else if(val=='e') //Chip erase
013C 4536 cpi R20,101
013E 09F0 breq X8
0140 A4CF rjmp L16
0142 X8:
0142 .dbline 127
0142 ; {
0142 .dbline 128
0142 ; sendstr("Start Erase ");
0142 00E0 ldi R16,<L42
0144 10E0 ldi R17,>L42
0146 00D0 rcall _sendstr
0148 .dbline 130
0148 ;
0148 ; for(address=0;address < APP_END;address += PAGESIZE) //Application section = 60 pages
0148 6627 clr R22
014A 7727 clr R23
014C 08C0 rjmp L46
014E L43:
014E .dbline 131
014E .dbline 131
014E 00E2 ldi R16,20000
0150 1EE4 ldi R17,78
0152 56DF rcall _Delay
0154 .dbline 132
0154 23E0 ldi R18,3
0156 8B01 movw R16,R22
0158 00D0 rcall _write_page
015A .dbline 133
015A L44:
015A .dbline 130
015A 605C subi R22,192 ; offset = 64
015C 7F4F sbci R23,255
015E L46:
015E .dbline 130
015E 6030 cpi R22,0
0160 ECE1 ldi R30,28
0162 7E07 cpc R23,R30
0164 A0F3 brlo L43
0166 .dbline 134
0166 ; {Delay(20000);
0166 ; write_page(address,0x03); //Perform page erase
0166 ; }
0166 ; sendstr("End Erase ");
0166 00E0 ldi R16,<L47
0168 10E0 ldi R17,>L47
016A 00D0 rcall _sendstr
016C .dbline 135
016C ; }
016C .dbline 138
016C ;
016C ;
016C ; }
016C .dbline 94
016C .dbline 94
016C 8ECF rjmp L16
016E L12:
016E .dbline 141
016E ; }
016E ; else
016E ; { asm("JMP 0x0000") ;
016E .dbline 141
016E 0C940000 JMP 0x0000
0172 .dbline 142
0172 ; UCSRB = 0x00;
0172 2224 clr R2
0174 2AB8 out 0xa,R2
0176 .dbline 143
0176 ; }
0176 .dbline -2
0176 .dbline 145
0176 ;
0176 ; }
0176 L7:
0176 .dbline 0 ; func end
0176 0895 ret
0178 .dbsym l intval 1 i
0178 .dbsym r val 20 c
0178 .dbsym r address 22 i
0178 .dbsym r data 14 i
0178 .dbsym r page_size 10 c
0178 .dbsym r page_address 12 i
0178 .dbend
.area data(ram, con, rel)
0000 .dbfile D:\AVR_Demo\M8IAP\Source\main.c
0000 L47:
0000 .blkb 12
.area idata
0000 456E64202045726173652000 .byte 'E,'n,'d,32,32,'E,'r,'a,'s,'e,32,0
.area data(ram, con, rel)
000C .dbfile D:\AVR_Demo\M8IAP\Source\main.c
000C L42:
000C .blkb 13
.area idata
000C 53746172742045726173652000 .byte 'S,'t,'a,'r,'t,32,'E,'r,'a,'s,'e,32,0
.area data(ram, con, rel)
0019 .dbfile D:\AVR_Demo\M8IAP\Source\main.c
0019 L39:
0019 .blkb 11
.area idata
0019 456E642057726974652000 .byte 'E,'n,'d,32,'W,'r,'i,'t,'e,32,0
.area data(ram, con, rel)
0024 .dbfile D:\AVR_Demo\M8IAP\Source\main.c
0024 L22:
0024 .blkb 13
.area idata
0024 53746172742057726974652000 .byte 'S,'t,'a,'r,'t,32,'W,'r,'i,'t,'e,32,0
.area data(ram, con, rel)
0031 .dbfile D:\AVR_Demo\M8IAP\Source\main.c
0031 L15:
0031 .blkb 10
.area idata
0031 53746172742049415000 .byte 'S,'t,'a,'r,'t,32,'I,'A,'P,0
.area data(ram, con, rel)
003B .dbfile D:\AVR_Demo\M8IAP\Source\main.c
003B L14:
003B .blkb 20
.area idata
003B B8BBD3D1C7DA2041544D454741382044 .byte 184,187,211,209,199,218,32,'A,'T,'M,'E,'G,'A,56,32,'D
004B 454D4F00 .byte 'E,'M,'O,0
.area data(ram, con, rel)
004F .dbfile D:\AVR_Demo\M8IAP\Source\main.c
004F L8:
004F .blkb 16
.area idata
004F B8BBD3D1C7DA4941502056312E302000 .byte 184,187,211,209,199,218,'I,'A,'P,32,'V,49,46,48,32,0
.area data(ram, con, rel)
005F .dbfile D:\AVR_Demo\M8IAP\Source\main.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -