📄 at45db161.txt
字号:
;;;545 return FALSE;
;;;546 }
;;;547 while ( IS_DATA_FLASH_BUSY() && i-- )
;;;548 {
;;;549 ;
;;;550 }
;;;551 if ( i == 0 )
;;;552 {
;;;553 return FALSE;
;;;554 }
;;;555 PageNum = TargetAddr / PAGE_BYTE;
;;;556 SubAddress = TargetAddr % PAGE_BYTE;
;;;557
;;;558 PageNum <<= PAGE_RL;
;;;559 AT45_Chip_Select_ENABLE;
;;;560 BPSI_DataSendReceive( CONTINUOUS_ARRAY_READ ); // 命令
;;;561 BPSI_DataSendReceive( PageNum / 256 ); // 高7位页地址
;;;562 BPSI_DataSendReceive( ( ( PageNum % 256 ) & ADDR_MASK) | ( ( SubAddress / 256 ) & (~ADDR_MASK) ) ); /*低6位页地址和高2位页内地址*/
;;;563 BPSI_DataSendReceive( SubAddress % 256 ); // 低8位页内地址
;;;564 BPSI_DataSendReceive( 0 );
;;;565 BPSI_DataSendReceive( 0 );
;;;566 BPSI_DataSendReceive( 0 );
;;;567 BPSI_DataSendReceive( 0 );
;;;568 for ( i = 0; i < data_len; i++ )
;;;569 {
;;;570 *read_data = BPSI_DataSendReceive(0xff); // 读出数据
;;;571 read_data ++;
;;;572 }
;;;573 AT45_Chip_Select_DISABLE;
;;;574 return TRUE;
;;;575 }
|L1.1566|
00061e b005 ADD sp,sp,#0x14
000620 bcf0 POP {r4-r7}
000622 bc08 POP {r3}
000624 4718 BX r3
|L1.1574|
000626 46c0 MOV r8,r8 ;547
|L1.1576|
000628 f7ff fffe BL AT45_Read_REG ;547
00062c 2180 MOVS r1,#0x80 ;547
00062e 4208 TST r0,r1 ;547
000630 d106 BNE |L1.1600| ;547
000632 9801 LDR r0,[sp,#4] ;547
000634 1e41 SUBS r1,r0,#1 ;547
000636 0609 LSLS r1,r1,#24 ;547
000638 0e09 LSRS r1,r1,#24 ;547
00063a 9101 STR r1,[sp,#4] ;547
00063c 2800 CMP r0,#0 ;547
00063e d1f3 BNE |L1.1576| ;547
|L1.1600|
000640 9801 LDR r0,[sp,#4] ;551
000642 2800 CMP r0,#0 ;551
000644 d100 BNE |L1.1608| ;551
000646 e7ea B |L1.1566| ;553
|L1.1608|
000648 2121 MOVS r1,#0x21 ;555
00064a 0109 LSLS r1,r1,#4 ;555
00064c 9802 LDR r0,[sp,#8] ;555
00064e f7ff fffe BL __aeabi_uidivmod ;555
000652 0404 LSLS r4,r0,#16 ;555
000654 0c24 LSRS r4,r4,#16 ;555
000656 2121 MOVS r1,#0x21 ;556
000658 0109 LSLS r1,r1,#4 ;556
00065a 9802 LDR r0,[sp,#8] ;556
00065c f7ff fffe BL __aeabi_uidivmod ;556
000660 040f LSLS r7,r1,#16 ;556
000662 0c3f LSRS r7,r7,#16 ;556
000664 04a0 LSLS r0,r4,#18 ;558
000666 0c04 LSRS r4,r0,#16 ;558
000668 4866 LDR r0,|L1.2052| ;559
00066a 8980 LDRH r0,[r0,#0xc] ;559
00066c 2101 MOVS r1,#1 ;559
00066e 03c9 LSLS r1,r1,#15 ;559
000670 4388 BICS r0,r0,r1 ;559
000672 4964 LDR r1,|L1.2052| ;559
000674 8188 STRH r0,[r1,#0xc] ;559
000676 20e8 MOVS r0,#0xe8 ;560
000678 f7ff fffe BL BPSI_DataSendReceive ;560
00067c 0025 MOVS r5,r4 ;561
00067e 17e1 ASRS r1,r4,#31 ;561
000680 0e09 LSRS r1,r1,#24 ;561
000682 1909 ADDS r1,r1,r4 ;561
000684 0409 LSLS r1,r1,#16 ;561
000686 0e08 LSRS r0,r1,#24 ;561
000688 f7ff fffe BL BPSI_DataSendReceive ;561
00068c 17e1 ASRS r1,r4,#31 ;562
00068e 0e09 LSRS r1,r1,#24 ;562
000690 1909 ADDS r1,r1,r4 ;562
000692 1209 ASRS r1,r1,#8 ;562
000694 0209 LSLS r1,r1,#8 ;562
000696 1a61 SUBS r1,r4,r1 ;562
000698 22fc MOVS r2,#0xfc ;562
00069a 4011 ANDS r1,r1,r2 ;562
00069c 17fa ASRS r2,r7,#31 ;562
00069e 0e12 LSRS r2,r2,#24 ;562
0006a0 19d2 ADDS r2,r2,r7 ;562
0006a2 1212 ASRS r2,r2,#8 ;562
0006a4 23fc MOVS r3,#0xfc ;562
0006a6 439a BICS r2,r2,r3 ;562
0006a8 4311 ORRS r1,r1,r2 ;562
0006aa 0608 LSLS r0,r1,#24 ;562
0006ac 0e00 LSRS r0,r0,#24 ;562
0006ae 9700 STR r7,[sp,#0] ;562
0006b0 f7ff fffe BL BPSI_DataSendReceive ;562
0006b4 003d MOVS r5,r7 ;563
0006b6 17f9 ASRS r1,r7,#31 ;563
0006b8 0e09 LSRS r1,r1,#24 ;563
0006ba 19c9 ADDS r1,r1,r7 ;563
0006bc 1209 ASRS r1,r1,#8 ;563
0006be 0209 LSLS r1,r1,#8 ;563
0006c0 1a79 SUBS r1,r7,r1 ;563
0006c2 0608 LSLS r0,r1,#24 ;563
0006c4 0e00 LSRS r0,r0,#24 ;563
0006c6 f7ff fffe BL BPSI_DataSendReceive ;563
0006ca 2000 MOVS r0,#0 ;564
0006cc f7ff fffe BL BPSI_DataSendReceive ;564
0006d0 2000 MOVS r0,#0 ;565
0006d2 f7ff fffe BL BPSI_DataSendReceive ;565
0006d6 2000 MOVS r0,#0 ;566
0006d8 f7ff fffe BL BPSI_DataSendReceive ;566
0006dc 2000 MOVS r0,#0 ;567
0006de f7ff fffe BL BPSI_DataSendReceive ;567
0006e2 2000 MOVS r0,#0 ;568
0006e4 9001 STR r0,[sp,#4] ;568
0006e6 e009 B |L1.1788| ;568
|L1.1768|
0006e8 20ff MOVS r0,#0xff ;570
0006ea f7ff fffe BL BPSI_DataSendReceive ;570
0006ee 7030 STRB r0,[r6,#0] ;570
0006f0 1c76 ADDS r6,r6,#1 ;571
0006f2 9801 LDR r0,[sp,#4] ;568
0006f4 1c40 ADDS r0,r0,#1 ;568
0006f6 0600 LSLS r0,r0,#24 ;568
0006f8 0e00 LSRS r0,r0,#24 ;568
0006fa 9001 STR r0,[sp,#4] ;568
|L1.1788|
0006fc 9904 LDR r1,[sp,#0x10] ;568
0006fe 9801 LDR r0,[sp,#4] ;568
000700 4288 CMP r0,r1 ;568
000702 dbf1 BLT |L1.1768| ;568
000704 483f LDR r0,|L1.2052| ;573
000706 8980 LDRH r0,[r0,#0xc] ;573
000708 2101 MOVS r1,#1 ;573
00070a 03c9 LSLS r1,r1,#15 ;573
00070c 4308 ORRS r0,r0,r1 ;573
00070e 493d LDR r1,|L1.2052| ;573
000710 8188 STRH r0,[r1,#0xc] ;573
000712 2001 MOVS r0,#1 ;574
000714 e783 B |L1.1566| ;574
ENDP
ReadPageData PROC
;;;611 u8 ReadPageData( u16 PageNum, u16 nByte, u8 *msg)
;;;612 {
000716 b5f7 PUSH {r0-r2,r4-r7,lr}
000718 b081 SUB sp,sp,#4
00071a 0005 MOVS r5,r0
;;;613
;;;614 u16 i;
;;;615 u8 SubAddress = 0;
00071c 2400 MOVS r4,#0
;;;616 i = 255;
00071e 20ff MOVS r0,#0xff
000720 9000 STR r0,[sp,#0]
;;;617
;;;618 while ( IS_DATA_FLASH_BUSY() && i-- )
000722 46c0 MOV r8,r8
|L1.1828|
000724 f7ff fffe BL AT45_Read_REG
000728 2180 MOVS r1,#0x80
00072a 4208 TST r0,r1
00072c d106 BNE |L1.1852|
00072e 9800 LDR r0,[sp,#0]
000730 1e41 SUBS r1,r0,#1
000732 0409 LSLS r1,r1,#16
000734 0c09 LSRS r1,r1,#16
000736 9100 STR r1,[sp,#0]
000738 2800 CMP r0,#0
00073a d1f3 BNE |L1.1828|
;;;619 {
;;;620 ;
;;;621 }
;;;622 if ( i == 0 )
|L1.1852|
00073c 9800 LDR r0,[sp,#0]
00073e 2800 CMP r0,#0
000740 d103 BNE |L1.1866|
;;;623 {
;;;624 return FALSE;
;;;625 }
;;;626 PageNum <<= PAGE_RL;
;;;627 AT45_Chip_Select_ENABLE;
;;;628 BPSI_DataSendReceive( CONTINUOUS_ARRAY_READ ); // 命令
;;;629 BPSI_DataSendReceive( PageNum / 256 ); // 高7位页地址
;;;630 BPSI_DataSendReceive( ( ( PageNum % 256 ) & ADDR_MASK) | ( ( SubAddress / 256 ) & (~ADDR_MASK) ) );
;;;631 /*低6位页地址和高2位页内地址*/
;;;632 BPSI_DataSendReceive( SubAddress % 256 ); // 低8位页内地址
;;;633 BPSI_DataSendReceive( 0 );
;;;634 BPSI_DataSendReceive( 0 );
;;;635 BPSI_DataSendReceive( 0 );
;;;636 BPSI_DataSendReceive( 0 );
;;;637 for ( i = 0; i < nByte; i++ )
;;;638 {
;;;639 *msg = BPSI_DataSendReceive(0xff); // 读出数据
;;;640 msg ++;
;;;641 }
;;;642 AT45_Chip_Select_DISABLE;
;;;643 return TRUE;
;;;644
;;;645 }
|L1.1858|
000742 b004 ADD sp,sp,#0x10
000744 bcf0 POP {r4-r7}
000746 bc08 POP {r3}
000748 4718 BX r3
|L1.1866|
00074a 04a8 LSLS r0,r5,#18 ;626
00074c 0c05 LSRS r5,r0,#16 ;626
00074e 482d LDR r0,|L1.2052| ;627
000750 8980 LDRH r0,[r0,#0xc] ;627
000752 2101 MOVS r1,#1 ;627
000754 03c9 LSLS r1,r1,#15 ;627
000756 4388 BICS r0,r0,r1 ;627
000758 492a LDR r1,|L1.2052| ;627
00075a 8188 STRH r0,[r1,#0xc] ;627
00075c 20e8 MOVS r0,#0xe8 ;628
00075e f7ff fffe BL BPSI_DataSendReceive ;628
000762 002e MOVS r6,r5 ;629
000764 17e9 ASRS r1,r5,#31 ;629
000766 0e09 LSRS r1,r1,#24 ;629
000768 1949 ADDS r1,r1,r5 ;629
00076a 0409 LSLS r1,r1,#16 ;629
00076c 0e08 LSRS r0,r1,#24 ;629
00076e f7ff fffe BL BPSI_DataSendReceive ;629
000772 002f MOVS r7,r5 ;630
000774 17e9 ASRS r1,r5,#31 ;630
000776 0e09 LSRS r1,r1,#24 ;630
000778 1949 ADDS r1,r1,r5 ;630
00077a 1209 ASRS r1,r1,#8 ;630
00077c 0209 LSLS r1,r1,#8 ;630
00077e 1a69 SUBS r1,r5,r1 ;630
000780 22fc MOVS r2,#0xfc ;630
000782 4011 ANDS r1,r1,r2 ;630
000784 0026 MOVS r6,r4 ;630
000786 17e2 ASRS r2,r4,#31 ;630
000788 0e12 LSRS r2,r2,#24 ;630
00078a 1912 ADDS r2,r2,r4 ;630
00078c 1212 ASRS r2,r2,#8 ;630
00078e 23fc MOVS r3,#0xfc ;630
000790 439a BICS r2,r2,r3 ;630
000792 4311 ORRS r1,r1,r2 ;630
000794 0608 LSLS r0,r1,#24 ;630
000796 0e00 LSRS r0,r0,#24 ;630
000798 f7ff fffe BL BPSI_DataSendReceive ;630
00079c 17e1 ASRS r1,r4,#31 ;632
00079e 0e09 LSRS r1,r1,#24 ;632
0007a0 1909 ADDS r1,r1,r4 ;632
0007a2 1209 ASRS r1,r1,#8 ;632
0007a4 0209 LSLS r1,r1,#8 ;632
0007a6 1a61 SUBS r1,r4,r1 ;632
0007a8 0608 LSLS r0,r1,#24 ;632
0007aa 0e00 LSRS r0,r0,#24 ;632
0007ac f7ff fffe BL BPSI_DataSendReceive ;632
0007b0 2000 MOVS r0,#0 ;633
0007b2 f7ff fffe BL BPSI_DataSendReceive ;633
0007b6 2000 MOVS r0,#0 ;634
0007b8 f7ff fffe
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -