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

📄 iis.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 TXT
📖 第 1 页 / 共 5 页
字号:
; generated by ARM C Compiler, ADS1.2 [Build 805]

; commandline [-errors .\err\iis.err -O0 -asm -g+ -cpu ARM920T -fs "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
                          CODE32

                          AREA ||.text||, CODE, READONLY

                  IIS_Test PROC
;;;72     void IIS_Test(void)
;;;73     {
                  |L1.0|
000000  e92d4010          STMFD    sp!,{r4,lr}
;;;74     	int i;
;;;75     		
;;;76     	while(1)
000004  e1a00000          NOP      
                  |L1.8|
000008  e1a00000          NOP      
;;;77     	{
;;;78     		i=0;
00000c  e3a04000          MOV      r4,#0
;;;79     		Uart_Printf("\n\n================== IIS Function Test =====================\n\n");
000010  e28f00a0          ADR      r0,|L1.184|
000014  ebfffffe          BL       Uart_Printf
;;;80     		
;;;81     		while(1)
000018  e1a00000          NOP      
                  |L1.28|
00001c  e1a00000          NOP      
;;;82     		{   //display menu
;;;83     			Uart_Printf("%2d:%s",i,func_iis_test[i][1]);
000020  e59f00d0          LDR      r0,|L1.248|
000024  e0800184          ADD      r0,r0,r4,LSL #3
000028  e1a01004          MOV      r1,r4
00002c  e5902004          LDR      r2,[r0,#4]
000030  e28f00c4          ADR      r0,|L1.252|
000034  ebfffffe          BL       Uart_Printf
;;;84     			i++;
000038  e2844001          ADD      r4,r4,#1
;;;85     			if((int)(func_iis_test[i][0])==0)
00003c  e59f00b4          LDR      r0,|L1.248|
000040  e7900184          LDR      r0,[r0,r4,LSL #3]
000044  e3500000          CMP      r0,#0
000048  1a000002          BNE      |L1.88|
;;;86     			{
;;;87     				Uart_Printf("\n");
00004c  e28f00b0          ADR      r0,|L1.260|
000050  ebfffffe          BL       Uart_Printf
;;;88     				break;
000054  ea000004          B        |L1.108|
;;;89     			}
;;;90     			if((i%2)==0)
                  |L1.88|
000058  e3140001          TST      r4,#1
00005c  1a000001          BNE      |L1.104|
;;;91     			Uart_Printf("\n");
000060  e28f009c          ADR      r0,|L1.260|
000064  ebfffffe          BL       Uart_Printf
;;;92     		}
                  |L1.104|
000068  eaffffeb          B        |L1.28|
;;;93     		Uart_Printf("\n==========================================================\n");
                  |L1.108|
00006c  e28f0094          ADR      r0,|L1.264|
000070  ebfffffe          BL       Uart_Printf
;;;94     		Uart_Printf("\nPress Enter key to exit : ");
000074  e28f00cc          ADR      r0,|L1.328|
000078  ebfffffe          BL       Uart_Printf
;;;95     		i = Uart_GetIntNum();
00007c  ebfffffe          BL       Uart_GetIntNum
000080  e1a04000          MOV      r4,r0
;;;96     		if(i==-1) break;		// return.
000084  e3740001          CMN      r4,#1
000088  1a000000          BNE      |L1.144|
00008c  ea000008          B        |L1.180|
;;;97     		if(i>=0 && (i<((sizeof(func_iis_test)-1)/8)) )	// select and execute...
                  |L1.144|
000090  e3540000          CMP      r4,#0
000094  ba000005          BLT      |L1.176|
000098  e3540003          CMP      r4,#3
00009c  2a000003          BCS      |L1.176|
;;;98     			( (void (*)(void)) (func_iis_test[i][0]) )();
0000a0  e59f1050          LDR      r1,|L1.248|
0000a4  e7910184          LDR      r0,[r1,r4,LSL #3]
0000a8  e1a0e00f          MOV      lr,pc
0000ac  e1a0f000          MOV      pc,r0
;;;99     	}
                  |L1.176|
0000b0  eaffffd4          B        |L1.8|
;;;100    	
;;;101    }
                  |L1.180|
0000b4  e8bd8010          LDMFD    sp!,{r4,pc}
                  |L1.184|
0000b8  3d3d0a0a          DCB      "\n\n=="
0000bc  3d3d3d3d          DCB      "===="
0000c0  3d3d3d3d          DCB      "===="
0000c4  3d3d3d3d          DCB      "===="
0000c8  3d3d3d3d          DCB      "===="
0000cc  53494920          DCB      " IIS"
0000d0  6e754620          DCB      " Fun"
0000d4  6f697463          DCB      "ctio"
0000d8  6554206e          DCB      "n Te"
0000dc  3d207473          DCB      "st ="
0000e0  3d3d3d3d          DCB      "===="
0000e4  3d3d3d3d          DCB      "===="
0000e8  3d3d3d3d          DCB      "===="
0000ec  3d3d3d3d          DCB      "===="
0000f0  3d3d3d3d          DCB      "===="
0000f4  00000a0a          DCB      "\n\n\0\0"
                  |L1.248|
0000f8  00000000          DCD      func_iis_test
                  |L1.252|
0000fc  3a643225          DCB      "%2d:"
000100  00007325          DCB      "%s\0\0"
                  |L1.260|
000104  0000000a          DCB      "\n\0\0\0"
                  |L1.264|
000108  3d3d3d0a          DCB      "\n==="
00010c  3d3d3d3d          DCB      "===="
000110  3d3d3d3d          DCB      "===="
000114  3d3d3d3d          DCB      "===="
000118  3d3d3d3d          DCB      "===="
00011c  3d3d3d3d          DCB      "===="
000120  3d3d3d3d          DCB      "===="
000124  3d3d3d3d          DCB      "===="
000128  3d3d3d3d          DCB      "===="
00012c  3d3d3d3d          DCB      "===="
000130  3d3d3d3d          DCB      "===="
000134  3d3d3d3d          DCB      "===="
000138  3d3d3d3d          DCB      "===="
00013c  3d3d3d3d          DCB      "===="
000140  0a3d3d3d          DCB      "===\n"
000144  00000000          DCB      "\0\0\0\0"
                  |L1.328|
000148  6572500a          DCB      "\nPre"
00014c  45207373          DCB      "ss E"
000150  7265746e          DCB      "nter"
000154  79656b20          DCB      " key"
000158  206f7420          DCB      " to "
00015c  74697865          DCB      "exit"
000160  00203a20          DCB      " : \0"
                          ENDP

                  IIS_Port_Return PROC
;;;195    void IIS_Port_Return(void)
;;;196    {
000164  e59f03b0          LDR      r0,|L1.1308|
;;;197    	rGPBCON = save_B;
000168  e5900000          LDR      r0,[r0,#0]  ; save_B
00016c  e3a01456          MOV      r1,#0x56000000
000170  e5810010          STR      r0,[r1,#0x10]
;;;198        	rGPECON = save_E;
000174  e59f03a4          LDR      r0,|L1.1312|
000178  e5900000          LDR      r0,[r0,#0]  ; save_E
00017c  e3a01456          MOV      r1,#0x56000000
000180  e5810040          STR      r0,[r1,#0x40]
;;;199        	rGPBUP  = save_PB;
000184  e59f0398          LDR      r0,|L1.1316|
000188  e5900000          LDR      r0,[r0,#0]  ; save_PB
00018c  e3a01456          MOV      r1,#0x56000000
000190  e5810018          STR      r0,[r1,#0x18]
;;;200        	rGPEUP  = save_PE;
000194  e59f038c          LDR      r0,|L1.1320|
000198  e5900000          LDR      r0,[r0,#0]  ; save_PE
00019c  e3a01456          MOV      r1,#0x56000000
0001a0  e5810048          STR      r0,[r1,#0x48]
;;;201    }
0001a4  e1a0f00e          MOV      pc,lr
                          ENDP

                  _WrL3Data PROC
;;;504    void _WrL3Data(U8 data,int halt)
;;;505    {
0001a8  e52de004          STR      lr,[sp,#-4]!
;;;506     	S32 i,j;
;;;507    
;;;508        	if(halt)
0001ac  e3510000          CMP      r1,#0
0001b0  0a00000a          BEQ      |L1.480|
;;;509        	{
;;;510    	  	rGPBDAT  = rGPBDAT & ~(L3D | L3M | L3C) | L3C;   //L3C=H(while tstp, L3 interface halt condition)	  
0001b4  e3a0c456          MOV      r12,#0x56000000
0001b8  e59cc014          LDR      r12,[r12,#0x14]
0001bc  e3ccc01c          BIC      r12,r12,#0x1c
0001c0  e38cc010          ORR      r12,r12,#0x10
0001c4  e3a0e456          MOV      lr,#0x56000000
0001c8  e58ec014          STR      r12,[lr,#0x14]
;;;511    	  	for(j=0;j<4;j++);		//tstp(L3) > 190ns
0001cc  e3a02000          MOV      r2,#0
                  |L1.464|
0001d0  e3520004          CMP      r2,#4
0001d4  aa000001          BGE      |L1.480|
0001d8  e2822001          ADD      r2,r2,#1
0001dc  eafffffb          B        |L1.464|
;;;512        	}
;;;513    
;;;514        	rGPBDAT  = rGPBDAT & ~(L3D | L3M | L3C) | (L3C | L3M);   //L3M=H(in data transfer mode)	  
                  |L1.480|
0001e0  e3a0c456          MOV      r12,#0x56000000
0001e4  e59cc014          LDR      r12,[r12,#0x14]
0001e8  e3ccc01c          BIC      r12,r12,#0x1c
0001ec  e38cc014          ORR      r12,r12,#0x14
0001f0  e3a0e456          MOV      lr,#0x56000000
0001f4  e58ec014          STR      r12,[lr,#0x14]
;;;515        	for(j=0;j<4;j++);		//tsu(L3)D > 190ns
0001f8  e3a02000          MOV      r2,#0
                  |L1.508|
0001fc  e3520004          CMP      r2,#4
000200  aa000001          BGE      |L1.524|
000204  e2822001          ADD      r2,r2,#1
000208  eafffffb          B        |L1.508|
;;;516    
;;;517    	//GPB[4:2]=L3C:L3D:L3M
;;;518        	for(i=0;i<8;i++)
                  |L1.524|
00020c  e3a03000          MOV      r3,#0
                  |L1.528|
000210  e3530008          CMP      r3,#8
000214  aa00003d          BGE      |L1.784|
000218  ea000001          B        |L1.548|
                  |L1.540|
00021c  e2833001          ADD      r3,r3,#1
000220  eafffffa          B        |L1.528|
;;;519        	{
;;;520    	  	if(data & 0x1)	//if data's LSB is 'H'
                  |L1.548|
000224  e3100001          TST      r0,#1
000228  0a000018          BEQ      |L1.656|
;;;521    	  	{
;;;522    	     		rGPBDAT &= ~L3C;		//L3C=L
00022c  e3a0c456          MOV      r12,#0x56000000
000230  e59cc014          LDR      r12,[r12,#0x14]
000234  e3ccc010          BIC      r12,r12,#0x10
000238  e3a0e456          MOV      lr,#0x56000000
00023c  e58ec014          STR      r12,[lr,#0x14]
;;;523    	     		rGPBDAT |= L3D;			//L3D=H
000240  e3a0c456          MOV      r12,#0x56000000
000244  e59cc014          LDR      r12,[r12,#0x14]
000248  e38cc008          ORR      r12,r12,#8
00024c  e3a0e456          MOV      lr,#0x56000000
000250  e58ec014          STR      r12,[lr,#0x14]
;;;524    
;;;525    	     		for(j=0;j<4;j++);			//tcy(L3) > 500ns
000254  e3a02000          MOV      r2,#0
                  |L1.600|
000258  e3520004          CMP      r2,#4
00025c  aa000001          BGE      |L1.616|
000260  e2822001          ADD      r2,r2,#1
000264  eafffffb          B        |L1.600|
;;;526    	     		rGPBDAT |= (L3C | L3D);	//L3C=H,L3D=H
                  |L1.616|
000268  e3a0c456          MOV      r12,#0x56000000
00026c  e59cc014          LDR      r12,[r12,#0x14]
000270  e38cc018          ORR      r12,r12,#0x18
000274  e3a0e456          MOV      lr,#0x56000000
000278  e58ec014          STR      r12,[lr,#0x14]
;;;527    	     		for(j=0;j<4;j++);		 	//tcy(L3) > 500ns
00027c  e3a02000          MOV      r2,#0
                  |L1.640|
000280  e3520004          CMP      r2,#4
000284  aa00001f          BGE      |L1.776|
000288  e2822001          ADD      r2,r2,#1
00028c  eafffffb          B        |L1.640|
;;;528    	  	}
;;;529    	  	else		//If data's LSB is 'L'
;;;530    	  	{
;;;531    	     		rGPBDAT &= ~L3C;	//L3C=L
                  |L1.656|
000290  e3a0c456          MOV      r12,#0x56000000
000294  e59cc014          LDR      r12,[r12,#0x14]
000298  e3ccc010          BIC      r12,r12,#0x10
00029c  e3a0e456          MOV      lr,#0x56000000
0002a0  e58ec014          STR      r12,[lr,#0x14]
;;;532    	     		rGPBDAT &= ~L3D;	//L3D=L
0002a4  e3a0c456          MOV      r12,#0x56000000
0002a8  e59cc014          LDR      r12,[r12,#0x14]
0002ac  e3ccc008          BIC      r12,r12,#8
0002b0  e3a0e456          MOV      lr,#0x56000000
0002b4  e58ec014          STR      r12,[lr,#0x14]
;;;533    	     		for(j=0;j<4;j++);		//tcy(L3) > 500ns
0002b8  e3a02000          MOV      r2,#0
                  |L1.700|
0002bc  e3520004          CMP      r2,#4
0002c0  aa000001          BGE      |L1.716|
0002c4  e2822001          ADD      r2,r2,#1
0002c8  eafffffb          B        |L1.700|
;;;534    	     		rGPBDAT |= L3C;		//L3C=H
                  |L1.716|
0002cc  e3a0c456          MOV      r12,#0x56000000
0002d0  e59cc014          LDR      r12,[r12,#0x14]
0002d4  e38cc010          ORR      r12,r12,#0x10
0002d8  e3a0e456          MOV      lr,#0x56000000
0002dc  e58ec014          STR      r12,[lr,#0x14]
;;;535    	     		rGPBDAT &= ~L3D;	//L3D=L
0002e0  e3a0c456          MOV      r12,#0x56000000
0002e4  e59cc014          LDR      r12,[r12,#0x14]
0002e8  e3ccc008          BIC      r12,r12,#8
0002ec  e3a0e456          MOV      lr,#0x56000000
0002f0  e58ec014          STR      r12,[lr,#0x14]
;;;536    	     		for(j=0;j<4;j++);		//tcy(L3) > 500ns

⌨️ 快捷键说明

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