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

📄 irda.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 TXT
📖 第 1 页 / 共 4 页
字号:
;;;270                IrDA_BAUD=19200;
                  |L1.2732|
000aac  e3a00c4b          MOV      r0,#0x4b00
000ab0  e51f11b4          LDR      r1,|L1.2308|
000ab4  e5810000          STR      r0,[r1,#0]  ; IrDA_BAUD
;;;271            break;
000ab8  ea00000c          B        |L1.2800|
;;;272    	
;;;273    	case '3':
;;;274                IrDA_BAUD=38400;
                  |L1.2748|
000abc  e3a00c96          MOV      r0,#0x9600
000ac0  e51f11c4          LDR      r1,|L1.2308|
000ac4  e5810000          STR      r0,[r1,#0]  ; IrDA_BAUD
;;;275            break;
000ac8  ea000008          B        |L1.2800|
;;;276    	
;;;277    	case '4':
;;;278                IrDA_BAUD=57600;
                  |L1.2764|
000acc  e3a00ce1          MOV      r0,#0xe100
000ad0  e51f11d4          LDR      r1,|L1.2308|
000ad4  e5810000          STR      r0,[r1,#0]  ; IrDA_BAUD
;;;279            break;
000ad8  ea000004          B        |L1.2800|
;;;280    	
;;;281    	case '5':
;;;282                IrDA_BAUD=115200;
                  |L1.2780|
000adc  e51f01dc          LDR      r0,|L1.2312|
000ae0  e51f11e4          LDR      r1,|L1.2308|
000ae4  e5810000          STR      r0,[r1,#0]  ; IrDA_BAUD
;;;283            break;
000ae8  ea000000          B        |L1.2800|
;;;284    	
;;;285    	default:
;;;286    	break;
                  |L1.2796|
000aec  e1a00000          NOP      
;;;287        }
;;;288        rUBRDIV2=( (int)(PCLK/16./IrDA_BAUD) -1 );
                  |L1.2800|
000af0  e51f01f4          LDR      r0,|L1.2308|
000af4  e5900000          LDR      r0,[r0,#0]  ; IrDA_BAUD
000af8  ebfffffe          BL       _dfltu
000afc  e88d0003          STMIA    sp,{r0,r1}
000b00  e24f0f7f          ADR      r0,|L1.2316|
000b04  e890000c          LDMIA    r0,{r2,r3}
000b08  e59d0000          LDR      r0,[sp,#0]
000b0c  ebfffffe          BL       _drdiv
000b10  e58d0008          STR      r0,[sp,#8]
000b14  e58d100c          STR      r1,[sp,#0xc]
000b18  ebfffffe          BL       _dfix
000b1c  e2400001          SUB      r0,r0,#1
000b20  e51f16b4          LDR      r1,|L1.1140|
000b24  e5810028          STR      r0,[r1,#0x28]
;;;289        Uart_Printf("rUBRDIV2=%d\n", rUBRDIV2);
000b28  e1a00001          MOV      r0,r1
000b2c  e5900028          LDR      r0,[r0,#0x28]
000b30  e1a01000          MOV      r1,r0
000b34  e24f0f8a          ADR      r0,|L1.2324|
000b38  ebfffffe          BL       Uart_Printf
;;;290        Uart_Printf("[UART IrDA Rx Test]\n");
000b3c  e28f0f61          ADR      r0,|L1.3272|
000b40  ebfffffe          BL       Uart_Printf
;;;291        Uart_Printf("This test should be configured two boards.\n");
000b44  e24f0f84          ADR      r0,|L1.2364|
000b48  ebfffffe          BL       Uart_Printf
;;;292        Uart_Printf("Press any key to start Rx and then Start Tx....\n");
000b4c  e28f0f63          ADR      r0,|L1.3296|
000b50  ebfffffe          BL       Uart_Printf
;;;293        rUFCON2=(1<<6)|(0<<4)|(1<<2)|(1<<1)|(1);
000b54  e3a00047          MOV      r0,#0x47
000b58  e51f16ec          LDR      r1,|L1.1140|
000b5c  e5810008          STR      r0,[r1,#8]
;;;294        //Tx and Rx FIFO Trigger Level:4byte,Tx and Rx Reset,FIFO En
;;;295        rUCON2=(0<<10)|(1<<9)|(1<<8)|(0<<7)|(1<<6)|(0<<5)|(0<<4)|(0<<2)|(0); // From H/W
000b60  e3a00fd0          MOV      r0,#0x340
000b64  e1c11000          BIC      r1,r1,r0
000b68  e5810004          STR      r0,[r1,#4]
;;;296        rULCON2=(1<<6)|(0<<3)|(0<<2)|(3);	// IrDA,No parity,One stop bit, 8bit
000b6c  e3a00043          MOV      r0,#0x43
000b70  e1c11000          BIC      r1,r1,r0
000b74  e5810000          STR      r0,[r1,#0]
;;;297        Uart_Getch();
000b78  ebfffffe          BL       Uart_Getch
;;;298        Uart_Printf("Now... Rx with IrDA\n");
000b7c  e28f0f64          ADR      r0,|L1.3348|
000b80  ebfffffe          BL       Uart_Printf
;;;299        rUCON2 |= 1; // Rx enable
000b84  e51f0718          LDR      r0,|L1.1140|
000b88  e5900004          LDR      r0,[r0,#4]
000b8c  e3800001          ORR      r0,r0,#1
000b90  e51f1724          LDR      r1,|L1.1140|
000b94  e5810004          STR      r0,[r1,#4]
;;;300        rINTMSK=~(BIT_UART2);
000b98  e3e00c80          MVN      r0,#0x8000
000b9c  e3a0144a          MOV      r1,#0x4a000000
000ba0  e5810008          STR      r0,[r1,#8]
;;;301        rINTSUBMSK=~(BIT_SUB_RXD2|BIT_SUB_ERR2);
000ba4  e3e00f50          MVN      r0,#0x140
000ba8  e3a0144a          MOV      r1,#0x4a000000
000bac  e581001c          STR      r0,[r1,#0x1c]
;;;302    
;;;303        while(!IrDA_end) if(Uart_GetKey()=='\r') break;
000bb0  e1a00000          NOP      
                  |L1.2996|
000bb4  e51f0724          LDR      r0,|L1.1176|
000bb8  e5900000          LDR      r0,[r0,#0]  ; IrDA_end
000bbc  e3500000          CMP      r0,#0
000bc0  1a000004          BNE      |L1.3032|
000bc4  ebfffffe          BL       Uart_GetKey
000bc8  e350000d          CMP      r0,#0xd
000bcc  1a000000          BNE      |L1.3028|
000bd0  ea000000          B        |L1.3032|
                  |L1.3028|
000bd4  eafffff6          B        |L1.2996|
;;;304        
;;;305        rINTSUBMSK|=(BIT_SUB_RXD2|BIT_SUB_TXD2|BIT_SUB_ERR2);
                  |L1.3032|
000bd8  e3a0044a          MOV      r0,#0x4a000000
000bdc  e590001c          LDR      r0,[r0,#0x1c]
000be0  e3800f70          ORR      r0,r0,#0x1c0
000be4  e3a0144a          MOV      r1,#0x4a000000
000be8  e581001c          STR      r0,[r1,#0x1c]
;;;306        rUFCON2=(3<<6)|(2<<4)|(1<<2)|(1<<1)|(0);
000bec  e3a000e6          MOV      r0,#0xe6
000bf0  e51f1784          LDR      r1,|L1.1140|
000bf4  e5810008          STR      r0,[r1,#8]
;;;307        Uart_Printf("\nEnd Rx, receive data count=%d\n",IrDA_cnt);
000bf8  e51f0774          LDR      r0,|L1.1164|
000bfc  e5901000          LDR      r1,[r0,#0]  ; IrDA_cnt
000c00  e28f0f49          ADR      r0,|L1.3372|
000c04  ebfffffe          BL       Uart_Printf
;;;308    
;;;309        IrDAdataPt =(volatile U8 *)IrDABUFFER;
000c08  e3a005c4          MOV      r0,#0x31000000
000c0c  e51f1784          LDR      r1,|L1.1168|
000c10  e5810000          STR      r0,[r1,#0]  ; IrDAdataPt
;;;310        for(i=0;i<IrDA_BUFLEN;i++)
000c14  e3a04000          MOV      r4,#0
                  |L1.3096|
000c18  e3540f40          CMP      r4,#0x100
000c1c  2a00001a          BCS      |L1.3212|
000c20  ea000001          B        |L1.3116|
                  |L1.3108|
000c24  e2844001          ADD      r4,r4,#1
000c28  eafffffa          B        |L1.3096|
;;;311        {
;;;312    		if(i-(*IrDAdataPt))
                  |L1.3116|
000c2c  e51f07a4          LDR      r0,|L1.1168|
000c30  e5900000          LDR      r0,[r0,#0]  ; IrDAdataPt
000c34  e5d00000          LDRB     r0,[r0,#0]
000c38  e1500004          CMP      r0,r4
000c3c  0a000008          BEQ      |L1.3172|
;;;313    		{
;;;314    		    Uart_Printf("i=%d,",i);
000c40  e1a01004          MOV      r1,r4
000c44  e28f0f40          ADR      r0,|L1.3404|
000c48  ebfffffe          BL       Uart_Printf
;;;315    		    IrDA_err++;
000c4c  e59f006c          LDR      r0,|L1.3264|
000c50  e5900000          LDR      r0,[r0,#0]  ; IrDA_err
000c54  e2800001          ADD      r0,r0,#1
000c58  e59f1060          LDR      r1,|L1.3264|
000c5c  e5810000          STR      r0,[r1,#0]  ; IrDA_err
000c60  ea000008          B        |L1.3208|
;;;316    		}
;;;317    		else
;;;318    			Uart_Printf("%d,",*IrDAdataPt++);
                  |L1.3172|
000c64  e51f07dc          LDR      r0,|L1.1168|
000c68  e5902000          LDR      r2,[r0,#0]  ; IrDAdataPt
000c6c  e5d20000          LDRB     r0,[r2,#0]
000c70  e2822001          ADD      r2,r2,#1
000c74  e51f37ec          LDR      r3,|L1.1168|
000c78  e1a01000          MOV      r1,r0
000c7c  e28f00d0          ADR      r0,|L1.3412|
000c80  e5832000          STR      r2,[r3,#0]  ; IrDAdataPt
000c84  ebfffffe          BL       Uart_Printf
;;;319        }
                  |L1.3208|
000c88  eaffffe5          B        |L1.3108|
;;;320        if(IrDA_err)
                  |L1.3212|
000c8c  e59f002c          LDR      r0,|L1.3264|
000c90  e5900000          LDR      r0,[r0,#0]  ; IrDA_err
000c94  e3500000          CMP      r0,#0
000c98  0a000004          BEQ      |L1.3248|
;;;321        	Uart_Printf("IrDA test fail!! Error count=%d\n",IrDA_err);
000c9c  e59f001c          LDR      r0,|L1.3264|
000ca0  e5901000          LDR      r1,[r0,#0]  ; IrDA_err
000ca4  e28f00ac          ADR      r0,|L1.3416|
000ca8  ebfffffe          BL       Uart_Printf
000cac  ea000001          B        |L1.3256|
;;;322        else
;;;323        	Uart_Printf("\nIrDA test is good!!\n");
                  |L1.3248|
000cb0  e28f00c4          ADR      r0,|L1.3452|
000cb4  ebfffffe          BL       Uart_Printf
;;;324        IrDA_Port_Return();
                  |L1.3256|
000cb8  ebfffffe          BL       IrDA_Port_Return
;;;325    }
000cbc  e8bd801f          LDMFD    sp!,{r0-r4,pc}
                  |L1.3264|
000cc0  00000010          DCD      ||.bss$2|| + 16
                  |L1.3268|
000cc4  00000000          DCD      IrDA_RxOrErr
                  |L1.3272|
000cc8  5241555b          DCB      "[UAR"
000ccc  72492054          DCB      "T Ir"
000cd0  52204144          DCB      "DA R"
000cd4  65542078          DCB      "x Te"
000cd8  0a5d7473          DCB      "st]\n"
000cdc  00000000          DCB      "\0\0\0\0"
                  |L1.3296|
000ce0  73657250          DCB      "Pres"
000ce4  6e612073          DCB      "s an"
000ce8  656b2079          DCB      "y ke"
000cec  6f742079          DCB      "y to"
000cf0  61747320          DCB      " sta"
000cf4  52207472          DCB      "rt R"
000cf8  6e612078          DCB      "x an"
000cfc  68742064          DCB      "d th"
000d00  53206e65          DCB      "en S"
000d04  74726174          DCB      "tart"
000d08  2e785420          DCB      " Tx."
000d0c  0a2e2e2e          DCB      "...\n"
000d10  00000000          DCB      "\0\0\0\0"
                  |L1.3348|
000d14  2e776f4e          DCB      "Now."
000d18  52202e2e          DCB      ".. R"
000d1c  69772078          DCB      "x wi"
000d20  49206874          DCB      "th I"
000d24  0a414472          DCB      "rDA\n"
000d28  00000000          DCB      "\0\0\0\0"
                  |L1.3372|
000d2c  646e450a          DCB      "\nEnd"
000d30  2c785220          DCB      " Rx,"
000d34  63657220          DCB      " rec"
000d38  65766965          DCB      "eive"
000d3c  74616420          DCB      " dat"
000d40  6f632061          DCB      "a co"
000d44  3d746e75          DCB      "unt="
000d48  000a6425          DCB      "%d\n\0"
                  |L1.3404|
000d4c  64253d69          DCB      "i=%d"
000d50  0000002c          DCB      ",\0\0\0"
                  |L1.3412|
000d54  002c6425          DCB      "%d,\0"
                  |L1.3416|
000d58  41447249          DCB      "IrDA"
000d5c  73657420          DCB      " tes"
000d60  61662074          DCB      "t fa"
000d64  21216c69          DCB      "il!!"
000d68  72724520          DCB      " Err"
000d6c  6320726f          DCB      "or c"
000d70  746e756f          DCB      "ount"
000d74  0a64253d          DCB      "=%d\n"
000d78  00000000          DCB      "\0\0\0\0"
                  |L1.3452|
000d7c  4472490a          DCB      "\nIrD"
000d80  65742041          DCB      "A te"
000d84  69207473          DCB      "st i"
000d88  6f672073          DCB      "s go"
000d8c  2121646f          DCB      "od!!"
000d90  0000000a          DCB      "\n\0\0\0"
                          ENDP



                          AREA ||.data||, DATA, ALIGN=2

                  ||.data$0||
                  func_irda_test
                          DCD      Test_IrDA_Rx
                          DCD      ||.constdata$1||
                          DCD      Test_IrDA_Tx
                          DCD      ||.constdata$1||+0x10
                          DCD      0x00000000
                          DCD      0x00000000


                          AREA ||.constdata||, DATA, READONLY, ALIGN=0

                  ||.constdata$1||
                          DCB      0x55,0x41,0x52,0x54
                          DCB      0x32,0x20,0x49,0x72
                          DCB      0x44,0x41,0x20,0x52
                          DCB      0x78,0x20,0x20,0x00
                          DCB      0x55,0x41,0x52,0x54
                          DCB      0x32,0x20,0x49,0x72
                          DCB      0x44,0x41,0x20,0x54
                          DCB      0x78,0x20,0x20,0x00


                          AREA ||.bss||, NOINIT, ALIGN=2

                  IrDAdataPt
                  ||.bss$2||
                          % 4
                  IrDAdataFl
                          % 4
                  IrDA_cnt
                          % 4
                  IrDA_end
                          % 4
                  IrDA_err
                          % 4
                  IrDA_BAUD
                          % 4
                  sirda_rGPBCON
                          % 4
                  sirda_rGPBDAT
                          % 4
                  sirda_rGPBUP
                          % 4
                  sirda_rGPHCON
                          % 4
                  sirda_rGPHDAT
                          % 4
                  sirda_rGPHUP
                          % 4
                  sirda_ULCON2
                          % 4
                  sirda_UCON2
                          % 4
                  sirda_UFCON2
                          % 4
                  sirda_UMCON2
                          % 4
                  sirda_UBRDIV2
                          % 4


        END

⌨️ 快捷键说明

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