📄 at45db021.lis
字号:
0464 3324 clr R3
0466 020D add R16,R2
0468 131D adc R17,R3
046A D9DE rcall _WriteToMemory
046C .dbline 288
046C 00E1 ldi R16,10000
046E 17E2 ldi R17,39
0470 00D0 rcall _Delay
0472 .dbline 289
0472 L88:
0472 .dbline 285
0472 4395 inc R20
0474 L90:
0474 .dbline 285
0474 4830 cpi R20,8
0476 88F3 brlo L87
0478 .dbline -2
0478 L82:
0478 EF96 adiw R28,63
047A EF96 adiw R28,63
047C EF96 adiw R28,63
047E EF96 adiw R28,63
0480 6096 adiw R28,16 ; offset = 268
0482 00D0 rcall pop_gset3
0484 .dbline 0 ; func end
0484 0895 ret
0486 .dbsym l write_data 4 A[264:264]c
0486 .dbsym r i 20 c
0486 .dbsym r Block_Data 22 c
0486 .dbsym r Block_Add 10 c
0486 .dbend
0486 .dbfunc e ReadBlock _ReadBlock fc
0486 ; tempdata -> R20,R21
0486 ; Read_data -> y+4
0486 ; i -> R22,R23
0486 ; n -> R10,R11
0486 ; Block_Add -> R12
.even
0486 _ReadBlock::
0486 00D0 rcall push_gset4
0488 C02E mov R12,R16
048A EF97 sbiw R28,63
048C EF97 sbiw R28,63
048E EF97 sbiw R28,63
0490 EF97 sbiw R28,63
0492 6097 sbiw R28,16 ; offset = 268
0494 .dbline -1
0494 .dbline 294
0494 ; {
0494 ; WriteToMemory(Block_Add*8+i, B1_TO_MM_PAGE_PROG_WITH_ERASE);
0494 ; Delay(10000);
0494 ; }
0494 ;
0494 ; }
0494 ;
0494 ; unsigned char ReadBlock(unsigned char Block_Add)
0494 ; {
0494 .dbline 301
0494 ; unsigned char Read_data[Buffer_Size];
0494 ; unsigned int i,n,tempdata;
0494 ; //MemoryToBuffer(Block_Add*8, BUFFER_1);
0494 ; //Delay(100);
0494 ; //ReadBuffer(Read_data,Buffer_Size, BUFFER_1,0);
0494 ; //Delay(100);
0494 ; MemoryPageRead(Read_data, Buffer_Size, Block_Add*8, 0);
0494 2224 clr R2
0496 3324 clr R3
0498 3B82 std y+3,R3
049A 2A82 std y+2,R2
049C 88E0 ldi R24,8
049E 8C9D mul R24,R12
04A0 1982 std y+1,R1
04A2 0882 std y+0,R0
04A4 28E0 ldi R18,264
04A6 31E0 ldi R19,1
04A8 8E01 movw R16,R28
04AA 0C5F subi R16,252 ; offset = 4
04AC 1F4F sbci R17,255
04AE 3EDF rcall _MemoryPageRead
04B0 .dbline 302
04B0 ; tempdata=Read_data[0];
04B0 4C81 ldd R20,y+4
04B2 5527 clr R21
04B4 .dbline 306
04B4 ; //PutStr("Read Block Addr");
04B4 ; //PutInt(Block_Add);
04B4 ; //PutInt(tempdata);
04B4 ; for(n=0;n<Buffer_Size;n++)
04B4 AA24 clr R10
04B6 BB24 clr R11
04B8 22C0 rjmp L95
04BA L92:
04BA .dbline 307
04BA ; {
04BA .dbline 308
04BA ; if(Read_data[i]!=tempdata)
04BA CE01 movw R24,R28
04BC 0496 adiw R24,4
04BE FB01 movw R30,R22
04C0 E80F add R30,R24
04C2 F91F adc R31,R25
04C4 2080 ldd R2,z+0
04C6 3324 clr R3
04C8 2416 cp R2,R20
04CA 3506 cpc R3,R21
04CC A9F0 breq L96
04CE .dbline 309
04CE ; {
04CE .dbline 310
04CE ; PutStr("Error Address");
04CE 00E0 ldi R16,<L98
04D0 10E0 ldi R17,>L98
04D2 00D0 rcall _PutStr
04D4 .dbline 311
04D4 ; PutInt(i);
04D4 8B01 movw R16,R22
04D6 00D0 rcall _PutInt
04D8 .dbline 312
04D8 ; PutStr("Error Data");
04D8 00E0 ldi R16,<L99
04DA 10E0 ldi R17,>L99
04DC 00D0 rcall _PutStr
04DE .dbline 313
04DE ; PutInt(Read_data[i]);
04DE CE01 movw R24,R28
04E0 0496 adiw R24,4
04E2 FB01 movw R30,R22
04E4 E80F add R30,R24
04E6 F91F adc R31,R25
04E8 0081 ldd R16,z+0
04EA 1127 clr R17
04EC 00D0 rcall _PutInt
04EE .dbline 314
04EE ; Delay(100);
04EE 04E6 ldi R16,100
04F0 10E0 ldi R17,0
04F2 00D0 rcall _Delay
04F4 .dbline 315
04F4 ; return 0x55;
04F4 05E5 ldi R16,85
04F6 5BC0 rjmp L91
04F8 L96:
04F8 .dbline 317
04F8 L93:
04F8 .dbline 306
04F8 C501 movw R24,R10
04FA 0196 adiw R24,1
04FC 5C01 movw R10,R24
04FE L95:
04FE .dbline 306
04FE C501 movw R24,R10
0500 8830 cpi R24,8
0502 E1E0 ldi R30,1
0504 9E07 cpc R25,R30
0506 C8F2 brlo L92
0508 .dbline 320
0508 ; }
0508 ; }//if(Read_data[i]!=tempdata)
0508 ; //return 0x55;
0508 ;
0508 ; for(i=1;i<8;i++)
0508 61E0 ldi R22,1
050A 70E0 ldi R23,0
050C 47C0 rjmp L103
050E L100:
050E .dbline 321
050E ; {
050E .dbline 322
050E ; MemoryPageRead(Read_data, Buffer_Size, Block_Add*8+i, 0);
050E 2224 clr R2
0510 3324 clr R3
0512 3B82 std y+3,R3
0514 2A82 std y+2,R2
0516 88E0 ldi R24,8
0518 8C9D mul R24,R12
051A 1001 movw R2,R0
051C 260E add R2,R22
051E 371E adc R3,R23
0520 3982 std y+1,R3
0522 2882 std y+0,R2
0524 28E0 ldi R18,264
0526 31E0 ldi R19,1
0528 8E01 movw R16,R28
052A 0C5F subi R16,252 ; offset = 4
052C 1F4F sbci R17,255
052E FEDE rcall _MemoryPageRead
0530 .dbline 325
0530 ; //Delay(10000);
0530 ;
0530 ; for(n=0;n<Buffer_Size;n++)
0530 AA24 clr R10
0532 BB24 clr R11
0534 2BC0 rjmp L107
0536 L104:
0536 .dbline 326
0536 ; if(Read_data[i]!=tempdata)
0536 CE01 movw R24,R28
0538 0496 adiw R24,4
053A FB01 movw R30,R22
053C E80F add R30,R24
053E F91F adc R31,R25
0540 2080 ldd R2,z+0
0542 3324 clr R3
0544 2416 cp R2,R20
0546 3506 cpc R3,R21
0548 F1F0 breq L108
054A .dbline 327
054A ; {
054A .dbline 328
054A ; PutStr("Error Page");
054A 00E0 ldi R16,<L110
054C 10E0 ldi R17,>L110
054E 00D0 rcall _PutStr
0550 .dbline 329
0550 ; PutInt(Block_Add*8+i);
0550 88E0 ldi R24,8
0552 8C9D mul R24,R12
0554 8001 movw R16,R0
0556 060F add R16,R22
0558 171F adc R17,R23
055A 00D0 rcall _PutInt
055C .dbline 330
055C ; PutStr("Error Address");
055C 00E0 ldi R16,<L98
055E 10E0 ldi R17,>L98
0560 00D0 rcall _PutStr
0562 .dbline 331
0562 ; PutInt(n);
0562 8501 movw R16,R10
0564 00D0 rcall _PutInt
0566 .dbline 332
0566 ; PutStr("Error Data");
0566 00E0 ldi R16,<L99
0568 10E0 ldi R17,>L99
056A 00D0 rcall _PutStr
056C .dbline 333
056C ; PutInt(Read_data[i]);
056C CE01 movw R24,R28
056E 0496 adiw R24,4
0570 FB01 movw R30,R22
0572 E80F add R30,R24
0574 F91F adc R31,R25
0576 0081 ldd R16,z+0
0578 1127 clr R17
057A 00D0 rcall _PutInt
057C .dbline 334
057C ; Delay(100);
057C 04E6 ldi R16,100
057E 10E0 ldi R17,0
0580 00D0 rcall _Delay
0582 .dbline 335
0582 ; return 0x55;
0582 05E5 ldi R16,85
0584 14C0 rjmp L91
0586 L108:
0586 L105:
0586 .dbline 325
0586 C501 movw R24,R10
0588 0196 adiw R24,1
058A 5C01 movw R10,R24
058C L107:
058C .dbline 325
058C C501 movw R24,R10
058E 8830 cpi R24,8
0590 E1E0 ldi R30,1
0592 9E07 cpc R25,R30
0594 08F4 brsh X7
0596 CFCF rjmp L104
0598 X7:
0598 .dbline 339
0598 L101:
0598 .dbline 320
0598 6F5F subi R22,255 ; offset = 1
059A 7F4F sbci R23,255
059C L103:
059C .dbline 320
059C 6830 cpi R22,8
059E E0E0 ldi R30,0
05A0 7E07 cpc R23,R30
05A2 08F4 brsh X8
05A4 B4CF rjmp L100
05A6 X8:
05A6 .dbline 340
05A6 ;
05A6 ; }
05A6 ;
05A6 ; }
05A6 ; Delay(100);
05A6 04E6 ldi R16,100
05A8 10E0 ldi R17,0
05AA 00D0 rcall _Delay
05AC .dbline 341
05AC ; return tempdata;
05AC 042F mov R16,R20
05AE .dbline -2
05AE L91:
05AE EF96 adiw R28,63
05B0 EF96 adiw R28,63
05B2 EF96 adiw R28,63
05B4 EF96 adiw R28,63
05B6 6096 adiw R28,16 ; offset = 268
05B8 00D0 rcall pop_gset4
05BA .dbline 0 ; func end
05BA 0895 ret
05BC .dbsym r tempdata 20 i
05BC .dbsym l Read_data 4 A[264:264]c
05BC .dbsym r i 22 i
05BC .dbsym r n 10 i
05BC .dbsym r Block_Add 12 c
05BC .dbend
.area data(ram, con, rel)
0000 .dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\AT45DB021.c
0000 L110:
0000 .blkb 11
.area idata
0000 4572726F72205061676500 .byte 'E,'r,'r,'o,'r,32,'P,'a,'g,'e,0
.area data(ram, con, rel)
000B .dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\AT45DB021.c
000B L99:
000B .blkb 11
.area idata
000B 4572726F72204461746100 .byte 'E,'r,'r,'o,'r,32,'D,'a,'t,'a,0
.area data(ram, con, rel)
0016 .dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\AT45DB021.c
0016 L98:
0016 .blkb 14
.area idata
0016 4572726F72204164647265737300 .byte 'E,'r,'r,'o,'r,32,'A,'d,'d,'r,'e,'s,'s,0
.area data(ram, con, rel)
0024 .dbfile D:\Datasheet\Atmel\FROMJI~1\AVR_Demo\m8\SoftWare\AT45DB021.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -