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

📄 irda.txt

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

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

                          AREA ||.text||, CODE, READONLY

                  IrDA_Test PROC
;;;35     void IrDA_Test(void)
;;;36     {
                  |L1.0|
000000  e92d4010          STMFD    sp!,{r4,lr}
;;;37     	int i;
;;;38     	
;;;39     	Uart_Printf("\n======  IrDA Test program start ======\n");
000004  e28f00b4          ADR      r0,|L1.192|
000008  ebfffffe          BL       Uart_Printf
;;;40     		
;;;41     	while(1)
00000c  e1a00000          NOP      
                  |L1.16|
000010  e1a00000          NOP      
;;;42     	{
;;;43     		i=0;
000014  e3a04000          MOV      r4,#0
;;;44     		Uart_Printf("\n\n");
000018  e28f00cc          ADR      r0,|L1.236|
00001c  ebfffffe          BL       Uart_Printf
;;;45     		while(1)
000020  e1a00000          NOP      
                  |L1.36|
000024  e1a00000          NOP      
;;;46     		{   //display menu
;;;47     			Uart_Printf("%2d:%s",i,func_irda_test[i][1]);
000028  e59f00c0          LDR      r0,|L1.240|
00002c  e0800184          ADD      r0,r0,r4,LSL #3
000030  e1a01004          MOV      r1,r4
000034  e5902004          LDR      r2,[r0,#4]
000038  e28f00b4          ADR      r0,|L1.244|
00003c  ebfffffe          BL       Uart_Printf
;;;48     			i++;
000040  e2844001          ADD      r4,r4,#1
;;;49     			if((int)(func_irda_test[i][0])==0)
000044  e59f00a4          LDR      r0,|L1.240|
000048  e7900184          LDR      r0,[r0,r4,LSL #3]
00004c  e3500000          CMP      r0,#0
000050  1a000002          BNE      |L1.96|
;;;50     			{
;;;51     				Uart_Printf("\n");
000054  e28f00a0          ADR      r0,|L1.252|
000058  ebfffffe          BL       Uart_Printf
;;;52     				break;
00005c  ea000004          B        |L1.116|
;;;53     			}
;;;54     			if((i%4)==0)
                  |L1.96|
000060  e3140003          TST      r4,#3
000064  1a000001          BNE      |L1.112|
;;;55     			Uart_Printf("\n");
000068  e28f008c          ADR      r0,|L1.252|
00006c  ebfffffe          BL       Uart_Printf
;;;56     		}
                  |L1.112|
000070  eaffffeb          B        |L1.36|
;;;57     
;;;58     		Uart_Printf("\nPress Enter key to exit : ");
                  |L1.116|
000074  e28f0084          ADR      r0,|L1.256|
000078  ebfffffe          BL       Uart_Printf
;;;59     		i = Uart_GetIntNum();
00007c  ebfffffe          BL       Uart_GetIntNum
000080  e1a04000          MOV      r4,r0
;;;60     		if(i==-1) break;		// return.
000084  e3740001          CMN      r4,#1
000088  1a000000          BNE      |L1.144|
00008c  ea000008          B        |L1.180|
;;;61     		if(i>=0 && (i<((sizeof(func_irda_test)-1)/8)) )	// select and execute...
                  |L1.144|
000090  e3540000          CMP      r4,#0
000094  ba000005          BLT      |L1.176|
000098  e3540002          CMP      r4,#2
00009c  2a000003          BCS      |L1.176|
;;;62     			( (void (*)(void)) (func_irda_test[i][0]) )();
0000a0  e59f1048          LDR      r1,|L1.240|
0000a4  e7910184          LDR      r0,[r1,r4,LSL #3]
0000a8  e1a0e00f          MOV      lr,pc
0000ac  e1a0f000          MOV      pc,r0
;;;63     	}
                  |L1.176|
0000b0  eaffffd6          B        |L1.16|
;;;64     	
;;;65     	Uart_Printf("\n====== IrDA Test program end ======\n");
                  |L1.180|
0000b4  e28f0060          ADR      r0,|L1.284|
0000b8  ebfffffe          BL       Uart_Printf
;;;66     }
0000bc  e8bd8010          LDMFD    sp!,{r4,pc}
                  |L1.192|
0000c0  3d3d3d0a          DCB      "\n==="
0000c4  203d3d3d          DCB      "=== "
0000c8  44724920          DCB      " IrD"
0000cc  65542041          DCB      "A Te"
0000d0  70207473          DCB      "st p"
0000d4  72676f72          DCB      "rogr"
0000d8  73206d61          DCB      "am s"
0000dc  74726174          DCB      "tart"
0000e0  3d3d3d20          DCB      " ==="
0000e4  0a3d3d3d          DCB      "===\n"
0000e8  00000000          DCB      "\0\0\0\0"
                  |L1.236|
0000ec  00000a0a          DCB      "\n\n\0\0"
                  |L1.240|
0000f0  00000000          DCD      func_irda_test
                  |L1.244|
0000f4  3a643225          DCB      "%2d:"
0000f8  00007325          DCB      "%s\0\0"
                  |L1.252|
0000fc  0000000a          DCB      "\n\0\0\0"
                  |L1.256|
000100  6572500a          DCB      "\nPre"
000104  45207373          DCB      "ss E"
000108  7265746e          DCB      "nter"
00010c  79656b20          DCB      " key"
000110  206f7420          DCB      " to "
000114  74697865          DCB      "exit"
000118  00203a20          DCB      " : \0"
                  |L1.284|
00011c  3d3d3d0a          DCB      "\n==="
000120  203d3d3d          DCB      "=== "
000124  41447249          DCB      "IrDA"
000128  73655420          DCB      " Tes"
00012c  72702074          DCB      "t pr"
000130  6172676f          DCB      "ogra"
000134  6e65206d          DCB      "m en"
000138  3d3d2064          DCB      "d =="
00013c  3d3d3d3d          DCB      "===="
000140  0000000a          DCB      "\n\0\0\0"
                          ENDP

                  IrDA_Port_Set PROC
;;;71     void IrDA_Port_Set(void)
;;;72     {
000144  e3a00456          MOV      r0,#0x56000000
;;;73         //Push UART GPIO port configuration
;;;74         sirda_rGPBCON=rGPBCON; 
000148  e5900010          LDR      r0,[r0,#0x10]
00014c  e59f1304          LDR      r1,|L1.1112|
000150  e5810000          STR      r0,[r1,#0]  ; sirda_rGPBCON
;;;75         sirda_rGPBDAT=rGPBDAT;
000154  e3a00456          MOV      r0,#0x56000000
000158  e5900014          LDR      r0,[r0,#0x14]
00015c  e59f12f8          LDR      r1,|L1.1116|
000160  e5810000          STR      r0,[r1,#0]  ; sirda_rGPBDAT
;;;76         sirda_rGPBUP=rGPBUP;
000164  e3a00456          MOV      r0,#0x56000000
000168  e5900018          LDR      r0,[r0,#0x18]
00016c  e59f12ec          LDR      r1,|L1.1120|
000170  e5810000          STR      r0,[r1,#0]  ; sirda_rGPBUP
;;;77         sirda_rGPHCON=rGPHCON; 
000174  e3a00456          MOV      r0,#0x56000000
000178  e5900070          LDR      r0,[r0,#0x70]
00017c  e59f12e0          LDR      r1,|L1.1124|
000180  e5810000          STR      r0,[r1,#0]  ; sirda_rGPHCON
;;;78         sirda_rGPHDAT=rGPHDAT;
000184  e3a00456          MOV      r0,#0x56000000
000188  e5900074          LDR      r0,[r0,#0x74]
00018c  e59f12d4          LDR      r1,|L1.1128|
000190  e5810000          STR      r0,[r1,#0]  ; sirda_rGPHDAT
;;;79         sirda_rGPHUP=rGPHUP;
000194  e3a00456          MOV      r0,#0x56000000
000198  e5900078          LDR      r0,[r0,#0x78]
00019c  e59f12c8          LDR      r1,|L1.1132|
0001a0  e5810000          STR      r0,[r1,#0]  ; sirda_rGPHUP
;;;80         //Configure IrDA port
;;;81         rGPBDAT|=(1<<1);	
0001a4  e3a00456          MOV      r0,#0x56000000
0001a8  e5900014          LDR      r0,[r0,#0x14]
0001ac  e3800002          ORR      r0,r0,#2
0001b0  e3a01456          MOV      r1,#0x56000000
0001b4  e5810014          STR      r0,[r1,#0x14]
;;;82         rGPBCON&=0x3ffff3;
0001b8  e3a00456          MOV      r0,#0x56000000
0001bc  e5900010          LDR      r0,[r0,#0x10]
0001c0  e3c002cc          BIC      r0,r0,#0xc000000c
0001c4  e3c005ff          BIC      r0,r0,#0x3fc00000
0001c8  e3a01456          MOV      r1,#0x56000000
0001cc  e5810010          STR      r0,[r1,#0x10]
;;;83         rGPBCON|=(1<<2);	// Output(nIrDATXDEN)
0001d0  e3a00456          MOV      r0,#0x56000000
0001d4  e5900010          LDR      r0,[r0,#0x10]
0001d8  e3800004          ORR      r0,r0,#4
0001dc  e3a01456          MOV      r1,#0x56000000
0001e0  e5810010          STR      r0,[r1,#0x10]
;;;84         rGPBUP|=(1<<1);	//Uart port pull-up disable
0001e4  e3a00456          MOV      r0,#0x56000000
0001e8  e5900018          LDR      r0,[r0,#0x18]
0001ec  e3800002          ORR      r0,r0,#2
0001f0  e3a01456          MOV      r1,#0x56000000
0001f4  e5810018          STR      r0,[r1,#0x18]
;;;85         rGPHCON&=0x3c0fff;
0001f8  e3a00456          MOV      r0,#0x56000000
0001fc  e5900070          LDR      r0,[r0,#0x70]
000200  e59f1268          LDR      r1,|L1.1136|
000204  e0000001          AND      r0,r0,r1
000208  e3a01456          MOV      r1,#0x56000000
00020c  e5810070          STR      r0,[r1,#0x70]
;;;86         rGPHCON|=0x2a000;	// TXD2,RXD2
000210  e3a00456          MOV      r0,#0x56000000
000214  e5900070          LDR      r0,[r0,#0x70]
000218  e3800ba8          ORR      r0,r0,#0x2a000
00021c  e3a01456          MOV      r1,#0x56000000
000220  e5810070          STR      r0,[r1,#0x70]
;;;87         rGPHUP|=0x1c0;	//Uart port pull-up disable
000224  e3a00456          MOV      r0,#0x56000000
000228  e5900078          LDR      r0,[r0,#0x78]
00022c  e3800f70          ORR      r0,r0,#0x1c0
000230  e3a01456          MOV      r1,#0x56000000
000234  e5810078          STR      r0,[r1,#0x78]
;;;88         //Push Uart control registers 
;;;89         sirda_ULCON2=rULCON2;		
000238  e59f0234          LDR      r0,|L1.1140|
00023c  e5900000          LDR      r0,[r0,#0]
000240  e59f1230          LDR      r1,|L1.1144|
000244  e5810000          STR      r0,[r1,#0]  ; sirda_ULCON2
;;;90         sirda_UCON2 =rUCON2;		
000248  e59f0224          LDR      r0,|L1.1140|
00024c  e5900004          LDR      r0,[r0,#4]
000250  e59f1224          LDR      r1,|L1.1148|
000254  e5810000          STR      r0,[r1,#0]  ; sirda_UCON2
;;;91         sirda_UFCON2=rUFCON2;		
000258  e59f0214          LDR      r0,|L1.1140|
00025c  e5900008          LDR      r0,[r0,#8]
000260  e59f1218          LDR      r1,|L1.1152|
000264  e5810000          STR      r0,[r1,#0]  ; sirda_UFCON2
;;;92         sirda_UMCON2=rUMCON2;
000268  e59f0204          LDR      r0,|L1.1140|
00026c  e590000c          LDR      r0,[r0,#0xc]
000270  e59f120c          LDR      r1,|L1.1156|
000274  e5810000          STR      r0,[r1,#0]  ; sirda_UMCON2
;;;93         sirda_UBRDIV2=rUBRDIV2;
000278  e59f01f4          LDR      r0,|L1.1140|
00027c  e5900028          LDR      r0,[r0,#0x28]
000280  e59f1200          LDR      r1,|L1.1160|
000284  e5810000          STR      r0,[r1,#0]  ; sirda_UBRDIV2
;;;94     }       
000288  e1a0f00e          MOV      pc,lr
                          ENDP

                  IrDA_Port_Return PROC
;;;96     void IrDA_Port_Return(void)
;;;97     {       
00028c  e59f01c4          LDR      r0,|L1.1112|
;;;98         //Pop UART GPIO port configuration
;;;99         rGPBCON=sirda_rGPBCON;
000290  e5900000          LDR      r0,[r0,#0]  ; sirda_rGPBCON
000294  e3a01456          MOV      r1,#0x56000000
000298  e5810010          STR      r0,[r1,#0x10]
;;;100        rGPBDAT=sirda_rGPBDAT;
00029c  e59f01b8          LDR      r0,|L1.1116|
0002a0  e5900000          LDR      r0,[r0,#0]  ; sirda_rGPBDAT
0002a4  e3a01456          MOV      r1,#0x56000000
0002a8  e5810014          STR      r0,[r1,#0x14]
;;;101        rGPBUP =sirda_rGPBUP;
0002ac  e59f01ac          LDR      r0,|L1.1120|
0002b0  e5900000          LDR      r0,[r0,#0]  ; sirda_rGPBUP
0002b4  e3a01456          MOV      r1,#0x56000000
0002b8  e5810018          STR      r0,[r1,#0x18]
;;;102        rGPHCON=sirda_rGPHCON;
0002bc  e59f01a0          LDR      r0,|L1.1124|
0002c0  e5900000          LDR      r0,[r0,#0]  ; sirda_rGPHCON
0002c4  e3a01456          MOV      r1,#0x56000000
0002c8  e5810070          STR      r0,[r1,#0x70]
;;;103        rGPHDAT=sirda_rGPHDAT;
0002cc  e59f0194          LDR      r0,|L1.1128|
0002d0  e5900000          LDR      r0,[r0,#0]  ; sirda_rGPHDAT
0002d4  e3a01456          MOV      r1,#0x56000000
0002d8  e5810074          STR      r0,[r1,#0x74]
;;;104        rGPHUP =sirda_rGPHUP;
0002dc  e59f0188          LDR      r0,|L1.1132|
0002e0  e5900000          LDR      r0,[r0,#0]  ; sirda_rGPHUP
0002e4  e3a01456          MOV      r1,#0x56000000
0002e8  e5810078          STR      r0,[r1,#0x78]
;;;105        //Pop Uart control registers 
;;;106        rULCON2=sirda_ULCON2;		
0002ec  e59f0184          LDR      r0,|L1.1144|
0002f0  e5900000          LDR      r0,[r0,#0]  ; sirda_ULCON2
0002f4  e59f1178          LDR      r1,|L1.1140|
0002f8  e5810000          STR      r0,[r1,#0]
;;;107        rUCON2 =sirda_UCON2;	
0002fc  e59f0178          LDR      r0,|L1.1148|
000300  e5900000          LDR      r0,[r0,#0]  ; sirda_UCON2
000304  e5810004          STR      r0,[r1,#4]
;;;108        rUFCON2=sirda_UFCON2;		
000308  e59f0170          LDR      r0,|L1.1152|
00030c  e5900000          LDR      r0,[r0,#0]  ; sirda_UFCON2
000310  e5810008          STR      r0,[r1,#8]
;;;109        rUMCON2=sirda_UMCON2;
000314  e59f0168          LDR      r0,|L1.1156|
000318  e5900000          LDR      r0,[r0,#0]  ; sirda_UMCON2
00031c  e581000c          STR      r0,[r1,#0xc]
;;;110        rUBRDIV2=sirda_UBRDIV2;
000320  e59f0160          LDR      r0,|L1.1160|
000324  e5900000          LDR      r0,[r0,#0]  ; sirda_UBRDIV2
000328  e5810028          STR      r0,[r1,#0x28]
;;;111    }
00032c  e1a0f00e          MOV      pc,lr
                          ENDP

                  IrDA_TxInt PROC
;;;113    void __irq IrDA_TxInt(void)
;;;114    {
000330  e92d500f          STMFD    sp!,{r0-r3,r12,lr}
;;;115        rINTSUBMSK|=(BIT_SUB_RXD2|BIT_SUB_TXD2|BIT_SUB_ERR2);
000334  e3a0044a          MOV      r0,#0x4a000000
000338  e590001c          LDR      r0,[r0,#0x1c]
00033c  e3800f70          ORR      r0,r0,#0x1c0
000340  e3a0144a          MOV      r1,#0x4a000000
000344  e581001c          STR      r0,[r1,#0x1c]
;;;116        if(IrDA_cnt < (IrDA_BUFLEN))
000348  e59f013c          LDR      r0,|L1.1164|
00034c  e5900000          LDR      r0,[r0,#0]  ; IrDA_cnt
000350  e3500f40          CMP      r0,#0x100
000354  2a000023          BCS      |L1.1000|
;;;117        {
;;;118    	Uart_Printf("%d,",*IrDAdataPt);
000358  e59f0130          LDR      r0,|L1.1168|
00035c  e5900000          LDR      r0,[r0,#0]  ; IrDAdataPt
000360  e5d00000          LDRB     r0,[r0,#0]
000364  e1a01000          MOV      r1,r0
000368  e28f0f49          ADR      r0,|L1.1172|
00036c  ebfffffe          BL       Uart_Printf
;;;119    	WrUTXH2(*IrDAdataPt++);
000370  e59f0118          LDR      r0,|L1.1168|
000374  e5901000          LDR      r1,[r0,#0]  ; IrDAdataPt
000378  e5d10000          LDRB     r0,[r1,#0]
00037c  e2811001          ADD      r1,r1,#1
000380  e59f2108          LDR      r2,|L1.1168|
000384  e5821000          STR      r1,[r2,#0]  ; IrDAdataPt
000388  e59f10e4          LDR      r1,|L1.1140|
00038c  e5c10020          STRB     r0,[r1,#0x20]
;;;120    	IrDA_cnt++;

⌨️ 快捷键说明

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