📄 flash.lis
字号:
02D2 EA85 ldd R30,y+10
02D4 FB85 ldd R31,y+11
02D6 0081 ldd R16,z+0
02D8 00D0 rcall _Spi_MT
02DA .dbline 151
02DA 8A85 ldd R24,y+10
02DC 9B85 ldd R25,y+11
02DE 0196 adiw R24,1
02E0 9B87 std y+11,R25
02E2 8A87 std y+10,R24
02E4 .dbline 152
02E4 L35:
02E4 .dbline 148
02E4 C601 movw R24,R12
02E6 0196 adiw R24,1
02E8 6C01 movw R12,R24
02EA L37:
02EA .dbline 148
02EA CE14 cp R12,R14
02EC DF04 cpc R13,R15
02EE 88F3 brlo L34
02F0 .dbline 153
02F0 ; {
02F0 ; Spi_MT(*string);
02F0 ; string++;
02F0 ; }
02F0 ; CS_1;
02F0 C29A sbi 0x18,2
02F2 .dbline 154
02F2 ; Prints("Write string start addr ",0);
02F2 2227 clr R18
02F4 3327 clr R19
02F6 00E0 ldi R16,<L38
02F8 10E0 ldi R17,>L38
02FA 00D0 rcall _Prints
02FC .dbline 155
02FC ; Send_abyte('0');
02FC 00E3 ldi R16,48
02FE 10E0 ldi R17,0
0300 00D0 rcall _Send_abyte
0302 .dbline 156
0302 ; Send_abyte('x');
0302 08E7 ldi R16,120
0304 10E0 ldi R17,0
0306 00D0 rcall _Send_abyte
0308 .dbline 157
0308 ; Send_abyte('0');
0308 00E3 ldi R16,48
030A 10E0 ldi R17,0
030C 00D0 rcall _Send_abyte
030E .dbline 158
030E ; Send_abyte(table[address2%16]);
030E 20E1 ldi R18,16
0310 30E0 ldi R19,0
0312 042F mov R16,R20
0314 1127 clr R17
0316 00D0 rcall mod16s
0318 F801 movw R30,R16
031A 80E0 ldi R24,<_table
031C 90E0 ldi R25,>_table
031E E80F add R30,R24
0320 F91F adc R31,R25
0322 0081 ldd R16,z+0
0324 1127 clr R17
0326 00D0 rcall _Send_abyte
0328 .dbline 159
0328 ; Send_abyte(table[address1/6]);
0328 26E0 ldi R18,6
032A 30E0 ldi R19,0
032C 0A2D mov R16,R10
032E 1127 clr R17
0330 00D0 rcall div16s
0332 F801 movw R30,R16
0334 80E0 ldi R24,<_table
0336 90E0 ldi R25,>_table
0338 E80F add R30,R24
033A F91F adc R31,R25
033C 0081 ldd R16,z+0
033E 1127 clr R17
0340 00D0 rcall _Send_abyte
0342 .dbline 160
0342 ; Send_abyte(table[address1%16]);
0342 20E1 ldi R18,16
0344 30E0 ldi R19,0
0346 0A2D mov R16,R10
0348 1127 clr R17
034A 00D0 rcall mod16s
034C F801 movw R30,R16
034E 80E0 ldi R24,<_table
0350 90E0 ldi R25,>_table
0352 E80F add R30,R24
0354 F91F adc R31,R25
0356 0081 ldd R16,z+0
0358 1127 clr R17
035A 00D0 rcall _Send_abyte
035C .dbline 161
035C ; Send_abyte(table[address0/16]);
035C 20E1 ldi R18,16
035E 30E0 ldi R19,0
0360 062F mov R16,R22
0362 1127 clr R17
0364 00D0 rcall div16s
0366 F801 movw R30,R16
0368 80E0 ldi R24,<_table
036A 90E0 ldi R25,>_table
036C E80F add R30,R24
036E F91F adc R31,R25
0370 0081 ldd R16,z+0
0372 1127 clr R17
0374 00D0 rcall _Send_abyte
0376 .dbline 162
0376 ; Send_abyte(table[address0%16]);
0376 20E1 ldi R18,16
0378 30E0 ldi R19,0
037A 062F mov R16,R22
037C 1127 clr R17
037E 00D0 rcall mod16s
0380 F801 movw R30,R16
0382 80E0 ldi R24,<_table
0384 90E0 ldi R25,>_table
0386 E80F add R30,R24
0388 F91F adc R31,R25
038A 0081 ldd R16,z+0
038C 1127 clr R17
038E 00D0 rcall _Send_abyte
0390 .dbline 163
0390 ; Prints(" completed...",1);
0390 21E0 ldi R18,1
0392 30E0 ldi R19,0
0394 00E0 ldi R16,<L16
0396 10E0 ldi R17,>L16
0398 00D0 rcall _Prints
039A .dbline -2
039A L30:
039A 00D0 rcall pop_gset5
039C 2496 adiw R28,4
039E .dbline 0 ; func end
039E 0895 ret
03A0 .dbsym r address2 20 c
03A0 .dbsym r address0 22 c
03A0 .dbsym r address1 10 c
03A0 .dbsym r i 12 s
03A0 .dbsym r n 14 s
03A0 .dbsym l address 12 l
03A0 .dbsym l string 10 pc
03A0 .dbend
03A0 .dbfunc e Read_string _Read_string fV
03A0 ; address0 -> R10
03A0 ; address1 -> R12
03A0 ; address2 -> y+0
03A0 ; i -> R14
03A0 ; n -> y+15
03A0 ; address -> y+11
.even
03A0 _Read_string::
03A0 00D0 rcall push_arg4
03A2 00D0 rcall push_gset5
03A4 2197 sbiw R28,1
03A6 .dbline -1
03A6 .dbline 169
03A6 ; }
03A6 ; /**************************************************************
03A6 ; 读入一串字节。
03A6 ; ****************************************************************/
03A6 ; void Read_string(uint32 address,uint32 n)
03A6 ; {
03A6 .dbline 172
03A6 ; uint8 i;
03A6 ; uint8 address2,address1,address0;
03A6 ; address2=(uint8)(address>>16);
03A6 FE01 movw R30,R28
03A8 2384 ldd R2,z+11
03AA 3484 ldd R3,z+12
03AC 4584 ldd R4,z+13
03AE 5684 ldd R5,z+14
03B0 1201 movw R2,R4
03B2 4424 clr R4
03B4 5524 clr R5
03B6 2882 std y+0,R2
03B8 .dbline 173
03B8 ; address1=(uint8)(address>>8);
03B8 88E0 ldi R24,8
03BA 90E0 ldi R25,0
03BC FE01 movw R30,R28
03BE 2384 ldd R2,z+11
03C0 3484 ldd R3,z+12
03C2 4584 ldd R4,z+13
03C4 5684 ldd R5,z+14
03C6 8A93 st -y,R24
03C8 8101 movw R16,R2
03CA 9201 movw R18,R4
03CC 00D0 rcall lsr32
03CE C02E mov R12,R16
03D0 .dbline 174
03D0 ; address0=(uint8)address;
03D0 FE01 movw R30,R28
03D2 2384 ldd R2,z+11
03D4 3484 ldd R3,z+12
03D6 4584 ldd R4,z+13
03D8 5684 ldd R5,z+14
03DA A22C mov R10,R2
03DC L40:
03DC .dbline 175
03DC L41:
03DC .dbline 175
03DC ; while((Read_RDSR())&0x01);
03DC 42DF rcall _Read_RDSR
03DE 00FD sbrc R16,0
03E0 FDCF rjmp L40
03E2 .dbline 176
03E2 ; WriteEN();
03E2 6EDE rcall _WriteEN
03E4 .dbline 177
03E4 ; CS_0;
03E4 C298 cbi 0x18,2
03E6 .dbline 178
03E6 ; Spi_MT(0x03);
03E6 03E0 ldi R16,3
03E8 00D0 rcall _Spi_MT
03EA .dbline 179
03EA ; Spi_MT(address2);
03EA 0881 ldd R16,y+0
03EC 00D0 rcall _Spi_MT
03EE .dbline 180
03EE ; Spi_MT(address1);
03EE 0C2D mov R16,R12
03F0 00D0 rcall _Spi_MT
03F2 .dbline 181
03F2 ; Spi_MT(address0);
03F2 0A2D mov R16,R10
03F4 00D0 rcall _Spi_MT
03F6 .dbline 182
03F6 ; for(i=0;i<n;i++)
03F6 EE24 clr R14
03F8 09C0 rjmp L46
03FA L43:
03FA .dbline 183
03FA .dbline 184
03FA 00D0 rcall _Spi_MR
03FC 80E0 ldi R24,<_read_string
03FE 90E0 ldi R25,>_read_string
0400 EE2D mov R30,R14
0402 FF27 clr R31
0404 E80F add R30,R24
0406 F91F adc R31,R25
0408 0083 std z+0,R16
040A .dbline 185
040A L44:
040A .dbline 182
040A E394 inc R14
040C L46:
040C .dbline 182
040C FE01 movw R30,R28
040E 2784 ldd R2,z+15
0410 3088 ldd R3,z+16
0412 4188 ldd R4,z+17
0414 5288 ldd R5,z+18
0416 6E2C mov R6,R14
0418 7724 clr R7
041A 8824 clr R8
041C 9924 clr R9
041E 6214 cp R6,R2
0420 7304 cpc R7,R3
0422 8404 cpc R8,R4
0424 9504 cpc R9,R5
0426 48F3 brlo L43
0428 .dbline 186
0428 ; {
0428 ; read_string[i]=Spi_MR();
0428 ; }
0428 ; CS_1;
0428 C29A sbi 0x18,2
042A .dbline -2
042A L39:
042A 2196 adiw R28,1
042C 00D0 rcall pop_gset5
042E 2496 adiw R28,4
0430 .dbline 0 ; func end
0430 0895 ret
0432 .dbsym r address0 10 c
0432 .dbsym r address1 12 c
0432 .dbsym l address2 0 c
0432 .dbsym r i 14 c
0432 .dbsym l n 15 l
0432 .dbsym l address 11 l
0432 .dbend
0432 .dbfunc e Write_Protect _Write_Protect fV
.even
0432 _Write_Protect::
0432 .dbline -1
0432 .dbline 192
0432 ; }
0432 ; /**************************************************************
0432 ; 写保护
0432 ; ****************************************************************/
0432 ; void Write_Protect()
0432 ; {
0432 L48:
0432 .dbline 193
0432 L49:
0432 .dbline 193
0432 ; while((Read_RDSR())&0x01);
0432 17DF rcall _Read_RDSR
0434 00FD sbrc R16,0
0436 FDCF rjmp L48
0438 .dbline 194
0438 ; WriteEN();
0438 43DE rcall _WriteEN
043A .dbline 195
043A ; CS_0;
043A C298 cbi 0x18,2
043C .dbline 196
043C ; Spi_MT(0x02);
043C 02E0 ldi R16,2
043E 00D0 rcall _Spi_MT
0440 .dbline 197
0440 ; Spi_MT(0X9C);
0440 0CE9 ldi R16,156
0442 00D0 rcall _Spi_MT
0444 .dbline 198
0444 ; CS_1;
0444 C29A sbi 0x18,2
0446 .dbline 199
0446 ; Prints("Chip Write Protect...",1);
0446 21E0 ldi R18,1
0448 30E0 ldi R19,0
044A 00E0 ldi R16,<L51
044C 10E0 ldi R17,>L51
044E 00D0 rcall _Prints
0450 .dbline -2
0450 L47:
0450 .dbline 0 ; func end
0450 0895 ret
0452 .dbend
.area data(ram, con, rel)
0013 .dbfile E:\ICC\SPI\flash.c
0013 L51:
0013 .blkb 22
.area idata
0013 436869702057726974652050726F7465 .byte 'C,'h,'i,'p,32,'W,'r,'i,'t,'e,32,'P,'r,'o,'t,'e
0023 63742E2E2E00 .byte 'c,'t,46,46,46,0
.area data(ram, con, rel)
0029 .dbfile E:\ICC\SPI\flash.c
0029 L38:
0029 .blkb 25
.area idata
0029 577269746520737472696E6720737461 .byte 'W,'r,'i,'t,'e,32,'s,'t,'r,'i,'n,'g,32,'s,'t,'a
0039 727420616464722000 .byte 'r,'t,32,'a,'d,'d,'r,32,0
.area data(ram, con, rel)
0042 .dbfile E:\ICC\SPI\flash.c
0042 L21:
0042 .blkb 24
.area idata
0042 42756C6B20457261776520636F6D706C .byte 'B,'u,'l,'k,32,'E,'r,'a,'w,'e,32,'c,'o,'m,'p,'l
0052 657465642E2E2E00 .byte 'e,'t,'e,'d,46,46,46,0
.area data(ram, con, rel)
005A .dbfile E:\ICC\SPI\flash.c
005A L16:
005A .blkb 14
.area idata
005A 20636F6D706C657465642E2E2E00 .byte 32,'c,'o,'m,'p,'l,'e,'t,'e,'d,46,46,46,0
.area data(ram, con, rel)
0068 .dbfile E:\ICC\SPI\flash.c
0068 L15:
0068 .blkb 14
.area idata
0068 457261736520736563746F722000 .byte 'E,'r,'a,'s,'e,32,'s,'e,'c,'t,'o,'r,32,0
.area data(ram, con, rel)
0076 .dbfile E:\ICC\SPI\flash.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -