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

📄 irda.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 TXT
📖 第 1 页 / 共 4 页
字号:
0006f4  e2442031          SUB      r0,r4,#0x31
0006f8  e3500004          CMP      r0,#4
0006fc  908ff100          ADDLS    pc,pc,r0,LSL #2
000700  ea000018          B        |L1.1896|
000704  ea000003          B        |L1.1816|
000708  ea000006          B        |L1.1832|
00070c  ea000009          B        |L1.1848|
000710  ea00000c          B        |L1.1864|
000714  ea00000f          B        |L1.1880|
;;;196        {
;;;197    	case '1':
;;;198    	IrDA_BAUD=9600;
                  |L1.1816|
000718  e3a00d96          MOV      r0,#0x2580
00071c  e59f11e0          LDR      r1,|L1.2308|
000720  e5810000          STR      r0,[r1,#0]  ; IrDA_BAUD
;;;199            break;
000724  ea000010          B        |L1.1900|
;;;200    	
;;;201    	case '2':
;;;202            IrDA_BAUD=19200;
                  |L1.1832|
000728  e3a00c4b          MOV      r0,#0x4b00
00072c  e59f11d0          LDR      r1,|L1.2308|
000730  e5810000          STR      r0,[r1,#0]  ; IrDA_BAUD
;;;203            break;
000734  ea00000c          B        |L1.1900|
;;;204    	
;;;205    	case '3':
;;;206            IrDA_BAUD=38400;
                  |L1.1848|
000738  e3a00c96          MOV      r0,#0x9600
00073c  e59f11c0          LDR      r1,|L1.2308|
000740  e5810000          STR      r0,[r1,#0]  ; IrDA_BAUD
;;;207            break;
000744  ea000008          B        |L1.1900|
;;;208    	
;;;209    	case '4':
;;;210            IrDA_BAUD=57600;
                  |L1.1864|
000748  e3a00ce1          MOV      r0,#0xe100
00074c  e59f11b0          LDR      r1,|L1.2308|
000750  e5810000          STR      r0,[r1,#0]  ; IrDA_BAUD
;;;211            break;
000754  ea000004          B        |L1.1900|
;;;212    	
;;;213    	case '5':
;;;214            IrDA_BAUD=115200;
                  |L1.1880|
000758  e59f01a8          LDR      r0,|L1.2312|
00075c  e59f11a0          LDR      r1,|L1.2308|
000760  e5810000          STR      r0,[r1,#0]  ; IrDA_BAUD
;;;215            break;
000764  ea000000          B        |L1.1900|
;;;216    	
;;;217    	default:
;;;218            break;
                  |L1.1896|
000768  e1a00000          NOP      
;;;219        }
;;;220        rUBRDIV2=( (int)(PCLK/16./IrDA_BAUD) -1 );
                  |L1.1900|
00076c  e59f0190          LDR      r0,|L1.2308|
000770  e5900000          LDR      r0,[r0,#0]  ; IrDA_BAUD
000774  ebfffffe          BL       _dfltu
000778  e88d0003          STMIA    sp,{r0,r1}
00077c  e28f0f62          ADR      r0,|L1.2316|
000780  e890000c          LDMIA    r0,{r2,r3}
000784  e59d0000          LDR      r0,[sp,#0]
000788  ebfffffe          BL       _drdiv
00078c  e58d0008          STR      r0,[sp,#8]
000790  e58d100c          STR      r1,[sp,#0xc]
000794  ebfffffe          BL       _dfix
000798  e2400001          SUB      r0,r0,#1
00079c  e51f1330          LDR      r1,|L1.1140|
0007a0  e5810028          STR      r0,[r1,#0x28]
;;;221        Uart_Printf("rUBRDIV2=%d\n", rUBRDIV2);
0007a4  e1a00001          MOV      r0,r1
0007a8  e5900028          LDR      r0,[r0,#0x28]
0007ac  e1a01000          MOV      r1,r0
0007b0  e28f0f57          ADR      r0,|L1.2324|
0007b4  ebfffffe          BL       Uart_Printf
;;;222        Uart_Printf("[UART IrDA Tx Test]\n");
0007b8  e28f0f59          ADR      r0,|L1.2340|
0007bc  ebfffffe          BL       Uart_Printf
;;;223        Uart_Printf("This test should be configured two boards.\n");
0007c0  e28f0f5d          ADR      r0,|L1.2364|
0007c4  ebfffffe          BL       Uart_Printf
;;;224        Uart_Printf("Start Rx first and press any key and...\n");
0007c8  e28f0f66          ADR      r0,|L1.2408|
0007cc  ebfffffe          BL       Uart_Printf
;;;225        Uart_TxEmpty(1);
0007d0  e3a00001          MOV      r0,#1
0007d4  ebfffffe          BL       Uart_TxEmpty
;;;226        rGPBDAT &= ~(1<<1);	// Enable nIrDATXDEN - GPB1
0007d8  e3a00456          MOV      r0,#0x56000000
0007dc  e5900014          LDR      r0,[r0,#0x14]
0007e0  e3c00002          BIC      r0,r0,#2
0007e4  e3a01456          MOV      r1,#0x56000000
0007e8  e5810014          STR      r0,[r1,#0x14]
;;;227        rUFCON2=(1<<6)|(0<<4)|(1<<2)|(1<<1)|(1);
0007ec  e3a00047          MOV      r0,#0x47
0007f0  e51f1384          LDR      r1,|L1.1140|
0007f4  e5810008          STR      r0,[r1,#8]
;;;228        //Tx and Rx FIFO Trigger Level:4byte,Tx and Rx FIFO Reset,FIFO on
;;;229        rUCON2=(0<<10)|(1<<9)|(1<<8)|(0<<7)|(0<<6)|(0<<5)|(0<<4)|(0<<2)|(0); // From H/W    
0007f8  e3a00fc0          MOV      r0,#0x300
0007fc  e1c11000          BIC      r1,r1,r0
000800  e5810004          STR      r0,[r1,#4]
;;;230        rULCON2=(1<<6)|(0<<3)|(0<<2)|(3);	// IrDA,No parity,One stop bit, 8bit
000804  e3a00043          MOV      r0,#0x43
000808  e1c11000          BIC      r1,r1,r0
00080c  e5810000          STR      r0,[r1,#0]
;;;231        Uart_Getch();
000810  ebfffffe          BL       Uart_Getch
;;;232        rUCON2 |= (1<<2); // Tx enable
000814  e51f03a8          LDR      r0,|L1.1140|
000818  e5900004          LDR      r0,[r0,#4]
00081c  e3800004          ORR      r0,r0,#4
000820  e51f13b4          LDR      r1,|L1.1140|
000824  e5810004          STR      r0,[r1,#4]
;;;233        Uart_Printf("Now... Tx with IrDA\n");
000828  e28f0f59          ADR      r0,|L1.2452|
00082c  ebfffffe          BL       Uart_Printf
;;;234        rINTMSK=~(BIT_UART2);
000830  e3e00c80          MVN      r0,#0x8000
000834  e3a0144a          MOV      r1,#0x4a000000
000838  e5810008          STR      r0,[r1,#8]
;;;235        rINTSUBMSK=~(BIT_SUB_RXD2|BIT_SUB_TXD2|BIT_SUB_ERR2);
00083c  e3e00f70          MVN      r0,#0x1c0
000840  e3a0144a          MOV      r1,#0x4a000000
000844  e581001c          STR      r0,[r1,#0x1c]
;;;236    
;;;237        while(!IrDA_end);
000848  e1a00000          NOP      
                  |L1.2124|
00084c  e51f03bc          LDR      r0,|L1.1176|
000850  e5900000          LDR      r0,[r0,#0]  ; IrDA_end
000854  e3500000          CMP      r0,#0
000858  0afffffb          BEQ      |L1.2124|
;;;238    
;;;239        rINTSUBMSK|=(BIT_SUB_RXD2|BIT_SUB_TXD2|BIT_SUB_ERR2);
00085c  e3a0044a          MOV      r0,#0x4a000000
000860  e590001c          LDR      r0,[r0,#0x1c]
000864  e3800f70          ORR      r0,r0,#0x1c0
000868  e3a0144a          MOV      r1,#0x4a000000
00086c  e581001c          STR      r0,[r1,#0x1c]
;;;240        rUFCON2=(3<<6)|(2<<4)|(1<<2)|(1<<1)|(0);
000870  e3a000e6          MOV      r0,#0xe6
000874  e51f1408          LDR      r1,|L1.1140|
000878  e5810008          STR      r0,[r1,#8]
;;;241        rGPBDAT|=(1<<1);	// Disable nIrDATXDEN        
00087c  e3a00456          MOV      r0,#0x56000000
000880  e5900014          LDR      r0,[r0,#0x14]
000884  e3800002          ORR      r0,r0,#2
000888  e3a01456          MOV      r1,#0x56000000
00088c  e5810014          STR      r0,[r1,#0x14]
;;;242        Uart_Printf("\nEnd Tx, transfer data count=%d\n",IrDA_cnt);
000890  e51f040c          LDR      r0,|L1.1164|
000894  e5901000          LDR      r1,[r0,#0]  ; IrDA_cnt
000898  e28f0f43          ADR      r0,|L1.2476|
00089c  ebfffffe          BL       Uart_Printf
;;;243        IrDA_Port_Return();
0008a0  ebfffffe          BL       IrDA_Port_Return
;;;244    }
0008a4  e8bd801f          LDMFD    sp!,{r0-r4,pc}
                  |L1.2216|
0008a8  00000004          DCD      ||.bss$2|| + 4
                  |L1.2220|
0008ac  00000000          DCD      IrDA_TxInt
                  |L1.2224|
0008b0  31fff000          DCD      0x31fff000
                  |L1.2228|
0008b4  6c65530a          DCB      "\nSel"
0008b8  20746365          DCB      "ect "
0008bc  20656874          DCB      "the "
0008c0  64756162          DCB      "baud"
0008c4  74617220          DCB      " rat"
0008c8  00000a65          DCB      "e\n\0\0"
                  |L1.2252|
0008cc  36392931          DCB      "1)96"
0008d0  20203030          DCB      "00  "
0008d4  29322020          DCB      "  2)"
0008d8  30323931          DCB      "1920"
0008dc  20202030          DCB      "0   "
0008e0  33293320          DCB      " 3)3"
0008e4  30303438          DCB      "8400"
0008e8  20202020          DCB      "    "
0008ec  37352934          DCB      "4)57"
0008f0  20303036          DCB      "600 "
0008f4  35202020          DCB      "   5"
0008f8  35313129          DCB      ")115"
0008fc  0a303032          DCB      "200\n"
000900  00000000          DCB      "\0\0\0\0"
                  |L1.2308|
000904  00000014          DCD      ||.bss$2|| + 20
                  |L1.2312|
000908  0001c200          DCD      0x0001c200
                  |L1.2316|
00090c  00000000          DCFD     0x41478d4c00000000
000910  41478d4c  
                  |L1.2324|
000914  52425572          DCB      "rUBR"
000918  32564944          DCB      "DIV2"
00091c  0a64253d          DCB      "=%d\n"
000920  00000000          DCB      "\0\0\0\0"
                  |L1.2340|
000924  5241555b          DCB      "[UAR"
000928  72492054          DCB      "T Ir"
00092c  54204144          DCB      "DA T"
000930  65542078          DCB      "x Te"
000934  0a5d7473          DCB      "st]\n"
000938  00000000          DCB      "\0\0\0\0"
                  |L1.2364|
00093c  73696854          DCB      "This"
000940  73657420          DCB      " tes"
000944  68732074          DCB      "t sh"
000948  646c756f          DCB      "ould"
00094c  20656220          DCB      " be "
000950  666e6f63          DCB      "conf"
000954  72756769          DCB      "igur"
000958  74206465          DCB      "ed t"
00095c  62206f77          DCB      "wo b"
000960  6472616f          DCB      "oard"
000964  000a2e73          DCB      "s.\n\0"
                  |L1.2408|
000968  72617453          DCB      "Star"
00096c  78522074          DCB      "t Rx"
000970  72696620          DCB      " fir"
000974  61207473          DCB      "st a"
000978  7020646e          DCB      "nd p"
00097c  73736572          DCB      "ress"
000980  796e6120          DCB      " any"
000984  79656b20          DCB      " key"
000988  646e6120          DCB      " and"
00098c  0a2e2e2e          DCB      "...\n"
000990  00000000          DCB      "\0\0\0\0"
                  |L1.2452|
000994  2e776f4e          DCB      "Now."
000998  54202e2e          DCB      ".. T"
00099c  69772078          DCB      "x wi"
0009a0  49206874          DCB      "th I"
0009a4  0a414472          DCB      "rDA\n"
0009a8  00000000          DCB      "\0\0\0\0"
                  |L1.2476|
0009ac  646e450a          DCB      "\nEnd"
0009b0  2c785420          DCB      " Tx,"
0009b4  61727420          DCB      " tra"
0009b8  6566736e          DCB      "nsfe"
0009bc  61642072          DCB      "r da"
0009c0  63206174          DCB      "ta c"
0009c4  746e756f          DCB      "ount"
0009c8  0a64253d          DCB      "=%d\n"
0009cc  00000000          DCB      "\0\0\0\0"
                          ENDP

                  Test_IrDA_Rx PROC
;;;246    void Test_IrDA_Rx(void)
;;;247    {
0009d0  e92d401f          STMFD    sp!,{r0-r4,lr}
;;;248        unsigned int i;
;;;249        IrDA_cnt=0;
0009d4  e3a00000          MOV      r0,#0
0009d8  e51f1554          LDR      r1,|L1.1164|
0009dc  e5810000          STR      r0,[r1,#0]  ; IrDA_cnt
;;;250        IrDA_end=0;
0009e0  e3a00000          MOV      r0,#0
0009e4  e51f1554          LDR      r1,|L1.1176|
0009e8  e5810000          STR      r0,[r1,#0]  ; IrDA_end
;;;251        IrDA_err=0;
0009ec  e3a00000          MOV      r0,#0
0009f0  e59f12c8          LDR      r1,|L1.3264|
0009f4  e5810000          STR      r0,[r1,#0]  ; IrDA_err
;;;252    		
;;;253        IrDAdataPt =(volatile U8 *)IrDABUFFER; // 0 initialize
0009f8  e3a005c4          MOV      r0,#0x31000000
0009fc  e51f1574          LDR      r1,|L1.1168|
000a00  e5810000          STR      r0,[r1,#0]  ; IrDAdataPt
;;;254        for(i=0;i<IrDA_BUFLEN;i++) *IrDAdataPt++=0;	// Initialize IrDA Tx data
000a04  e3a04000          MOV      r4,#0
                  |L1.2568|
000a08  e3540f40          CMP      r4,#0x100
000a0c  2a00000a          BCS      |L1.2620|
000a10  ea000001          B        |L1.2588|
                  |L1.2580|
000a14  e2844001          ADD      r4,r4,#1
000a18  eafffffa          B        |L1.2568|
                  |L1.2588|
000a1c  e3a01000          MOV      r1,#0
000a20  e51f0598          LDR      r0,|L1.1168|
000a24  e5900000          LDR      r0,[r0,#0]  ; IrDAdataPt
000a28  e5c01000          STRB     r1,[r0,#0]
000a2c  e2800001          ADD      r0,r0,#1
000a30  e51f15a8          LDR      r1,|L1.1168|
000a34  e5810000          STR      r0,[r1,#0]  ; IrDAdataPt
000a38  eafffff5          B        |L1.2580|
;;;255        IrDAdataPt =(volatile U8 *)IrDABUFFER;
                  |L1.2620|
000a3c  e3a005c4          MOV      r0,#0x31000000
000a40  e51f15b8          LDR      r1,|L1.1168|
000a44  e5810000          STR      r0,[r1,#0]  ; IrDAdataPt
;;;256    		
;;;257        IrDA_Port_Set();    
000a48  ebfffffe          BL       IrDA_Port_Set
;;;258        Uart_Select(1);
000a4c  e3a00001          MOV      r0,#1
000a50  ebfffffe          BL       Uart_Select
;;;259        pISR_UART2=(unsigned)IrDA_RxOrErr;
000a54  e59f0268          LDR      r0,|L1.3268|
000a58  e51f11b0          LDR      r1,|L1.2224|
000a5c  e5810f5c          STR      r0,[r1,#0xf5c]
;;;260        Uart_Printf("\nSelect the baud rate\n");	// Select IrDA baud rate
000a60  e24f0f6d          ADR      r0,|L1.2228|
000a64  ebfffffe          BL       Uart_Printf
;;;261        Uart_Printf("1)9600    2)19200    3)38400    4)57600    5)115200\n"); 
000a68  e24f0f69          ADR      r0,|L1.2252|
000a6c  ebfffffe          BL       Uart_Printf
;;;262        i=Uart_Getch();
000a70  ebfffffe          BL       Uart_Getch
000a74  e1a04000          MOV      r4,r0
;;;263        switch(i)
000a78  e2442031          SUB      r0,r4,#0x31
000a7c  e3500004          CMP      r0,#4
000a80  908ff100          ADDLS    pc,pc,r0,LSL #2
000a84  ea000018          B        |L1.2796|
000a88  ea000003          B        |L1.2716|
000a8c  ea000006          B        |L1.2732|
000a90  ea000009          B        |L1.2748|
000a94  ea00000c          B        |L1.2764|
000a98  ea00000f          B        |L1.2780|
;;;264        {
;;;265    	case '1':
;;;266                IrDA_BAUD=9600;
                  |L1.2716|
000a9c  e3a00d96          MOV      r0,#0x2580
000aa0  e51f11a4          LDR      r1,|L1.2308|
000aa4  e5810000          STR      r0,[r1,#0]  ; IrDA_BAUD
;;;267            break;
000aa8  ea000010          B        |L1.2800|
;;;268    	
;;;269    	case '2':

⌨️ 快捷键说明

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