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

📄 main.txt

📁 使用STR710的SPI接口访问外部EEPROM的例子程序.使用KEIL UV3编译.使用了MDK3.05操作系统.
💻 TXT
📖 第 1 页 / 共 5 页
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.0 [Build 951] for uVision
; commandline ArmCC [--thumb --debug -c --asm --interleave -o.\output\main.o --feedback=.\output\Testat45db161.fed --device=DARMST --apcs=interwork -O0 -Id:\Keil\ARM\INC\ST\71x src\app\main.c]

                          THUMB

                          AREA ||.text.7||, CODE, READONLY, ALIGN=2

                  Interrupts_init PROC
;;;290    	
;;;291    	EIC->IVR = ( u32 )IRQ_UART0_RXD;
000000  489e              LDR      r0,|L1.636|
000002  499f              LDR      r1,|L1.640|
000004  6188              STR      r0,[r1,#0x18]
;;;292    	EIC->SIR[UART0_IRQChannel] = ( 8 | ( ( u32 )IRQ_UART0_RXD << 16 ) );	
000006  0401              LSLS     r1,r0,#16
000008  2008              MOVS     r0,#8
00000a  4301              ORRS     r1,r1,r0
00000c  489c              LDR      r0,|L1.640|
00000e  3060              ADDS     r0,r0,#0x60
000010  6241              STR      r1,[r0,#0x24]
;;;293    	EIC_IRQChannelConfig( UART0_IRQChannel, ENABLE );
000012  46c0              MOV      r8,r8
000014  2001              MOVS     r0,#1
000016  2801              CMP      r0,#1
000018  d108              BNE      |L1.44|
00001a  4899              LDR      r0,|L1.640|
00001c  6a01              LDR      r1,[r0,#0x20]
00001e  2209              MOVS     r2,#9
000020  2001              MOVS     r0,#1
000022  4090              LSLS     r0,r0,r2
000024  4301              ORRS     r1,r1,r0
000026  4896              LDR      r0,|L1.640|
000028  6201              STR      r1,[r0,#0x20]
00002a  e007              B        |L1.60|
                  |L1.44|
00002c  4894              LDR      r0,|L1.640|
00002e  6a01              LDR      r1,[r0,#0x20]
000030  2209              MOVS     r2,#9
000032  2001              MOVS     r0,#1
000034  4090              LSLS     r0,r0,r2
000036  4381              BICS     r1,r1,r0
000038  4891              LDR      r0,|L1.640|
00003a  6201              STR      r1,[r0,#0x20]
                  |L1.60|
00003c  46c0              MOV      r8,r8
;;;294    }
00003e  4770              BX       lr
                          ENDP

                  LED_A_flash PROC
;;;298    void LED_A_flash (void) __task		   //for test
;;;299    {
000040  b510              PUSH     {r4,lr}
000042  4b90              LDR      r3,|L1.644|
000044  449d              ADD      sp,sp,r3
;;;300    	//u8 i;
;;;301    	//u16 page;
;;;302    	u8 cmd;
;;;303    	u8 array1[10]={0,0,0,0,0,0,0,0,0,0};
000046  4890              LDR      r0,|L1.648|
000048  4468              ADD      r0,r0,sp
00004a  2100              MOVS     r1,#0
00004c  000a              MOVS     r2,r1
00004e  000b              MOVS     r3,r1
000050  c00e              STM      r0!,{r1-r3}
;;;304    	u8 array2[10]={10,9,8,7,6,5,4,3,2,1};
000052  3818              SUBS     r0,r0,#0x18
000054  a18d              ADR      r1,|L1.652|
000056  c91c              LDM      r1!,{r2-r4}
000058  c01c              STM      r0!,{r2-r4}
;;;305    	
;;;306    	u8 RData[3160];
;;;307    	memset(RData ,0, 3160);
00005a  498b              LDR      r1,|L1.648|
00005c  390c              SUBS     r1,r1,#0xc
00005e  4668              MOV      r0,sp
000060  f7ff fffe         BL       __aeabi_memclr4
;;;308    	for(;;)
000064  46c0              MOV      r8,r8
;;;309    	{
;;;310    		while ( query_rxdbuf_received_byte( UART_232 ) )	 //查询接收缓冲区收到的字节数
                  |L1.102|
000066  e0a2              B        |L1.430|
;;;311    			  //   page=j;
;;;312    		{
;;;313    			cmd = read_byte_from_UARTbuf( UART_232, 0 ); // 从接收缓冲区读取一个字节,不丢弃
                  |L1.104|
000068  2100              MOVS     r1,#0
00006a  0008              MOVS     r0,r1
00006c  f7ff fffe         BL       read_byte_from_UARTbuf
000070  0004              MOVS     r4,r0
;;;314    			Discard_nbyte_rxdbuf( UART_232, 1 ); //从接收缓冲区丢弃1个字节
000072  2101              MOVS     r1,#1
000074  2000              MOVS     r0,#0
000076  f7ff fffe         BL       Discard_nbyte_rxdbuf
;;;315    
;;;316    			if(cmd == 0x50)		  //读写绝对地址数据
00007a  2c50              CMP      r4,#0x50
00007c  d118              BNE      |L1.176|
;;;317    			{
;;;318    				
;;;319    				WriteDataToFlash(ADDR,array2,10);
00007e  220a              MOVS     r2,#0xa
000080  4985              LDR      r1,|L1.664|
000082  4469              ADD      r1,r1,sp
000084  4885              LDR      r0,|L1.668|
000086  f7ff fffe         BL       WriteDataToFlash
;;;320    				os_dly_wait(3);
00008a  2003              MOVS     r0,#3
00008c  f7ff fffe         BL       os_dly_wait
;;;321    				ReadDataFromFlash(ADDR, array1, 10);
000090  220a              MOVS     r2,#0xa
000092  497d              LDR      r1,|L1.648|
000094  4469              ADD      r1,r1,sp
000096  4881              LDR      r0,|L1.668|
000098  f7ff fffe         BL       ReadDataFromFlash
;;;322    				os_dly_wait(3);
00009c  2003              MOVS     r0,#3
00009e  f7ff fffe         BL       os_dly_wait
;;;323    				UART_send_mbytes( UART_232, array1, 10 );    //向RS232通道发送array1数据
0000a2  220a              MOVS     r2,#0xa
0000a4  4978              LDR      r1,|L1.648|
0000a6  4469              ADD      r1,r1,sp
0000a8  2000              MOVS     r0,#0
0000aa  f7ff fffe         BL       UART_send_mbytes
0000ae  e07a              B        |L1.422|
;;;324    			}
;;;325    			else if(cmd == 0x60)	//读写相对地址数据
                  |L1.176|
0000b0  2c60              CMP      r4,#0x60
0000b2  d11a              BNE      |L1.234|
;;;326    			{
;;;327    				
;;;328    				WriteMultiByteToMainMemory (9, 0, array2,10);
0000b4  4a78              LDR      r2,|L1.664|
0000b6  446a              ADD      r2,r2,sp
0000b8  2100              MOVS     r1,#0
0000ba  2009              MOVS     r0,#9
0000bc  230a              MOVS     r3,#0xa
0000be  f7ff fffe         BL       WriteMultiByteToMainMemory
;;;329    				os_dly_wait(3);
0000c2  2003              MOVS     r0,#3
0000c4  f7ff fffe         BL       os_dly_wait
;;;330    				ReadMultiByteFromMainMemory(9, 0, array1,10);
0000c8  4a6f              LDR      r2,|L1.648|
0000ca  446a              ADD      r2,r2,sp
0000cc  2100              MOVS     r1,#0
0000ce  2009              MOVS     r0,#9
0000d0  230a              MOVS     r3,#0xa
0000d2  f7ff fffe         BL       ReadMultiByteFromMainMemory
;;;331    				os_dly_wait(3);
0000d6  2003              MOVS     r0,#3
0000d8  f7ff fffe         BL       os_dly_wait
;;;332    				UART_send_mbytes( UART_232, array1, 10 );    //向RS232通道发送array1数据
0000dc  220a              MOVS     r2,#0xa
0000de  496a              LDR      r1,|L1.648|
0000e0  4469              ADD      r1,r1,sp
0000e2  2000              MOVS     r0,#0
0000e4  f7ff fffe         BL       UART_send_mbytes
0000e8  e05d              B        |L1.422|
;;;333    			}
;;;334    			else if(cmd == 0x70)	 //页读写
                  |L1.234|
0000ea  2c70              CMP      r4,#0x70
0000ec  d115              BNE      |L1.282|
;;;335    			{
;;;336    				WritePageData( CODE1_PAGE_NUMBER, Code1, CODE1_LENGTH );    //写code1数组
0000ee  4a6c              LDR      r2,|L1.672|
0000f0  496c              LDR      r1,|L1.676|
0000f2  2001              MOVS     r0,#1
0000f4  f7ff fffe         BL       WritePageData
;;;337    				os_dly_wait(100);
0000f8  2064              MOVS     r0,#0x64
0000fa  f7ff fffe         BL       os_dly_wait
;;;338    				ReadPageData( CODE1_PAGE_NUMBER, CODE1_LENGTH, RData);	   //读回数据
0000fe  466a              MOV      r2,sp
000100  4967              LDR      r1,|L1.672|
000102  2001              MOVS     r0,#1
000104  f7ff fffe         BL       ReadPageData
;;;339    				os_dly_wait(100);
000108  2064              MOVS     r0,#0x64
00010a  f7ff fffe         BL       os_dly_wait
;;;340    				UART_send_mbytes( UART_232, RData, CODE1_LENGTH );    //向RS232通道发送RData数据
00010e  4a64              LDR      r2,|L1.672|
000110  4669              MOV      r1,sp
000112  2000              MOVS     r0,#0
000114  f7ff fffe         BL       UART_send_mbytes
000118  e045              B        |L1.422|
;;;341    			}
;;;342    			
;;;343    			else if(cmd == 0x80)   	 //页读写
                  |L1.282|
00011a  2c80              CMP      r4,#0x80
00011c  d11a              BNE      |L1.340|
;;;344    			{
;;;345    				WritePageData( CODE2_PAGE_NUMBER, Code2, CODE2_LENGTH );    //写code2数组
00011e  22c5              MOVS     r2,#0xc5
000120  0112              LSLS     r2,r2,#4
000122  4961              LDR      r1,|L1.680|
000124  2003              MOVS     r0,#3
000126  f7ff fffe         BL       WritePageData
;;;346    				os_dly_wait(300);
00012a  20ff              MOVS     r0,#0xff
00012c  302d              ADDS     r0,r0,#0x2d
00012e  f7ff fffe         BL       os_dly_wait
;;;347    				ReadPageData( CODE2_PAGE_NUMBER, CODE2_LENGTH, RData);	   //读回数据
000132  466a              MOV      r2,sp
000134  21c5              MOVS     r1,#0xc5
000136  0109              LSLS     r1,r1,#4
000138  2003              MOVS     r0,#3
00013a  f7ff fffe         BL       ReadPageData
;;;348    				os_dly_wait(300);
00013e  20ff              MOVS     r0,#0xff
000140  302d              ADDS     r0,r0,#0x2d
000142  f7ff fffe         BL       os_dly_wait
;;;349    				UART_send_mbytes( UART_232, RData, CODE2_LENGTH );    //向RS232通道发送RData数据
000146  22c5              MOVS     r2,#0xc5
000148  0112              LSLS     r2,r2,#4
00014a  4669              MOV      r1,sp
00014c  2000              MOVS     r0,#0
00014e  f7ff fffe         BL       UART_send_mbytes
000152  e028              B        |L1.422|
;;;350    				
;;;351    			}
;;;352    			
;;;353    			else if(cmd == 0x90)     //刷除测试
                  |L1.340|
000154  2c90              CMP      r4,#0x90
000156  d115              BNE      |L1.388|
;;;354    			{
;;;355    				ErasePage(2);
000158  2002              MOVS     r0,#2
00015a  f7ff fffe         BL       ErasePage
;;;356    				os_dly_wait(10);
00015e  200a              MOVS     r0,#0xa
000160  f7ff fffe         BL       os_dly_wait
;;;357    				ReadPageData( 2, 528, RData);	   //读回数据
000164  466a              MOV      r2,sp
000166  2121              MOVS     r1,#0x21
000168  0109              LSLS     r1,r1,#4
00016a  2002              MOVS     r0,#2
00016c  f7ff fffe         BL       ReadPageData
;;;358    				os_dly_wait(20);
000170  2014              MOVS     r0,#0x14
000172  f7ff fffe         BL       os_dly_wait
;;;359    				UART_send_mbytes( UART_232, RData, 528 );    //向RS232通道发送528个数据
000176  2221              MOVS     r2,#0x21
000178  0112              LSLS     r2,r2,#4
00017a  4669              MOV      r1,sp
00017c  2000              MOVS     r0,#0
00017e  f7ff fffe         BL       UART_send_mbytes
000182  e010              B        |L1.422|
;;;360    			}
;;;361    			else if(cmd == 0x40)     //
                  |L1.388|
000184  2c40              CMP      r4,#0x40
000186  d10e              BNE      |L1.422|
;;;362    			{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -