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

📄 irda.txt

📁 支持三星原产的S3C24A0开发板
💻 TXT
📖 第 1 页 / 共 5 页
字号:
000574  e51f13d8          LDR      r1,|L1.420|           ;233
000578  e581002c          STR      r0,[r1,#0x2c]         ;233
00057c  e1a00804          MOV      r0,r4,LSL #16         ;234
000580  e1a00c20          MOV      r0,r0,LSR #24         ;234
000584  e5810030          STR      r0,[r1,#0x30]         ;234
000588  e1a00001          MOV      r0,r1                 ;235
00058c  e5900030          LDR      r0,[r0,#0x30]         ;235
000590  e20020ff          AND      r2,r0,#0xff           ;235
000594  e1a00001          MOV      r0,r1                 ;235
000598  e590002c          LDR      r0,[r0,#0x2c]         ;235
00059c  e20010ff          AND      r1,r0,#0xff           ;235
0005a0  e28f00ac          ADR      r0,|L1.1620|          ;235
0005a4  ebfffffe          BL       _printf               ;235
0005a8  e1a00000          NOP                            ;243
                  |L1.1452|
0005ac  e51f0410          LDR      r0,|L1.420|           ;243
0005b0  e5900018          LDR      r0,[r0,#0x18]         ;243
0005b4  e3100018          TST      r0,#0x18              ;243
0005b8  1a000004          BNE      |L1.1488|             ;243
0005bc  ebfffffe          BL       Uart_GetKey           ;245
0005c0  e3500000          CMP      r0,#0                 ;245
0005c4  0a000000          BEQ      |L1.1484|             ;245
0005c8  eaffffc5          B        |L1.1252|             ;246
                  |L1.1484|
0005cc  eafffff6          B        |L1.1452|             ;247
                  |L1.1488|
0005d0  e28f0098          ADR      r0,|L1.1648|          ;249
0005d4  ebfffffe          BL       _printf               ;249
0005d8  e3a00001          MOV      r0,#1                 ;250
0005dc  eaffffc0          B        |L1.1252|             ;250
                  |L1.1504|
0005e0  545b200a          DCB      "\n [T"               ;250
0005e4  3d656d69          DCB      "ime="                ;250
0005e8  00005d34          DCB      "4]\0\0"              ;250
                  |L1.1516|
0005ec  49465b20          DCB      " [FI"                ;250
0005f0  6f6d2052          DCB      "R mo"                ;250
0005f4  0a5d6564          DCB      "de]\n"               ;250
0005f8  00000000          DCB      "\0\0\0\0"            ;250
                  |L1.1532|
0005fc  494d5b20          DCB      " [MI"                ;250
000600  6f6d2052          DCB      "R mo"                ;250
000604  0a5d6564          DCB      "de]\n"               ;250
000608  00000000          DCB      "\0\0\0\0"            ;250
                  |L1.1548|
00060c  6f4e5b20          DCB      " [No"                ;250
000610  6f6d2020          DCB      "  mo"                ;250
000614  0a5d6564          DCB      "de]\n"               ;250
000618  00000000          DCB      "\0\0\0\0"            ;250
                  |L1.1564|
00061c  52444d72          DCB      "rMDR"                ;250
000620  30203d20          DCB      " = 0"                ;250
000624  2c782578          DCB      "x%x,"                ;250
000628  4e437220          DCB      " rCN"                ;250
00062c  203d2054          DCB      "T = "                ;250
000630  78257830          DCB      "0x%x"                ;250
                  |L1.1588|
000634  0000000a          DCB      "\n\0\0\0"            ;250
                  |L1.1592|
000638  58525b20          DCB      " [RX"                ;250
00063c  4c2d4c46          DCB      "FL-L"                ;250
000640  6425205d          DCB      "] %d"                ;250
000644  525b202c          DCB      ", [R"                ;250
000648  2d4c4658          DCB      "XFL-"                ;250
00064c  25205d48          DCB      "H] %"                ;250
000650  00000a64          DCB      "d\n\0\0"             ;250
                  |L1.1620|
000654  58545b20          DCB      " [TX"                ;250
000658  4c2d4c46          DCB      "FL-L"                ;250
00065c  6425205d          DCB      "] %d"                ;250
000660  545b202c          DCB      ", [T"                ;250
000664  2d4c4658          DCB      "XFL-"                ;250
000668  25205d48          DCB      "H] %"                ;250
00066c  00000a64          DCB      "d\n\0\0"             ;250
                  |L1.1648|
000670  61207854          DCB      "Tx a"                ;250
000674  5220646e          DCB      "nd R"                ;250
000678  49462078          DCB      "x FI"                ;250
00067c  63204f46          DCB      "FO c"                ;250
000680  7261656c          DCB      "lear"                ;250
000684  20736920          DCB      " is "                ;250
000688  7265766f          DCB      "over"                ;250
00068c  0a2e2e2e          DCB      "...\n"               ;250
000690  00000000          DCB      "\0\0\0\0"            ;250
                          ENDP

                  Test_Irda_Fifo_Int_Rx PROC
;;;414    void Test_Irda_Fifo_Int_Rx(int MODE, int PREAMBLE, int STARTFLAG, int RXFL, int RXTRIG)
;;;415    {
000694  e92d43f8          STMFD    sp!,{r3-r9,lr}
000698  e1a06000          MOV      r6,r0
00069c  e1a07001          MOV      r7,r1
0006a0  e1a08002          MOV      r8,r2
0006a4  e1a09003          MOV      r9,r3
0006a8  e59d5020          LDR      r5,[sp,#0x20]
;;;416    	int		i;
;;;417    
;;;418    	// Initialize IrDA
;;;419    	Init_Irda(MODE, PREAMBLE, STARTFLAG, RXFL, RXTRIG);
0006ac  e1a03009          MOV      r3,r9
0006b0  e1a02008          MOV      r2,r8
0006b4  e1a01007          MOV      r1,r7
0006b8  e1a00006          MOV      r0,r6
0006bc  e58d5000          STR      r5,[sp,#0]
0006c0  ebfffffe          BL       Init_Irda
;;;420    
;;;421    	// Register IrDA ISR
;;;422    	pISR_IrDA_MSTICK=(unsigned)Irda_Int_Rx;
0006c4  e59f0218          LDR      r0,|L1.2276|
0006c8  e59f1218          LDR      r1,|L1.2280|
0006cc  e5810f90          STR      r0,[r1,#0xf90]
;;;423    
;;;424    	ClearPending(BIT_IrDA_MSTICK);	// Clear IrDA Int Pending
0006d0  e3a00540          MOV      r0,#0x10000000
0006d4  e51f12e0          LDR      r1,|L1.1020|
0006d8  e5810000          STR      r0,[r1,#0]
0006dc  e1c10000          BIC      r0,r1,r0
0006e0  e5900010          LDR      r0,[r0,#0x10]
0006e4  e5810010          STR      r0,[r1,#0x10]
0006e8  e1a00001          MOV      r0,r1
0006ec  e5900010          LDR      r0,[r0,#0x10]
;;;425    	rSUBSRCPND = BIT_SUB_IrDA;
0006f0  e3a00040          MOV      r0,#0x40
0006f4  e1c11000          BIC      r1,r1,r0
0006f8  e5810018          STR      r0,[r1,#0x18]
;;;426    
;;;427    	rINTSUBMSK &= ~(BIT_SUB_IrDA);		// Unmask IrDA sub-pending bit
0006fc  e1c10000          BIC      r0,r1,r0
000700  e590001c          LDR      r0,[r0,#0x1c]
000704  e3c00040          BIC      r0,r0,#0x40
000708  e581001c          STR      r0,[r1,#0x1c]
;;;428    	rINTMSK    &= ~(BIT_IrDA_MSTICK);	// Unmask IrDA pending bit
00070c  e1a00001          MOV      r0,r1
000710  e5900008          LDR      r0,[r0,#8]
000714  e3c00540          BIC      r0,r0,#0x10000000
000718  e5810008          STR      r0,[r1,#8]
;;;429    
;;;430    	IrDA_RXBUFFER=(unsigned char *)MemoryRx;
00071c  e59f01c8          LDR      r0,|L1.2284|
000720  e51f1328          LDR      r1,|L1.1024|
000724  e5810000          STR      r0,[r1,#0]  ; IrDA_RXBUFFER
;;;431    	for(i=0;i<=IrDA_RxBUFLEN;i++)
000728  e3a04000          MOV      r4,#0
                  |L1.1836|
00072c  e3540010          CMP      r4,#0x10
000730  ca00000a          BGT      |L1.1888|
000734  ea000001          B        |L1.1856|
                  |L1.1848|
000738  e2844001          ADD      r4,r4,#1
00073c  eafffffa          B        |L1.1836|
;;;432    		*IrDA_RXBUFFER++=0;
                  |L1.1856|
000740  e3a01000          MOV      r1,#0
000744  e51f034c          LDR      r0,|L1.1024|
000748  e5900000          LDR      r0,[r0,#0]  ; IrDA_RXBUFFER
00074c  e5c01000          STRB     r1,[r0,#0]
000750  e2800001          ADD      r0,r0,#1
000754  e51f135c          LDR      r1,|L1.1024|
000758  e5810000          STR      r0,[r1,#0]  ; IrDA_RXBUFFER
00075c  eafffff5          B        |L1.1848|
;;;433    	IrDA_RXBUFFER=(unsigned char *)MemoryRx;	
                  |L1.1888|
000760  e59f0184          LDR      r0,|L1.2284|
000764  e51f136c          LDR      r1,|L1.1024|
000768  e5810000          STR      r0,[r1,#0]  ; IrDA_RXBUFFER
;;;434    	// Initialize RX Data -----------------END
;;;435    
;;;436    	// Initialize Check Data ----------------START
;;;437    	IrDA_CKBUFFER=(unsigned char *)MemoryCk;
00076c  e2800d80          ADD      r0,r0,#0x2000
000770  e59f1178          LDR      r1,|L1.2288|
000774  e5810000          STR      r0,[r1,#0]  ; IrDA_CKBUFFER
;;;438    	for(i=0;i<=IrDA_RxBUFLEN;i++)
000778  e3a04000          MOV      r4,#0
                  |L1.1916|
00077c  e3540010          CMP      r4,#0x10
000780  ca00000a          BGT      |L1.1968|
000784  ea000001          B        |L1.1936|
                  |L1.1928|
000788  e2844001          ADD      r4,r4,#1
00078c  eafffffa          B        |L1.1916|
;;;439    		*IrDA_CKBUFFER++=0;
                  |L1.1936|
000790  e3a01000          MOV      r1,#0
000794  e59f0154          LDR      r0,|L1.2288|
000798  e5900000          LDR      r0,[r0,#0]  ; IrDA_CKBUFFER
00079c  e5c01000          STRB     r1,[r0,#0]
0007a0  e2800001          ADD      r0,r0,#1
0007a4  e59f1144          LDR      r1,|L1.2288|
0007a8  e5810000          STR      r0,[r1,#0]  ; IrDA_CKBUFFER
0007ac  eafffff5          B        |L1.1928|
;;;440    	IrDA_CKBUFFER=(unsigned char *)MemoryCk;
                  |L1.1968|
0007b0  e59f013c          LDR      r0,|L1.2292|
0007b4  e59f1134          LDR      r1,|L1.2288|
0007b8  e5810000          STR      r0,[r1,#0]  ; IrDA_CKBUFFER
;;;441    	// Initialize Check Data -----------------END
;;;442    
;;;443    	IrDA_RxCount = 0;
0007bc  e3a00000          MOV      r0,#0
0007c0  e51f13c0          LDR      r1,|L1.1032|
0007c4  e5810000          STR      r0,[r1,#0]  ; IrDA_RxCount
;;;444    	IrDA_RxWrPnt = 0;
0007c8  e3a00000          MOV      r0,#0
0007cc  e51f13d0          LDR      r1,|L1.1028|
0007d0  e5810000          STR      r0,[r1,#0]  ; IrDA_RxWrPnt
;;;445    	IrDA_RxRdPnt = 0;
0007d4  e3a00000          MOV      r0,#0
0007d8  e59f1118          LDR      r1,|L1.2296|
0007dc  e5810000          STR      r0,[r1,#0]  ; IrDA_RxRdPnt
;;;446    	IrDA_DONE = 1;
0007e0  e3a00001          MOV      r0,#1
0007e4  e51f13e0          LDR      r1,|L1.1036|
0007e8  e5810000          STR      r0,[r1,#0]  ; IrDA_DONE
;;;447    
;;;448    	rIrDA_CNT |=(1<<6);
0007ec  e51f0650          LDR      r0,|L1.420|
0007f0  e5900000          LDR      r0,[r0,#0]
0007f4  e3800040          ORR      r0,r0,#0x40
0007f8  e51f165c          LDR      r1,|L1.420|
0007fc  e5810000          STR      r0,[r1,#0]
;;;449    	rIrDA_IER = (1<<7)|(1<<6)|(1<<3)|(1<<0);// LastByteToRx, Err Indication, RxOverRun, Rx Threshold
000800  e3a000c9          MOV      r0,#0xc9
000804  e1c11000          BIC      r1,r1,r0
000808  e581000c          STR      r0,[r1,#0xc]
;;;450    	rIrDA_CNF = (1); // Enable Interrupt
00080c  e3a00001          MOV      r0,#1
000810  e1c11000          BIC      r1,r1,r0
000814  e5810008          STR      r0,[r1,#8]
;;;451    
;;;452    	Uart_Printf("IrDA_FCR = %x\n", (char)rIrDA_FCR);
000818  e1c10000          BIC      r0,r1,r0
00081c  e5900018          LDR      r0,[r0,#0x18]
000820  e20010ff          AND      r1,r0,#0xff
000824  e28f00d0          ADR      r0,|L1.2300|
000828  ebfffffe          BL       _printf
;;;453    
;;;454    	while(IrDA_DONE);
00082c  e1a00000          NOP      
                  |L1.2096|
000830  e51f042c          LDR      r0,|L1.1036|
000834  e5900000          LDR      r0,[r0,#0]  ; IrDA_DONE
000838  e3500000          CMP      r0,#0
00083c  1afffffb          BNE      |L1.2096|
;;;455    
;;;456    	i = 0;
000840  e3a04000          MOV      r4,#0
;;;457    	Uart_Printf("\t");
000844  e28f00c0          ADR      r0,|L1.2316|
000848  ebfffffe          BL       _printf
;;;458    	while(1)
00084c  e1a00000          NOP      
                  |L1.2128|
000850  e1a00000          NOP      
;;;459    	{
;;;460    		if (IrDA_RxWrPnt > IrDA_RxRdPnt) {
000854  e51f0458          LDR      r0,|L1.1028|
000858  e5900000          LDR      r0,[r0,#0]  ; IrDA_RxWrPnt
00085c  e59f1094          LDR      r1,|L1.2296|
000860  e5911000          LDR      r1,[r1,#0]  ; IrDA_RxRdPnt
000864  e1500001          CMP      r0,r1
000868  da000016          BLE      |L1.2248|
;;;461    			Uart_Printf("[D:%3d] ",*(IrDA_RXBUFFER+IrDA_RxRdPnt));
00086c  e51f0474          LDR      r0,|L1.1024|
000870  e5900000          LDR      r0,[r0,#0]  ; IrDA_RXBUFFER
000874  e59f207c          LDR      r2,|L1.2296|
000878  e5922000          LDR      r2,[r2,#0]  ; IrDA_RxRdPnt
00087c  e7d00002          LDRB     r0,[r0,r2]
000880  e1a01000          MOV      r1,r0
000884  e28f0084          ADR      r0,|L1.2320|
000888  ebfffffe          BL       _printf
;;;462    			IrDA_RxRdPnt++;
00088c  e59f0064          LDR      r0,|L1.2296|
000890  e5900000          LDR      r0,[r0,#0]  ; IrDA_RxRdPnt
000894  e2800001          ADD      r0,r0,#1
000898  e59f1058          LDR      r1,|L1.2296|
00089c  e5810000          STR      r0,[r1,#0]  ; IrDA_RxRdPnt
;;;463    			if(!((i+1)%64)) Uart_Printf("\n");
0008a0  e2840001          ADD      r0,r4,#1
0008a4  e310003f          TST      r0,#0x3f
0008a8  1a000001          BNE      |L1.2228|
0008ac  e24f0fa0          ADR      r0,|L1.1588|
0008b0  ebfffffe          BL       _printf
;;;464    			if(!((i+1)%8)) Uart_Printf("\n\t");
                  |L1.2228|
0008b4  e2840001          ADD      r0,r4,#1
0008b8  e3100007          TST      r0,#7
0008bc  1a000001          BNE      |L1.2248|
0008c0  e28f0054          ADR      r0,|L1.2332|
0008c4  ebfffffe          BL       _printf
;;;465    		}
;;;466    		if (Uart_GetKey() == '\r') break;
                  |L1.2248|
0008c8  ebfffffe          BL       Uart_GetKey
0008cc  e350000d          CMP      r0,#0xd
0008d0  1a000000          BNE      |L1.2264|
0008d4  ea000001          B        |L1.2272|
;;;467    		i++;
                  |L1.2264|
0008d8  e2844001          ADD      r4,r4,#1
;;;468    	}
0008dc  eaffffdb          B        |L1.2128|

⌨️ 快捷键说明

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