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

📄 at45db161.txt

📁 使用STR710的SPI接口访问外部EEPROM的例子程序.使用KEIL UV3编译.使用了MDK3.05操作系统.
💻 TXT
📖 第 1 页 / 共 5 页
字号:
;;;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 + -