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

📄 uart0.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 TXT
📖 第 1 页 / 共 5 页
字号:
000a48  203a2031          DCB      "1 : "
000a4c  000a6425          DCB      "%d\n\0"
                  |L1.2640|
000a50  178b38c1          DCD      0x178b38c1
                  |L1.2644|
000a54  203a2032          DCB      "2 : "
000a58  000a6425          DCB      "%d\n\0"
                  |L1.2652|
000a5c  1f4add41          DCD      0x1f4add41
                  |L1.2656|
000a60  203a2033          DCB      "3 : "
000a64  000a6425          DCB      "%d\n\0"
                  |L1.2664|
000a68  00000000          DCD      |L1.1208|
                          ENDP

                  Uart0_TxInt PROC
;;;231    void __irq Uart0_TxInt(void)
;;;232    {
000a6c  e92d0007          STMFD    sp!,{r0-r2}
;;;233        rINTSUBMSK|=(BIT_SUB_RXD0|BIT_SUB_TXD0|BIT_SUB_ERR0);	// Just for the safety
000a70  e3a0044a          MOV      r0,#0x4a000000
000a74  e590001c          LDR      r0,[r0,#0x1c]
000a78  e3800007          ORR      r0,r0,#7
000a7c  e3a0144a          MOV      r1,#0x4a000000
000a80  e581001c          STR      r0,[r1,#0x1c]
;;;234        if(*uart0TxStr != '\0') 
000a84  e59f019c          LDR      r0,|L1.3112|
000a88  e5900000          LDR      r0,[r0,#0]  ; uart0TxStr
000a8c  e5d00000          LDRB     r0,[r0,#0]
000a90  e3500000          CMP      r0,#0
000a94  0a000018          BEQ      |L1.2812|
;;;235        {
;;;236            WrUTXH0(*uart0TxStr++);
000a98  e59f0188          LDR      r0,|L1.3112|
000a9c  e5901000          LDR      r1,[r0,#0]  ; uart0TxStr
000aa0  e5d10000          LDRB     r0,[r1,#0]
000aa4  e2811001          ADD      r1,r1,#1
000aa8  e59f2178          LDR      r2,|L1.3112|
000aac  e5821000          STR      r1,[r2,#0]  ; uart0TxStr
000ab0  e3a01450          MOV      r1,#0x50000000
000ab4  e5c10020          STRB     r0,[r1,#0x20]
;;;237    	    ClearPending(BIT_UART0);		// Clear master pending
000ab8  e3a00540          MOV      r0,#0x10000000
000abc  e3a0144a          MOV      r1,#0x4a000000
000ac0  e5810000          STR      r0,[r1,#0]
000ac4  e3a00540          MOV      r0,#0x10000000
000ac8  e3a0144a          MOV      r1,#0x4a000000
000acc  e5810010          STR      r0,[r1,#0x10]
000ad0  e3a0044a          MOV      r0,#0x4a000000
000ad4  e5900010          LDR      r0,[r0,#0x10]
;;;238    	    rSUBSRCPND=(BIT_SUB_TXD0);		// Clear Sub int pending
000ad8  e3a00002          MOV      r0,#2
000adc  e3a0144a          MOV      r1,#0x4a000000
000ae0  e5810018          STR      r0,[r1,#0x18]
;;;239    	    rINTSUBMSK&=~(BIT_SUB_TXD0);	// Unmask sub int
000ae4  e3a0044a          MOV      r0,#0x4a000000
000ae8  e590001c          LDR      r0,[r0,#0x1c]
000aec  e3c00002          BIC      r0,r0,#2
000af0  e3a0144a          MOV      r1,#0x4a000000
000af4  e581001c          STR      r0,[r1,#0x1c]
000af8  ea000012          B        |L1.2888|
;;;240        }
;;;241        else
;;;242        {
;;;243        	isTxInt=0;
                  |L1.2812|
000afc  e3a00000          MOV      r0,#0
000b00  e59f1124          LDR      r1,|L1.3116|
000b04  e5810000          STR      r0,[r1,#0]  ; isTxInt
;;;244        	ClearPending(BIT_UART0);		// Clear master pending
000b08  e3a00540          MOV      r0,#0x10000000
000b0c  e3a0144a          MOV      r1,#0x4a000000
000b10  e5810000          STR      r0,[r1,#0]
000b14  e3a00540          MOV      r0,#0x10000000
000b18  e3a0144a          MOV      r1,#0x4a000000
000b1c  e5810010          STR      r0,[r1,#0x10]
000b20  e3a0044a          MOV      r0,#0x4a000000
000b24  e5900010          LDR      r0,[r0,#0x10]
;;;245            rSUBSRCPND=(BIT_SUB_TXD0);		// Clear Sub int pending
000b28  e3a00002          MOV      r0,#2
000b2c  e3a0144a          MOV      r1,#0x4a000000
000b30  e5810018          STR      r0,[r1,#0x18]
;;;246            rINTMSK|=(BIT_UART0);
000b34  e3a0044a          MOV      r0,#0x4a000000
000b38  e5900008          LDR      r0,[r0,#8]
000b3c  e3800540          ORR      r0,r0,#0x10000000
000b40  e3a0144a          MOV      r1,#0x4a000000
000b44  e5810008          STR      r0,[r1,#8]
;;;247        }
;;;248    }
                  |L1.2888|
000b48  e8bd0007          LDMFD    sp!,{r0-r2}
000b4c  e25ef004          SUBS     pc,lr,#4
                          ENDP

                  __sub_Uart0_RxErrInt PROC
;;;275    void __sub_Uart0_RxErrInt(void)
;;;276    {
000b50  e92d4010          STMFD    sp!,{r4,lr}
;;;277    	U32 iStatus;
;;;278    
;;;279    	iStatus = rUERSTAT0;
000b54  e3a00450          MOV      r0,#0x50000000
000b58  e5900014          LDR      r0,[r0,#0x14]
000b5c  e1a04000          MOV      r4,r0
;;;280    	
;;;281        switch(iStatus)//to clear and check the status of register bits
000b60  e354000e          CMP      r4,#0xe
000b64  908ff104          ADDLS    pc,pc,r4,LSL #2
000b68  ea000026          B        |L1.3080|
000b6c  ea000025          B        |L1.3080|
000b70  ea00000c          B        |L1.2984|
000b74  ea00000e          B        |L1.2996|
000b78  ea000022          B        |L1.3080|
000b7c  ea00000f          B        |L1.3008|
000b80  ea000020          B        |L1.3080|
000b84  ea000010          B        |L1.3020|
000b88  ea00001e          B        |L1.3080|
000b8c  ea000011          B        |L1.3032|
000b90  ea00001c          B        |L1.3080|
000b94  ea000012          B        |L1.3044|
000b98  ea00001a          B        |L1.3080|
000b9c  ea000013          B        |L1.3056|
000ba0  ea000018          B        |L1.3080|
000ba4  ea000014          B        |L1.3068|
;;;282        {
;;;283    	case 1:
;;;284    	    Uart_Printf("Overrun error!\n");
                  |L1.2984|
000ba8  e28f0080          ADR      r0,|L1.3120|
000bac  ebfffffe          BL       Uart_Printf
;;;285    	    break;
000bb0  ea000018          B        |L1.3096|
;;;286    	case 2:
;;;287    	    Uart_Printf("Parity error!\n");
                  |L1.2996|
000bb4  e28f0084          ADR      r0,|L1.3136|
000bb8  ebfffffe          BL       Uart_Printf
;;;288    	    break;
000bbc  ea000015          B        |L1.3096|
;;;289    	case 4:
;;;290    	    Uart_Printf("Frame error!\n");
                  |L1.3008|
000bc0  e28f0088          ADR      r0,|L1.3152|
000bc4  ebfffffe          BL       Uart_Printf
;;;291    	    break;
000bc8  ea000012          B        |L1.3096|
;;;292    	case 6:
;;;293    	    Uart_Printf("Parity, Frame error!\n");
                  |L1.3020|
000bcc  e28f008c          ADR      r0,|L1.3168|
000bd0  ebfffffe          BL       Uart_Printf
;;;294    	    break;
000bd4  ea00000f          B        |L1.3096|
;;;295    	case 8:
;;;296    		Uart_Printf("Breake detect\n");
                  |L1.3032|
000bd8  e28f0098          ADR      r0,|L1.3192|
000bdc  ebfffffe          BL       Uart_Printf
;;;297    		break;
000be0  ea00000c          B        |L1.3096|
;;;298    	case 0xa:
;;;299    		Uart_Printf("Parity error & Break detect!\n");
                  |L1.3044|
000be4  e28f009c          ADR      r0,|L1.3208|
000be8  ebfffffe          BL       Uart_Printf
;;;300    		break;
000bec  ea000009          B        |L1.3096|
;;;301    	case 0xc:
;;;302    		Uart_Printf("Frame error & Breake detect\n");
                  |L1.3056|
000bf0  e28f00b0          ADR      r0,|L1.3240|
000bf4  ebfffffe          BL       Uart_Printf
;;;303    		break;
000bf8  ea000006          B        |L1.3096|
;;;304    	case 0xe:
;;;305    		Uart_Printf("Parity, Frame error & Break detect!\n");
                  |L1.3068|
000bfc  e28f00c4          ADR      r0,|L1.3272|
000c00  ebfffffe          BL       Uart_Printf
;;;306    		break;
000c04  ea000003          B        |L1.3096|
;;;307    	default :
;;;308    		Uart_Printf("Unknown error : 0x%x\n", iStatus);
                  |L1.3080|
000c08  e1a01004          MOV      r1,r4
000c0c  e28f00dc          ADR      r0,|L1.3312|
000c10  ebfffffe          BL       Uart_Printf
;;;309    	    break;
000c14  e1a00000          NOP      
;;;310        }
;;;311    	
;;;312       	isRxInt=0;
                  |L1.3096|
000c18  e3a00000          MOV      r0,#0
000c1c  e59f10e4          LDR      r1,|L1.3336|
000c20  e5810000          STR      r0,[r1,#0]  ; isRxInt
;;;313    }
000c24  e8bd8010          LDMFD    sp!,{r4,pc}
                  |L1.3112|
000c28  00000098          DCD      ||.bss$2|| + 152
                  |L1.3116|
000c2c  0000001c          DCD      ||.bss$2|| + 28
                  |L1.3120|
000c30  7265764f          DCB      "Over"
000c34  206e7572          DCB      "run "
000c38  6f727265          DCB      "erro"
000c3c  000a2172          DCB      "r!\n\0"
                  |L1.3136|
000c40  69726150          DCB      "Pari"
000c44  65207974          DCB      "ty e"
000c48  726f7272          DCB      "rror"
000c4c  00000a21          DCB      "!\n\0\0"
                  |L1.3152|
000c50  6d617246          DCB      "Fram"
000c54  72652065          DCB      "e er"
000c58  21726f72          DCB      "ror!"
                  |L1.3164|
000c5c  0000000a          DCB      "\n\0\0\0"
                  |L1.3168|
000c60  69726150          DCB      "Pari"
000c64  202c7974          DCB      "ty, "
000c68  6d617246          DCB      "Fram"
000c6c  72652065          DCB      "e er"
000c70  21726f72          DCB      "ror!"
000c74  0000000a          DCB      "\n\0\0\0"
                  |L1.3192|
000c78  61657242          DCB      "Brea"
000c7c  6420656b          DCB      "ke d"
000c80  63657465          DCB      "etec"
000c84  00000a74          DCB      "t\n\0\0"
                  |L1.3208|
000c88  69726150          DCB      "Pari"
000c8c  65207974          DCB      "ty e"
000c90  726f7272          DCB      "rror"
000c94  42202620          DCB      " & B"
000c98  6b616572          DCB      "reak"
000c9c  74656420          DCB      " det"
000ca0  21746365          DCB      "ect!"
000ca4  0000000a          DCB      "\n\0\0\0"
                  |L1.3240|
000ca8  6d617246          DCB      "Fram"
000cac  72652065          DCB      "e er"
000cb0  20726f72          DCB      "ror "
000cb4  72422026          DCB      "& Br"
000cb8  656b6165          DCB      "eake"
000cbc  74656420          DCB      " det"
000cc0  0a746365          DCB      "ect\n"
000cc4  00000000          DCB      "\0\0\0\0"
                  |L1.3272|
000cc8  69726150          DCB      "Pari"
000ccc  202c7974          DCB      "ty, "
000cd0  6d617246          DCB      "Fram"
000cd4  72652065          DCB      "e er"
000cd8  20726f72          DCB      "ror "
000cdc  72422026          DCB      "& Br"
000ce0  206b6165          DCB      "eak "
000ce4  65746564          DCB      "dete"
000ce8  0a217463          DCB      "ct!\n"
000cec  00000000          DCB      "\0\0\0\0"
                  |L1.3312|
000cf0  6e6b6e55          DCB      "Unkn"
000cf4  206e776f          DCB      "own "
000cf8  6f727265          DCB      "erro"
000cfc  203a2072          DCB      "r : "
000d00  78257830          DCB      "0x%x"
000d04  0000000a          DCB      "\n\0\0\0"
                  |L1.3336|
000d08  00000020          DCD      ||.bss$2|| + 32
                          ENDP

                  __sub_Uart0_RxInt PROC
;;;260    void __sub_Uart0_RxInt(void)
;;;261    {
000d0c  e92d4008          STMFD    sp!,{r3,lr}
;;;262        if(RdURXH0()!='\r') 
000d10  e3a00450          MOV      r0,#0x50000000
000d14  e5d00024          LDRB     r0,[r0,#0x24]
000d18  e350000d          CMP      r0,#0xd
000d1c  0a00000d          BEQ      |L1.3416|
;;;263        {
;;;264        	Uart_Printf("%c",RdURXH0());
000d20  e3a00450          MOV      r0,#0x50000000
000d24  e5d00024          LDRB     r0,[r0,#0x24]
000d28  e1a01000          MOV      r1,r0
000d2c  e28f004c          ADR      r0,|L1.3456|
000d30  ebfffffe          BL       Uart_Printf
;;;265        	*uart0RxStr++ =(char)RdURXH0();
000d34  e3a00450          MOV      r0,#0x50000000
000d38  e5d01024          LDRB     r1,[r0,#0x24]
000d3c  e59f0040          LDR      r0,|L1.3460|

⌨️ 快捷键说明

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