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

📄 uart0.txt

📁 s3c24a0固件测试代码 ? ? ? ? ?啊 
💻 TXT
📖 第 1 页 / 共 5 页
字号:
0002cc  e59f11d0          LDR      r1,|L1.1188|
0002d0  e5810000          STR      r0,[r1,#0]  ; save_UMCON1
;;;160    }       
0002d4  e12fff1e          BX       lr
                          ENDP

                  Uart_Port_Return PROC
;;;162    void Uart_Port_Return(void)
;;;163    {       
0002d8  e59f0194          LDR      r0,|L1.1140|
;;;164        //Pop UART GPIO port configuration
;;;165        rGPCON_U=save_rGPCON_U;
0002dc  e5900000          LDR      r0,[r0,#0]  ; save_rGPCON_U
0002e0  e59f1188          LDR      r1,|L1.1136|
0002e4  e5810000          STR      r0,[r1,#0]
;;;166        rGPDAT=save_rGPDAT;
0002e8  e59f0188          LDR      r0,|L1.1144|
0002ec  e5900000          LDR      r0,[r0,#0]  ; save_rGPDAT
0002f0  e581000c          STR      r0,[r1,#0xc]
;;;167        rGPPU=save_rGPUP;
0002f4  e59f0180          LDR      r0,|L1.1148|
0002f8  e5900000          LDR      r0,[r0,#0]  ; save_rGPUP
0002fc  e5810010          STR      r0,[r1,#0x10]
;;;168        //Pop Uart control registers 
;;;169        rULCON0=save_ULCON0;   		
000300  e59f0178          LDR      r0,|L1.1152|
000304  e5900000          LDR      r0,[r0,#0]  ; save_ULCON0
000308  e2411840          SUB      r1,r1,#0x400000
00030c  e5810000          STR      r0,[r1,#0]
;;;170        rUCON0 =save_UCON0;   	
000310  e59f0170          LDR      r0,|L1.1160|
000314  e5900000          LDR      r0,[r0,#0]  ; save_UCON0
000318  e5810004          STR      r0,[r1,#4]
;;;171        rUFCON0=save_UFCON0;   		
00031c  e59f0168          LDR      r0,|L1.1164|
000320  e5900000          LDR      r0,[r0,#0]  ; save_UFCON0
000324  e5810008          STR      r0,[r1,#8]
;;;172        rUMCON0=save_UMCON0;   		
000328  e59f0160          LDR      r0,|L1.1168|
00032c  e5900000          LDR      r0,[r0,#0]  ; save_UMCON0
000330  e581000c          STR      r0,[r1,#0xc]
;;;173        rULCON1=save_ULCON1;		
000334  e59f015c          LDR      r0,|L1.1176|
000338  e5900000          LDR      r0,[r0,#0]  ; save_ULCON1
00033c  e2811c40          ADD      r1,r1,#0x4000
000340  e5810000          STR      r0,[r1,#0]
;;;174        rUCON1 =save_UCON1;	
000344  e59f0150          LDR      r0,|L1.1180|
000348  e5900000          LDR      r0,[r0,#0]  ; save_UCON1
00034c  e5810004          STR      r0,[r1,#4]
;;;175        rUFCON1=save_UFCON1;		
000350  e59f0148          LDR      r0,|L1.1184|
000354  e5900000          LDR      r0,[r0,#0]  ; save_UFCON1
000358  e5810008          STR      r0,[r1,#8]
;;;176        rUMCON1=save_UMCON1;
00035c  e59f0140          LDR      r0,|L1.1188|
000360  e5900000          LDR      r0,[r0,#0]  ; save_UMCON1
000364  e581000c          STR      r0,[r1,#0xc]
;;;177    }
000368  e12fff1e          BX       lr
                          ENDP

                  Uart_Uclk_En PROC
;;;179    void Uart_Uclk_En(int ch,int baud)
;;;180    {
00036c  e92d4030          STMFD    sp!,{r4,r5,lr}
000370  e24dd014          SUB      sp,sp,#0x14
000374  e1a04000          MOV      r4,r0
000378  e1a05001          MOV      r5,r1
;;;181        
;;;182        //int ch, baud;
;;;183        Uart_Printf("\nSelect UART channel[0:UART0/1:UART1/2:UART2]:\n");
00037c  e28f0f49          ADR      r0,|L1.1192|
000380  ebfffffe          BL       _printf
;;;184        ch=Uart_GetIntNum();
000384  ebfffffe          BL       Uart_GetIntNum
000388  e1a04000          MOV      r4,r0
;;;185        Uart_Printf("\nSelect baud rate :");
00038c  e28f0f51          ADR      r0,|L1.1240|
000390  ebfffffe          BL       _printf
;;;186        baud=Uart_GetIntNum();
000394  ebfffffe          BL       Uart_GetIntNum
000398  e1a05000          MOV      r5,r0
;;;187        
;;;188        if(ch == 0) {
00039c  e3540000          CMP      r4,#0
0003a0  1a000016          BNE      |L1.1024|
;;;189       	Uart_Select(0);
0003a4  e3a00000          MOV      r0,#0
0003a8  ebfffffe          BL       Uart_Select
;;;190        	rUCON0|=0x400;	// Select UCLK
0003ac  e59f00d0          LDR      r0,|L1.1156|
0003b0  e5900004          LDR      r0,[r0,#4]
0003b4  e3800e40          ORR      r0,r0,#0x400
0003b8  e59f10c4          LDR      r1,|L1.1156|
0003bc  e5810004          STR      r0,[r1,#4]
;;;191         	rUBRDIV0=( (int)(UCLK/16./baud) -1 );	//Baud rate divisior register
0003c0  e1a00005          MOV      r0,r5
0003c4  ebfffffe          BL       _dflt
0003c8  e98d0003          STMIB    sp,{r0,r1}
0003cc  e28f0f46          ADR      r0,|L1.1260|
0003d0  e890000c          LDMIA    r0,{r2,r3}
0003d4  e59d0004          LDR      r0,[sp,#4]
0003d8  ebfffffe          BL       _drdiv
0003dc  e58d000c          STR      r0,[sp,#0xc]
0003e0  e58d1010          STR      r1,[sp,#0x10]
0003e4  ebfffffe          BL       _dfix
0003e8  e2400001          SUB      r0,r0,#1
0003ec  e59f1090          LDR      r1,|L1.1156|
0003f0  e5810028          STR      r0,[r1,#0x28]
;;;192        	Uart_Printf("UCLK is enabled by UART0.\n"); 
0003f4  e28f00f8          ADR      r0,|L1.1268|
0003f8  ebfffffe          BL       _printf
0003fc  ea000019          B        |L1.1128|
;;;193        	}
;;;194        else if(ch==1){
                  |L1.1024|
000400  e3540001          CMP      r4,#1
000404  1a000017          BNE      |L1.1128|
;;;195        	Uart_Select(1);
000408  e3a00001          MOV      r0,#1
00040c  ebfffffe          BL       Uart_Select
;;;196        	rUCON1|=0x400;	// Select UCLK
000410  e59f007c          LDR      r0,|L1.1172|
000414  e5900004          LDR      r0,[r0,#4]
000418  e3800e40          ORR      r0,r0,#0x400
00041c  e59f1070          LDR      r1,|L1.1172|
000420  e5810004          STR      r0,[r1,#4]
;;;197            rUBRDIV1=( (int)(UCLK/16./baud) -1 );	//Baud rate divisior register
000424  e1a00005          MOV      r0,r5
000428  ebfffffe          BL       _dflt
00042c  e98d0003          STMIB    sp,{r0,r1}
000430  e28f00b4          ADR      r0,|L1.1260|
000434  e890000c          LDMIA    r0,{r2,r3}
000438  e59d0004          LDR      r0,[sp,#4]
00043c  ebfffffe          BL       _drdiv
000440  e58d000c          STR      r0,[sp,#0xc]
000444  e58d1010          STR      r1,[sp,#0x10]
000448  ebfffffe          BL       _dfix
00044c  e2400001          SUB      r0,r0,#1
000450  e59f103c          LDR      r1,|L1.1172|
000454  e5810028          STR      r0,[r1,#0x28]
;;;198            Uart_Select(0);
000458  e3a00000          MOV      r0,#0
00045c  ebfffffe          BL       Uart_Select
;;;199            Uart_Printf("UCLK is enabled by UART1.\n");
000460  e28f00a8          ADR      r0,|L1.1296|
000464  ebfffffe          BL       _printf
;;;200        	}
;;;201        //for(i=0;i<100;i++);	// For the satble operation
;;;202    }
                  |L1.1128|
000468  e28dd014          ADD      sp,sp,#0x14
00046c  e8bd8030          LDMFD    sp!,{r4,r5,pc}
                  |L1.1136|
000470  44800000          DCD      0x44800000
                  |L1.1140|
000474  00000048          DCD      ||.bss$2|| + 72
                  |L1.1144|
000478  0000004c          DCD      ||.bss$2|| + 76
                  |L1.1148|
00047c  00000050          DCD      ||.bss$2|| + 80
                  |L1.1152|
000480  00000054          DCD      ||.bss$2|| + 84
                  |L1.1156|
000484  44400000          DCD      0x44400000
                  |L1.1160|
000488  00000058          DCD      ||.bss$2|| + 88
                  |L1.1164|
00048c  0000005c          DCD      ||.bss$2|| + 92
                  |L1.1168|
000490  00000060          DCD      ||.bss$2|| + 96
                  |L1.1172|
000494  44404000          DCD      0x44404000
                  |L1.1176|
000498  00000064          DCD      ||.bss$2|| + 100
                  |L1.1180|
00049c  00000068          DCD      ||.bss$2|| + 104
                  |L1.1184|
0004a0  0000006c          DCD      ||.bss$2|| + 108
                  |L1.1188|
0004a4  00000070          DCD      ||.bss$2|| + 112
                  |L1.1192|
0004a8  6c65530a          DCB      "\nSel"
0004ac  20746365          DCB      "ect "
0004b0  54524155          DCB      "UART"
0004b4  61686320          DCB      " cha"
0004b8  6c656e6e          DCB      "nnel"
0004bc  553a305b          DCB      "[0:U"
0004c0  30545241          DCB      "ART0"
0004c4  553a312f          DCB      "/1:U"
0004c8  31545241          DCB      "ART1"
0004cc  553a322f          DCB      "/2:U"
0004d0  32545241          DCB      "ART2"
0004d4  000a3a5d          DCB      "]:\n\0"
                  |L1.1240|
0004d8  6c65530a          DCB      "\nSel"
0004dc  20746365          DCB      "ect "
0004e0  64756162          DCB      "baud"
0004e4  74617220          DCB      " rat"
0004e8  003a2065          DCB      "e :\0"
                  |L1.1260|
0004ec  00000000          DCFD     0x4146e36000000000
0004f0  4146e360  
                  |L1.1268|
0004f4  4b4c4355          DCB      "UCLK"
0004f8  20736920          DCB      " is "
0004fc  62616e65          DCB      "enab"
000500  2064656c          DCB      "led "
000504  55207962          DCB      "by U"
000508  30545241          DCB      "ART0"
00050c  00000a2e          DCB      ".\n\0\0"
                  |L1.1296|
000510  4b4c4355          DCB      "UCLK"
000514  20736920          DCB      " is "
000518  62616e65          DCB      "enab"
00051c  2064656c          DCB      "led "
000520  55207962          DCB      "by U"
000524  31545241          DCB      "ART1"
000528  00000a2e          DCB      ".\n\0\0"
                          ENDP

                  Uart_Pclk_En PROC
;;;204    void Uart_Pclk_En(int ch, int baud)
;;;205    {
00052c  e92d4030          STMFD    sp!,{r4,r5,lr}
000530  e24dd014          SUB      sp,sp,#0x14
000534  e1a04000          MOV      r4,r0
000538  e1a05001          MOV      r5,r1
;;;206        /*
;;;207        int ch, baud;
;;;208        Uart_Printf("\nSelect UART channel[0:UART0/1:UART1/2:UART2]:\n");
;;;209        ch=Uart_GetIntNum();
;;;210        Uart_Printf("\nSelect baud rate :\n");
;;;211        baud=Uart_GetIntNum();
;;;212        */
;;;213        
;;;214        if(ch == 0) {
00053c  e3540000          CMP      r4,#0
000540  1a000017          BNE      |L1.1444|
;;;215        	Uart_Select(0);
000544  e3a00000          MOV      r0,#0
000548  ebfffffe          BL       Uart_Select
;;;216        	rUCON0&=0x3ff;	// Select PCLK
00054c  e51f00d0          LDR      r0,|L1.1156|
000550  e5900004          LDR      r0,[r0,#4]
000554  e1a00b00          MOV      r0,r0,LSL #22
000558  e1a00b20          MOV      r0,r0,LSR #22
00055c  e51f10e0          LDR      r1,|L1.1156|
000560  e5810004          STR      r0,[r1,#4]
;;;217       	rUBRDIV0=( (int)(PCLK/16./baud) -1 );	//Baud rate divisior register
000564  e1a00005          MOV      r0,r5
000568  ebfffffe          BL       _dflt
00056c  e98d0003          STMIB    sp,{r0,r1}
000570  e28f00a0          ADR      r0,|L1.1560|
000574  e890000c          LDMIA    r0,{r2,r3}
000578  e59d0004          LDR      r0,[sp,#4]
00057c  ebfffffe          BL       _drdiv
000580  e58d000c          STR      r0,[sp,#0xc]
000584  e58d1010          STR      r1,[sp,#0x10]
000588  ebfffffe          BL       _dfix
00058c  e2400001          SUB      r0,r0,#1
000590  e51f1114          LDR      r1,|L1.1156|
000594  e5810028          STR      r0,[r1,#0x28]
;;;218       	Uart_Printf("PCLK is enabled by UART0.\n"); 
000598  e28f0080          ADR      r0,|L1.1568|
00059c  ebfffffe          BL       _printf
0005a0  ea00001a          B        |L1.1552|
;;;219        	}
;;;220        else if(ch==1){
                  |L1.1444|
0005a4  e3540001          CMP      r4,#1
0005a8  1a000018          BNE      |L1.1552|
;;;221        	Uart_Select(1);
0005ac  e3a00001          MOV      r0,#1
0005b0  ebfffffe          BL       Uart_Select
;;;222        	rUCON1|=0x3ff;	// Select PCLK
0005b4  e51f0128          LDR      r0,|L1.1172|
0005b8  e5900004          LDR      r0,[r0,#4]
0005bc  e3800fc0          ORR      r0,r0,#0x300
0005c0  e38000ff          ORR      r0,r0,#0xff
0005c4  e51f1138          LDR      r1,|L1.1172|
0005c8  e5810004          STR      r0,[r1,#4]
;;;223       	rUBRDIV1=( (int)(PCLK/16./baud) -1 );	//Baud rate divisior register
0005cc  e1a00005          MOV      r0,r5
0005d0  ebfffffe          BL       _dflt
0005d4  e98d0003          STMIB    sp,{r0,r1}
0005d8  e28f0038          ADR      r0,|L1.1560|
0005dc  e890000c          LDMIA    r0,{r2,r3}
0005e0  e59d0004          LDR      r0,[sp,#4]
0005e4  ebfffffe          BL       _drdiv
0005e8  e58d000c          STR      r0,[sp,#0xc]
0005ec  e58d1010          STR      r1,[sp,#0x10]
0005f0  ebfffffe          BL       _dfix
0005f4  e2400001          SUB      r0,r0,#1
0005f8  e51f116c          LDR      r1,|L1.1172|
0005fc  e5810028          STR      r0,[r1,#0x28]
;;;224       	Uart_Select(0);
000600  e3a00000          MOV      r0,#0
000604  ebfffffe          BL       Uart_Select
;;;225       	Uart_Printf("PCLK is enabled by UART1.\n");
000608  e28f002c          ADR      r0,|L1.1596|
00060c  ebfffffe          BL       _printf

⌨️ 快捷键说明

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