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

📄 uart1.txt

📁 s3c24a0固件测试代码 ? ? ? ? ?啊 
💻 TXT
📖 第 1 页 / 共 5 页
字号:
;;;114        uart1TxStr="ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890->UART1 Tx interrupt test is good!!!!\r\n";
0002b8  e59f01b4          LDR      r0,|L1.1140|
0002bc  e51f1170          LDR      r1,|L1.340|
0002c0  e5810000          STR      r0,[r1,#0]  ; uart1TxStr
;;;115        Uart_Printf("[Uart channel 1 Tx Interrupt Test]\n");
0002c4  e28f0f6b          ADR      r0,|L1.1144|
0002c8  ebfffffe          BL       _printf
;;;116    
;;;117        //-------------------------------------------------------------------------------------------->
;;;118        Uart_Printf("\nConnect PC[COM1 or COM2] and UART1 of SMDK24A0 with a serial cable!!! \n");
0002cc  e59f01c8          LDR      r0,|L1.1180|
0002d0  ebfffffe          BL       _printf
;;;119        Uart_Printf("Then, press any key........\n");
0002d4  e28f0f71          ADR      r0,|L1.1184|
0002d8  ebfffffe          BL       _printf
;;;120        Uart_Select(1);	// Change the uart port    
0002dc  e3a00001          MOV      r0,#1
0002e0  ebfffffe          BL       Uart_Select
;;;121        Uart_Getch();
0002e4  ebfffffe          BL       Uart_Getch
;;;122        //----------------------------------------->
;;;123    
;;;124        pISR_UART1=(unsigned)Uart1_TxInt;
0002e8  e59f01d0          LDR      r0,|L1.1216|
0002ec  e59f11d0          LDR      r1,|L1.1220|
0002f0  e5810f7c          STR      r0,[r1,#0xf7c]
;;;125    
;;;126        rULCON1=(0<<6)|(0<<3)|(0<<2)|(3);	// Normal,No parity,One stop bit, 8bit
0002f4  e3a00003          MOV      r0,#3
0002f8  e51f11a8          LDR      r1,|L1.344|
0002fc  e5810000          STR      r0,[r1,#0]
;;;127        rUCON1 &= 0x400;	// For the PCLK <-> UCLK fuction
000300  e1c10000          BIC      r0,r1,r0
000304  e5900004          LDR      r0,[r0,#4]
000308  e2000e40          AND      r0,r0,#0x400
00030c  e5810004          STR      r0,[r1,#4]
;;;128        rUCON1 |= (TX_INTTYPE<<9)|(RX_INTTYPE<<8)|(0<<7)|(0<<6)|(0<<5)|(0<<4)|(1<<2)|(1);
000310  e1a00001          MOV      r0,r1
000314  e5900004          LDR      r0,[r0,#4]
000318  e3800005          ORR      r0,r0,#5
00031c  e5810004          STR      r0,[r1,#4]
;;;129        //Clock,Tx:Def,Rx:Def,Rx timeout:x,Rx error int:x,Loop-back:x,Send break:x,Tx:int,Rx:int
;;;130        Uart_TxEmpty(0); //wait until tx buffer is empty.
000320  e3a00000          MOV      r0,#0
000324  ebfffffe          BL       Uart_TxEmpty
;;;131        rINTMSK=~(BIT_UART1);
000328  e3e00880          MVN      r0,#0x800000
00032c  e51f11e4          LDR      r1,|L1.336|
000330  e5810008          STR      r0,[r1,#8]
;;;132        rINTSUBMSK=~(BIT_SUB_TXD1);
000334  e3e00010          MVN      r0,#0x10
000338  e0011000          AND      r1,r1,r0
00033c  e581001c          STR      r0,[r1,#0x1c]
;;;133    
;;;134        while(isTxInt);
000340  e1a00000          NOP      
                  |L1.836|
000344  e51f01f0          LDR      r0,|L1.348|
000348  e5900000          LDR      r0,[r0,#0]  ; isTxInt
00034c  e3500000          CMP      r0,#0
000350  1afffffb          BNE      |L1.836|
;;;135    
;;;136        /*********** UART1 Rx test with interrupt ***********/
;;;137        isRxInt=1;
000354  e3a00001          MOV      r0,#1
000358  e51f11f8          LDR      r1,|L1.360|
00035c  e5810000          STR      r0,[r1,#0]  ; isRxInt
;;;138        uart1RxStr=(volatile char *)UARTBUFFER;
000360  e3a00544          MOV      r0,#0x11000000
000364  e51f1208          LDR      r1,|L1.356|
000368  e5810000          STR      r0,[r1,#0]  ; uart1RxStr
;;;139        Uart_Printf("\n[Uart channel 1 Rx Interrupt Test]:\n");
00036c  e28f0f55          ADR      r0,|L1.1224|
000370  ebfffffe          BL       _printf
;;;140        Uart_Printf("After typing ENTER key, you will see the characters which was typed by you.");
000374  e59f0174          LDR      r0,|L1.1264|
000378  ebfffffe          BL       _printf
;;;141        Uart_Printf("\nTo quit, press ENTER key.!!!\n");
00037c  e28f0f5c          ADR      r0,|L1.1268|
000380  ebfffffe          BL       _printf
;;;142        
;;;143        pISR_UART1 =(unsigned)Uart1_RxIntOrErr;
000384  e59f0188          LDR      r0,|L1.1300|
000388  e59f1134          LDR      r1,|L1.1220|
00038c  e5810f7c          STR      r0,[r1,#0xf7c]
;;;144    
;;;145        rULCON1=(0<<6)|(0<<3)|(0<<2)|(3);	// Normal,No parity,One stop bit, 8bit
000390  e3a00003          MOV      r0,#3
000394  e51f1244          LDR      r1,|L1.344|
000398  e5810000          STR      r0,[r1,#0]
;;;146        rUCON1 &= 0x400;	// For the PCLK <-> UCLK fuction
00039c  e1c10000          BIC      r0,r1,r0
0003a0  e5900004          LDR      r0,[r0,#4]
0003a4  e2000e40          AND      r0,r0,#0x400
0003a8  e5810004          STR      r0,[r1,#4]
;;;147        rUCON1 |= (TX_INTTYPE<<9)|(RX_INTTYPE<<8)|(0<<7)|(1<<6)|(0<<5)|(0<<4)|(1<<2)|(1);
0003ac  e1a00001          MOV      r0,r1
0003b0  e5900004          LDR      r0,[r0,#4]
0003b4  e3800045          ORR      r0,r0,#0x45
0003b8  e5810004          STR      r0,[r1,#4]
;;;148        //Clock,Tx:pulse,Rx:pulse,Rx timeout:x,Rx error int:o,Loop-back:x,Send break:x,Tx:int,Rx:int
;;;149    
;;;150        // Clear Int Pending and Unmask
;;;151        ClearPending(BIT_UART1);
0003bc  e3a00880          MOV      r0,#0x800000
0003c0  e51f1278          LDR      r1,|L1.336|
0003c4  e5810000          STR      r0,[r1,#0]
0003c8  e1c10000          BIC      r0,r1,r0
0003cc  e5900010          LDR      r0,[r0,#0x10]
0003d0  e5810010          STR      r0,[r1,#0x10]
0003d4  e1a00001          MOV      r0,r1
0003d8  e5900010          LDR      r0,[r0,#0x10]
;;;152        rINTMSK=~(BIT_UART1);
0003dc  e3e00880          MVN      r0,#0x800000
0003e0  e0011000          AND      r1,r1,r0
0003e4  e5810008          STR      r0,[r1,#8]
;;;153        rSUBSRCPND=(BIT_SUB_TXD1|BIT_SUB_RXD1|BIT_SUB_ERR1);
0003e8  e3a00038          MOV      r0,#0x38
0003ec  e1c11000          BIC      r1,r1,r0
0003f0  e5810018          STR      r0,[r1,#0x18]
;;;154        rINTSUBMSK=~(BIT_SUB_RXD1|BIT_SUB_ERR1);
0003f4  e3e00028          MVN      r0,#0x28
0003f8  e0011000          AND      r1,r1,r0
0003fc  e581001c          STR      r0,[r1,#0x1c]
;;;155    
;;;156    	rUFCON1 = 0x00; // FIFO disable
000400  e3a00000          MOV      r0,#0
000404  e51f12b4          LDR      r1,|L1.344|
000408  e5810008          STR      r0,[r1,#8]
;;;157        
;;;158        while(isRxInt);
00040c  e1a00000          NOP      
                  |L1.1040|
000410  e51f02b0          LDR      r0,|L1.360|
000414  e5900000          LDR      r0,[r0,#0]  ; isRxInt
000418  e3500000          CMP      r0,#0
00041c  1afffffb          BNE      |L1.1040|
;;;159    
;;;160        rINTSUBMSK|=(BIT_SUB_RXD1|BIT_SUB_TXD1|BIT_SUB_ERR1);
000420  e51f02d8          LDR      r0,|L1.336|
000424  e590001c          LDR      r0,[r0,#0x1c]
000428  e3800038          ORR      r0,r0,#0x38
00042c  e51f12e4          LDR      r1,|L1.336|
000430  e581001c          STR      r0,[r1,#0x1c]
;;;161        rINTMSK|=(BIT_UART1);
000434  e1a00001          MOV      r0,r1
000438  e5900008          LDR      r0,[r0,#8]
00043c  e3800880          ORR      r0,r0,#0x800000
000440  e5810008          STR      r0,[r1,#8]
;;;162    
;;;163        Uart_Printf("%s\n",(char *)UARTBUFFER);
000444  e3a01544          MOV      r1,#0x11000000
000448  e28f00c8          ADR      r0,|L1.1304|
00044c  ebfffffe          BL       _printf
;;;164    
;;;165    
;;;166        //----------------------------------------------------------------------------------------->    
;;;167        Uart_Printf("\nConnect PC[COM1 or COM2] and UART0 of SMDK24A0 with a serial cable!!! \n");
000450  e59f00c4          LDR      r0,|L1.1308|
000454  ebfffffe          BL       _printf
;;;168        Uart_Printf("Then, press any key........\n");
000458  e28f0040          ADR      r0,|L1.1184|
00045c  ebfffffe          BL       _printf
;;;169        Uart_Select(0);
000460  e3a00000          MOV      r0,#0
000464  ebfffffe          BL       Uart_Select
;;;170        Uart_Getch();
000468  ebfffffe          BL       Uart_Getch
;;;171        //--------------------------->
;;;172    
;;;173    
;;;174        Uart_Port_Return();
00046c  ebfffffe          BL       Uart_Port_Return
;;;175    }
000470  e8bd8008          LDMFD    sp!,{r3,pc}
                  |L1.1140|
000474  00000000          DCD      ||.constdata$1||
                  |L1.1144|
000478  7261555b          DCB      "[Uar"
00047c  68632074          DCB      "t ch"
000480  656e6e61          DCB      "anne"
000484  2031206c          DCB      "l 1 "
000488  49207854          DCB      "Tx I"
00048c  7265746e          DCB      "nter"
000490  74707572          DCB      "rupt"
000494  73655420          DCB      " Tes"
000498  000a5d74          DCB      "t]\n\0"
                  |L1.1180|
00049c  0000004c          DCD      ||.constdata$1|| + 76
                  |L1.1184|
0004a0  6e656854          DCB      "Then"
0004a4  7270202c          DCB      ", pr"
0004a8  20737365          DCB      "ess "
0004ac  20796e61          DCB      "any "
0004b0  2e79656b          DCB      "key."
0004b4  2e2e2e2e          DCB      "...."
0004b8  0a2e2e2e          DCB      "...\n"
0004bc  00000000          DCB      "\0\0\0\0"
                  |L1.1216|
0004c0  00000000          DCD      Uart1_TxInt
                  |L1.1220|
0004c4  13fff000          DCD      0x13fff000
                  |L1.1224|
0004c8  61555b0a          DCB      "\n[Ua"
0004cc  63207472          DCB      "rt c"
0004d0  6e6e6168          DCB      "hann"
0004d4  31206c65          DCB      "el 1"
0004d8  20785220          DCB      " Rx "
0004dc  65746e49          DCB      "Inte"
0004e0  70757272          DCB      "rrup"
0004e4  65542074          DCB      "t Te"
0004e8  3a5d7473          DCB      "st]:"
0004ec  0000000a          DCB      "\n\0\0\0"
                  |L1.1264|
0004f0  00000098          DCD      ||.constdata$1|| + 152
                  |L1.1268|
0004f4  206f540a          DCB      "\nTo "
0004f8  74697571          DCB      "quit"
0004fc  7270202c          DCB      ", pr"
000500  20737365          DCB      "ess "
000504  45544e45          DCB      "ENTE"
000508  656b2052          DCB      "R ke"
00050c  21212e79          DCB      "y.!!"
000510  00000a21          DCB      "!\n\0\0"
                  |L1.1300|
000514  00000000          DCD      Uart1_RxIntOrErr
                  |L1.1304|
000518  000a7325          DCB      "%s\n\0"
                  |L1.1308|
00051c  000000e4          DCD      ||.constdata$1|| + 228
                          ENDP

                  Uart1_TxDmaDone PROC
;;;178    void __irq Uart1_TxDmaDone(void)
;;;179    {
000520  e92d0003          STMFD    sp!,{r0,r1}
;;;180        rDMASKTRIG1=0x0;	// Stop Dma1
000524  e3a00000          MOV      r0,#0
000528  e59f1164          LDR      r1,|L1.1684|
00052c  e5810020          STR      r0,[r1,#0x20]
;;;181        isDone=0;
000530  e3a00000          MOV      r0,#0
000534  e59f115c          LDR      r1,|L1.1688|
000538  e5810000          STR      r0,[r1,#0]  ; isDone
;;;182    	// edited by junon
;;;183    	rINTSUBMSK|=(BIT_SUB_DMA1);
00053c  e51f03f4          LDR      r0,|L1.336|
000540  e590001c          LDR      r0,[r0,#0x1c]
000544  e3800640          ORR      r0,r0,#0x4000000
000548  e51f1400          LDR      r1,|L1.336|
00054c  e581001c          STR      r0,[r1,#0x1c]
;;;184    	rSUBSRCPND=(BIT_SUB_DMA1); // clear sub source pending bit	 
000550  e3a00640          MOV      r0,#0x4000000
000554  e1c11000          BIC      r1,r1,r0
000558  e5810018          STR      r0,[r1,#0x18]
;;;185    	rINTMSK |= BIT_DMA; 
00055c  e1c10000          BIC      r0,r1,r0
000560  e5900008          LDR      r0,[r0,#8]
000564  e3800940          ORR      r0,r0,#0x100000
000568  e5810008          STR      r0,[r1,#8]
;;;186    	ClearPending(BIT_DMA);
00056c  e3a00940          MOV      r0,#0x100000
000570  e1c11000          BIC      r1,r1,r0
000574  e5810000          STR      r0,[r1,#0]
000578  e1c10000          BIC      r0,r1,r0
00057c  e5900010          LDR      r0,[r0,#0x10]
000580  e5810010          STR      r0,[r1,#0x10]
000584  e1a00001          MOV      r0,r1
000588  e5900010          LDR      r0,[r0,#0x10]
;;;187    	// end junon
;;;188    }
00058c  e8bd0003          LDMFD    sp!,{r0,r1}
000590  e25ef004          SUBS     pc,lr,#4
                          ENDP

                  Uart1_RxDmaDone PROC
;;;190    void __irq Uart1_RxDmaDone(void)
;;;191    {
000594  e92d0003          STMFD    sp!,{r0,r1}
;;;192        rDMASKTRIG1=0x0;	//DMA1 Channel Off
000598  e3a00000          MOV      r0,#0
00059c  e59f10f0          LDR      r1,|L1.1684|
0005a0  e5810020          STR      r0,[r1,#0x20]
;;;193        isDone=0;
0005a4  e3a00000          MOV      r0,#0
0005a8  e59f10e8          LDR      r1,|L1.1688|
0005ac  e5810000          STR      r0,[r1,#0]  ; isDone
;;;194        *(uart1RxStr+5)='\0';

⌨️ 快捷键说明

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