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

📄 uart0.txt

📁 支持三星原产的S3C24A0开发板
💻 TXT
📖 第 1 页 / 共 5 页
字号:
0008f8  e3100001          TST      r0,#1
0008fc  0a000001          BEQ      |L1.2312|
000900  ebfffffe          BL       __sub_Uart0_RxInt
000904  ea000000          B        |L1.2316|
;;;254        else __sub_Uart0_RxErrInt();
                  |L1.2312|
000908  ebfffffe          BL       __sub_Uart0_RxErrInt
;;;255    		
;;;256        ClearPending(BIT_UART0); 
                  |L1.2316|
00090c  e3a00b80          MOV      r0,#0x20000
000910  e51f1148          LDR      r1,|L1.2000|
000914  e5810000          STR      r0,[r1,#0]
000918  e1c10000          BIC      r0,r1,r0
00091c  e5900010          LDR      r0,[r0,#0x10]
000920  e5810010          STR      r0,[r1,#0x10]
000924  e1a00001          MOV      r0,r1
000928  e5900010          LDR      r0,[r0,#0x10]
;;;257        rSUBSRCPND=(BIT_SUB_RXD0|BIT_SUB_ERR0);	// Clear Sub int pending    
00092c  e3a00005          MOV      r0,#5
000930  e1c11000          BIC      r1,r1,r0
000934  e5810018          STR      r0,[r1,#0x18]
;;;258        rINTSUBMSK&=~(BIT_SUB_RXD0|BIT_SUB_ERR0);    
000938  e1c10000          BIC      r0,r1,r0
00093c  e590001c          LDR      r0,[r0,#0x1c]
000940  e3c00005          BIC      r0,r0,#5
000944  e581001c          STR      r0,[r1,#0x1c]
;;;259    }
000948  e8bd500f          LDMFD    sp!,{r0-r3,r12,lr}
00094c  e25ef004          SUBS     pc,lr,#4
                          ENDP

                  Test_Uart0_Int PROC
;;;317    void Test_Uart0_Int(void)
;;;318    {
000950  e92d4010          STMFD    sp!,{r4,lr}
;;;319    	U8 ch;
;;;320    	
;;;321        Uart_Port_Set(); 
000954  ebfffffe          BL       Uart_Port_Set
;;;322        Uart_Select(0);    
000958  e3a00000          MOV      r0,#0
00095c  ebfffffe          BL       Uart_Select
;;;323    
;;;324    	// edited by junon start
;;;325    	/******** For operating clock test *********/
;;;326    	Uart_Printf("[Uart channel 0 Interrupt test]\n");
000960  e28f0f89          ADR      r0,|L1.2956|
000964  ebfffffe          BL       _printf
;;;327    	Uart_Printf("Select operating clock 1. PCLK  2. UCLK \nChoose : ");
000968  e28f0f90          ADR      r0,|L1.2992|
00096c  ebfffffe          BL       _printf
;;;328    	ch = Uart_Getch();
000970  ebfffffe          BL       Uart_Getch
000974  e1a04000          MOV      r4,r0
;;;329    	if (ch == '2')
000978  e3540032          CMP      r4,#0x32
00097c  1a000018          BNE      |L1.2532|
;;;330    	{
;;;331    		Uart_Uclk_En(0, 115200);
000980  e59f125c          LDR      r1,|L1.3044|
000984  e3a00000          MOV      r0,#0
000988  ebfffffe          BL       Uart_Uclk_En
;;;332    		// Timer1 - PCLK/2 setting  : connect UCLK input pin & TOUT1 output pin..
;;;333    		rTCFG0 &= ~(0xff); // prescaler0 = 0
00098c  e3a00444          MOV      r0,#0x44000000
000990  e5900000          LDR      r0,[r0,#0]
000994  e3c000ff          BIC      r0,r0,#0xff
000998  e3a01444          MOV      r1,#0x44000000
00099c  e5810000          STR      r0,[r1,#0]
;;;334    		rTCFG1 &= ~(0xf<<4); // MUX input of timer1 = 1/2
0009a0  e3a00444          MOV      r0,#0x44000000
0009a4  e5900004          LDR      r0,[r0,#4]
0009a8  e3c000f0          BIC      r0,r0,#0xf0
0009ac  e3a01444          MOV      r1,#0x44000000
0009b0  e5810004          STR      r0,[r1,#4]
;;;335    		rTCNTB1 = 0;
0009b4  e3a00000          MOV      r0,#0
0009b8  e3a01444          MOV      r1,#0x44000000
0009bc  e5810018          STR      r0,[r1,#0x18]
;;;336    		rTCMPB1 = 0; // duty 50% clock
0009c0  e3a00000          MOV      r0,#0
0009c4  e3a01444          MOV      r1,#0x44000000
0009c8  e581001c          STR      r0,[r1,#0x1c]
;;;337    		rTCON |= (1<<8); // Timer start
0009cc  e3a00444          MOV      r0,#0x44000000
0009d0  e5900008          LDR      r0,[r0,#8]
0009d4  e3800f40          ORR      r0,r0,#0x100
0009d8  e3a01444          MOV      r1,#0x44000000
0009dc  e5810008          STR      r0,[r1,#8]
0009e0  ea000002          B        |L1.2544|
;;;338    	}
;;;339    	else
;;;340    		Uart_Pclk_En(0, 115200);
                  |L1.2532|
0009e4  e59f11f8          LDR      r1,|L1.3044|
0009e8  e3a00000          MOV      r0,#0
0009ec  ebfffffe          BL       Uart_Pclk_En
;;;341    
;;;342        /*********** UART0 Tx test with interrupt ***********/  
;;;343        isTxInt=1;
                  |L1.2544|
0009f0  e3a00001          MOV      r0,#1
0009f4  e51f1224          LDR      r1,|L1.2008|
0009f8  e5810000          STR      r0,[r1,#0]  ; isTxInt
;;;344        uart0TxStr="ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890->UART0 Tx interrupt test is good!!!!\r\n";
0009fc  e59f01e4          LDR      r0,|L1.3048|
000a00  e51f1234          LDR      r1,|L1.2004|
000a04  e5810000          STR      r0,[r1,#0]  ; uart0TxStr
;;;345        Uart_Printf("\n[Uart channel 0 Tx Interrupt Test]\n");
000a08  e28f0f77          ADR      r0,|L1.3052|
000a0c  ebfffffe          BL       _printf
;;;346    
;;;347        pISR_UART0=(unsigned)Uart0_TxInt;
000a10  e59f01fc          LDR      r0,|L1.3092|
000a14  e59f11fc          LDR      r1,|L1.3096|
000a18  e5810f64          STR      r0,[r1,#0xf64]
;;;348    
;;;349    	rUFCON0 &= ~(1); // FIFO disable
000a1c  e51f05a0          LDR      r0,|L1.1156|
000a20  e5900008          LDR      r0,[r0,#8]
000a24  e3c00001          BIC      r0,r0,#1
000a28  e51f15ac          LDR      r1,|L1.1156|
000a2c  e5810008          STR      r0,[r1,#8]
;;;350    	
;;;351    	rULCON0=(0<<6)|(0<<3)|(0<<2)|(3); // Normal,No parity,one stop bit, 8bit
000a30  e3a00003          MOV      r0,#3
000a34  e1c11000          BIC      r1,r1,r0
000a38  e5810000          STR      r0,[r1,#0]
;;;352        rUCON0 &= 0x400;	// For the PCLK <-> UCLK fuction
000a3c  e1c10000          BIC      r0,r1,r0
000a40  e5900004          LDR      r0,[r0,#4]
000a44  e2000e40          AND      r0,r0,#0x400
000a48  e5810004          STR      r0,[r1,#4]
;;;353        rUCON0 |= (TX_INTTYPE<<9)|(RX_INTTYPE<<8)|(0<<7)|(0<<6)|(0<<5)|(0<<4)|(1<<2)|(1);
000a4c  e1a00001          MOV      r0,r1
000a50  e5900004          LDR      r0,[r0,#4]
000a54  e3800005          ORR      r0,r0,#5
000a58  e5810004          STR      r0,[r1,#4]
;;;354        //Clock,Tx:Def,Rx:Def,Rx timeout:x,Rx error int:x,Loop-back:x,Send break:x,Tx:int,Rx:int
;;;355        Uart_TxEmpty(0); //wait until tx buffer is empty.
000a5c  e3a00000          MOV      r0,#0
000a60  ebfffffe          BL       Uart_TxEmpty
;;;356        rINTMSK=~(BIT_UART0);
000a64  e3e00b80          MVN      r0,#0x20000
000a68  e51f12a0          LDR      r1,|L1.2000|
000a6c  e5810008          STR      r0,[r1,#8]
;;;357        rINTSUBMSK=~(BIT_SUB_TXD0);
000a70  e3e00002          MVN      r0,#2
000a74  e0011000          AND      r1,r1,r0
000a78  e581001c          STR      r0,[r1,#0x1c]
;;;358    
;;;359        while(isTxInt);
000a7c  e1a00000          NOP      
                  |L1.2688|
000a80  e51f02b0          LDR      r0,|L1.2008|
000a84  e5900000          LDR      r0,[r0,#0]  ; isTxInt
000a88  e3500000          CMP      r0,#0
000a8c  1afffffb          BNE      |L1.2688|
;;;360        
;;;361        /*********** UART0 Rx test with interrupt ***********/
;;;362        isRxInt=1;
000a90  e3a00001          MOV      r0,#1
000a94  e51f1244          LDR      r1,|L1.2136|
000a98  e5810000          STR      r0,[r1,#0]  ; isRxInt
;;;363        uart0RxStr=(char *)UARTBUFFER;
000a9c  e3a00544          MOV      r0,#0x11000000
000aa0  e51f11d4          LDR      r1,|L1.2260|
000aa4  e5810000          STR      r0,[r1,#0]  ; uart0RxStr
;;;364        Uart_Printf("\n[Uart channel 0 Rx Interrupt Test]:\n");
000aa8  e28f0f5b          ADR      r0,|L1.3100|
000aac  ebfffffe          BL       _printf
;;;365        Uart_Printf("After typing ENTER key, you will see the characters which was typed by you.");
000ab0  e59f018c          LDR      r0,|L1.3140|
000ab4  ebfffffe          BL       _printf
;;;366        Uart_Printf("\nTo quit, press ENTER key.!!!\n");
000ab8  e28f0f62          ADR      r0,|L1.3144|
000abc  ebfffffe          BL       _printf
;;;367        Uart_TxEmpty(0); //wait until tx buffer is empty.
000ac0  e3a00000          MOV      r0,#0
000ac4  ebfffffe          BL       Uart_TxEmpty
;;;368        pISR_UART0 =(unsigned)Uart0_RxIntOrErr;
000ac8  e59f0198          LDR      r0,|L1.3176|
000acc  e59f1144          LDR      r1,|L1.3096|
000ad0  e5810f64          STR      r0,[r1,#0xf64]
;;;369        rULCON0=(0<<6)|(0<<3)|(0<<2)|(3);	// Normal,No parity,one stop bit, 8bit
000ad4  e3a00003          MOV      r0,#3
000ad8  e51f165c          LDR      r1,|L1.1156|
000adc  e5810000          STR      r0,[r1,#0]
;;;370        rUCON0 &= 0x400;	// For the PCLK <-> UCLK fuction
000ae0  e1c10000          BIC      r0,r1,r0
000ae4  e5900004          LDR      r0,[r0,#4]
000ae8  e2000e40          AND      r0,r0,#0x400
000aec  e5810004          STR      r0,[r1,#4]
;;;371        rUCON0 |= (TX_INTTYPE<<9)|(RX_INTTYPE<<8)|(0<<7)|(1<<6)|(0<<5)|(0<<4)|(1<<2)|(1);
000af0  e1a00001          MOV      r0,r1
000af4  e5900004          LDR      r0,[r0,#4]
000af8  e3800045          ORR      r0,r0,#0x45
000afc  e5810004          STR      r0,[r1,#4]
;;;372        //Clock,Tx:pulse,Rx:pulse,Rx timeout:x,Rx error int:o,Loop-back:x,Send break:x,Tx:int,Rx:int
;;;373    
;;;374        // Clear Int Pending and Unmask    
;;;375        ClearPending(BIT_UART0);
000b00  e3a00b80          MOV      r0,#0x20000
000b04  e2411642          SUB      r1,r1,#0x4200000
000b08  e5810000          STR      r0,[r1,#0]
000b0c  e1c10000          BIC      r0,r1,r0
000b10  e5900010          LDR      r0,[r0,#0x10]
000b14  e5810010          STR      r0,[r1,#0x10]
000b18  e1a00001          MOV      r0,r1
000b1c  e5900010          LDR      r0,[r0,#0x10]
;;;376        rINTMSK=~(BIT_UART0);
000b20  e3e00b80          MVN      r0,#0x20000
000b24  e0011000          AND      r1,r1,r0
000b28  e5810008          STR      r0,[r1,#8]
;;;377        rSUBSRCPND=(BIT_SUB_TXD0|BIT_SUB_RXD0|BIT_SUB_ERR0);    
000b2c  e3a00007          MOV      r0,#7
000b30  e1c11000          BIC      r1,r1,r0
000b34  e5810018          STR      r0,[r1,#0x18]
;;;378        rINTSUBMSK=~(BIT_SUB_RXD0|BIT_SUB_ERR0);
000b38  e3e00005          MVN      r0,#5
000b3c  e0011000          AND      r1,r1,r0
000b40  e581001c          STR      r0,[r1,#0x1c]
;;;379        
;;;380        while(isRxInt);
000b44  e1a00000          NOP      
                  |L1.2888|
000b48  e51f02f8          LDR      r0,|L1.2136|
000b4c  e5900000          LDR      r0,[r0,#0]  ; isRxInt
000b50  e3500000          CMP      r0,#0
000b54  1afffffb          BNE      |L1.2888|
;;;381        
;;;382        rINTSUBMSK|=(BIT_SUB_RXD0|BIT_SUB_ERR0);
000b58  e51f0390          LDR      r0,|L1.2000|
000b5c  e590001c          LDR      r0,[r0,#0x1c]
000b60  e3800005          ORR      r0,r0,#5
000b64  e51f139c          LDR      r1,|L1.2000|
000b68  e581001c          STR      r0,[r1,#0x1c]
;;;383        rINTMSK|=(BIT_UART0);
000b6c  e1a00001          MOV      r0,r1
000b70  e5900008          LDR      r0,[r0,#8]
000b74  e3800b80          ORR      r0,r0,#0x20000
000b78  e5810008          STR      r0,[r1,#8]
;;;384     
;;;385        Uart_Printf("%s\n",(char *)UARTBUFFER);
000b7c  e3a01544          MOV      r1,#0x11000000
000b80  e28f00e4          ADR      r0,|L1.3180|
000b84  ebfffffe          BL       _printf
;;;386        //Uart_Port_Return();
;;;387    }
000b88  e8bd8010          LDMFD    sp!,{r4,pc}
                  |L1.2956|
000b8c  7261555b          DCB      "[Uar"
000b90  68632074          DCB      "t ch"
000b94  656e6e61          DCB      "anne"
000b98  2030206c          DCB      "l 0 "
000b9c  65746e49          DCB      "Inte"
000ba0  70757272          DCB      "rrup"
000ba4  65742074          DCB      "t te"
000ba8  0a5d7473          DCB      "st]\n"
000bac  00000000          DCB      "\0\0\0\0"
                  |L1.2992|
000bb0  656c6553          DCB      "Sele"
000bb4  6f207463          DCB      "ct o"
000bb8  61726570          DCB      "pera"
000bbc  676e6974          DCB      "ting"
000bc0  6f6c6320          DCB      " clo"
000bc4  31206b63          DCB      "ck 1"
000bc8  4350202e          DCB      ". PC"
000bcc  20204b4c          DCB      "LK  "
000bd0  55202e32          DCB      "2. U"
000bd4  204b4c43          DCB      "CLK "
000bd8  6f68430a          DCB      "\nCho"
000bdc  2065736f          DCB      "ose "
000be0  0000203a          DCB      ": \0\0"
                  |L1.3044|
000be4  0001c200          DCD      0x0001c200
                  |L1.3048|
000be8  00000118          DCD      ||.constdata$1|| + 280
                  |L1.3052|
000bec  61555b0a          DCB      "\n[Ua"
000bf0  63207472          DCB      "rt c"
000bf4  6e6e6168          DCB      "hann"
000bf8  30206c65          DCB      "el 0"
000bfc  20785420          DCB      " Tx "
000c00  65746e49          DCB      "Inte"
000c04  70757272          DCB      "rrup"
000c08  65542074          DCB      "t Te"
000c0c  0a5d7473          DCB      "st]\n"
000c10  00000000          DCB      "\0\0\0\0"
                  |L1.3092|
000c14  00000000          DCD      Uart0_TxInt
                  |L1.3096|
000c18  13fff000          DCD      0x13fff000
                  |L1.3100|
000c1c  61555b0a          DCB      "\n[Ua"
000c20  63207472          DCB      "rt c"
000c24  6e6e6168          DCB      "hann"
000c28  30206c65          DCB      "el 0"
000c2c  20785220          DCB      " Rx "
000c30  65746e49          DCB      "Inte"
000c34  70757272          DCB      "rrup"
000c38  65542074          DCB      "t Te"

⌨️ 快捷键说明

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