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

📄 uart0.txt

📁 s3c24a0固件测试代码 ? ? ? ? ?啊 
💻 TXT
📖 第 1 页 / 共 5 页
字号:
; generated by ARM C Compiler, ADS1.2 [Build 842]

; commandline [-errors .\err\uart0.err -O0 -asm -g+ -cpu 5TEJ -fs -Wd -Ec -I.\include "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
                          CODE32

                          AREA ||.text||, CODE, READONLY

                  Ch11_UART PROC
;;;74     void Ch11_UART(void)
;;;75     {
                  |L1.0|
000000  e92d4038          STMFD    sp!,{r3-r5,lr}
;;;76     	int j;
;;;77     	Uart_Printf("Select the Uart Port\n");
000004  e28f0f5f          ADR      r0,|L1.392|
000008  ebfffffe          BL       _printf
;;;78     	Uart_Printf("0.Uart0 test  1.Uart1 test\n");
00000c  e28f0f63          ADR      r0,|L1.416|
000010  ebfffffe          BL       _printf
;;;79     	j=Uart_Getch();
000014  ebfffffe          BL       Uart_Getch
000018  e1a05000          MOV      r5,r0
;;;80     	switch(j)
00001c  e3550030          CMP      r5,#0x30
000020  0a000002          BEQ      |L1.48|
000024  e3550031          CMP      r5,#0x31
000028  1a000054          BNE      |L1.384|
00002c  ea000029          B        |L1.216|
;;;81     		{
;;;82     		case '0': 
;;;83     			while(1)
                  |L1.48|
000030  e1a00000          NOP      
                  |L1.52|
000034  e1a00000          NOP      
;;;84     				{
;;;85     				int i = 0;  
000038  e3a04000          MOV      r4,#0
;;;86     				while(1)
00003c  e1a00000          NOP      
                  |L1.64|
000040  e1a00000          NOP      
;;;87     				{	//display menu
;;;88     					Uart_Printf("%2d:%s  ",i,Uart0_func[i][1]);
000044  e59f0170          LDR      r0,|L1.444|
000048  e0800184          ADD      r0,r0,r4,LSL #3
00004c  e1a01004          MOV      r1,r4
000050  e5902004          LDR      r2,[r0,#4]
000054  e28f0f59          ADR      r0,|L1.448|
000058  ebfffffe          BL       _printf
;;;89     					i++;
00005c  e2844001          ADD      r4,r4,#1
;;;90     					if((int)(Uart0_func[i][0])==0)
000060  e59f0154          LDR      r0,|L1.444|
000064  e7900184          LDR      r0,[r0,r4,LSL #3]
000068  e3500000          CMP      r0,#0
00006c  1a000002          BNE      |L1.124|
;;;91     					{
;;;92     						Uart_Printf("\n");
000070  e28f0f49          ADR      r0,|L1.412|
000074  ebfffffe          BL       _printf
;;;93     						break;
000078  ea000004          B        |L1.144|
;;;94     					}
;;;95     					if((i%4)==0)
                  |L1.124|
00007c  e3140003          TST      r4,#3
000080  1a000001          BNE      |L1.140|
;;;96     					Uart_Printf("\n");
000084  e28f0f44          ADR      r0,|L1.412|
000088  ebfffffe          BL       _printf
;;;97     				}
                  |L1.140|
00008c  eaffffeb          B        |L1.64|
;;;98     				
;;;99     				Uart_Printf("\nSelect the function to test : ");
                  |L1.144|
000090  e28f0f4d          ADR      r0,|L1.460|
000094  ebfffffe          BL       _printf
;;;100    				i = Uart_GetIntNum();
000098  ebfffffe          BL       Uart_GetIntNum
00009c  e1a04000          MOV      r4,r0
;;;101    				Uart_Printf("\n");
0000a0  e28f00f4          ADR      r0,|L1.412|
0000a4  ebfffffe          BL       _printf
;;;102    				if(i==-1) break;
0000a8  e3740001          CMN      r4,#1
0000ac  1a000000          BNE      |L1.180|
0000b0  ea000007          B        |L1.212|
;;;103    				if(i>=0 && (i<(sizeof(Uart0_func)/8)) ) 
                  |L1.180|
0000b4  e3540000          CMP      r4,#0
0000b8  ba000004          BLT      |L1.208|
0000bc  e3540007          CMP      r4,#7
0000c0  2a000002          BCS      |L1.208|
;;;104    				( (void (*)(void)) (Uart0_func[i][0]) )();			
0000c4  e59f10f0          LDR      r1,|L1.444|
0000c8  e7910184          LDR      r0,[r1,r4,LSL #3]
0000cc  e12fff30          BLX      r0
;;;105    				}
                  |L1.208|
0000d0  eaffffd7          B        |L1.52|
;;;106    			break;
                  |L1.212|
0000d4  ea00002a          B        |L1.388|
;;;107    		case '1': 
;;;108    			while(1)
                  |L1.216|
0000d8  e1a00000          NOP      
                  |L1.220|
0000dc  e1a00000          NOP      
;;;109    				{
;;;110    				int i = 0;  
0000e0  e3a04000          MOV      r4,#0
;;;111    				while(1)
0000e4  e1a00000          NOP      
                  |L1.232|
0000e8  e1a00000          NOP      
;;;112    				{	//display menu
;;;113    					Uart_Printf("%2d:%s  ",i,Uart1_func[i][1]);
0000ec  e59f00f8          LDR      r0,|L1.492|
0000f0  e0800184          ADD      r0,r0,r4,LSL #3
0000f4  e1a01004          MOV      r1,r4
0000f8  e5902004          LDR      r2,[r0,#4]
0000fc  e28f00bc          ADR      r0,|L1.448|
000100  ebfffffe          BL       _printf
;;;114    					i++;
000104  e2844001          ADD      r4,r4,#1
;;;115    					if((int)(Uart1_func[i][0])==0)
000108  e59f00dc          LDR      r0,|L1.492|
00010c  e7900184          LDR      r0,[r0,r4,LSL #3]
000110  e3500000          CMP      r0,#0
000114  1a000002          BNE      |L1.292|
;;;116    					{
;;;117    						Uart_Printf("\n");
000118  e28f007c          ADR      r0,|L1.412|
00011c  ebfffffe          BL       _printf
;;;118    						break;
000120  ea000004          B        |L1.312|
;;;119    					}
;;;120    					if((i%4)==0)
                  |L1.292|
000124  e3140003          TST      r4,#3
000128  1a000001          BNE      |L1.308|
;;;121    					Uart_Printf("\n");
00012c  e28f0068          ADR      r0,|L1.412|
000130  ebfffffe          BL       _printf
;;;122    				}
                  |L1.308|
000134  eaffffeb          B        |L1.232|
;;;123    				
;;;124    				Uart_Printf("\nSelect the function to test : ");
                  |L1.312|
000138  e28f008c          ADR      r0,|L1.460|
00013c  ebfffffe          BL       _printf
;;;125    				i = Uart_GetIntNum();
000140  ebfffffe          BL       Uart_GetIntNum
000144  e1a04000          MOV      r4,r0
;;;126    				Uart_Printf("\n");
000148  e28f004c          ADR      r0,|L1.412|
00014c  ebfffffe          BL       _printf
;;;127    				if(i==-1) break;
000150  e3740001          CMN      r4,#1
000154  1a000000          BNE      |L1.348|
000158  ea000007          B        |L1.380|
;;;128    				if(i>=0 && (i<(sizeof(Uart1_func)/8)) ) 
                  |L1.348|
00015c  e3540000          CMP      r4,#0
000160  ba000004          BLT      |L1.376|
000164  e3540009          CMP      r4,#9
000168  2a000002          BCS      |L1.376|
;;;129    				( (void (*)(void)) (Uart1_func[i][0]) )();			
00016c  e59f1078          LDR      r1,|L1.492|
000170  e7910184          LDR      r0,[r1,r4,LSL #3]
000174  e12fff30          BLX      r0
;;;130    				}
                  |L1.376|
000178  eaffffd7          B        |L1.220|
;;;131    			break;
                  |L1.380|
00017c  ea000000          B        |L1.388|
;;;132    		default:
;;;133    			break;
                  |L1.384|
000180  e1a00000          NOP      
;;;134    		}
;;;135    }
                  |L1.388|
000184  e8bd8038          LDMFD    sp!,{r3-r5,pc}
                  |L1.392|
000188  656c6553          DCB      "Sele"
00018c  74207463          DCB      "ct t"
000190  55206568          DCB      "he U"
000194  20747261          DCB      "art "
000198  74726f50          DCB      "Port"
                  |L1.412|
00019c  0000000a          DCB      "\n\0\0\0"
                  |L1.416|
0001a0  61552e30          DCB      "0.Ua"
0001a4  20307472          DCB      "rt0 "
0001a8  74736574          DCB      "test"
0001ac  2e312020          DCB      "  1."
0001b0  74726155          DCB      "Uart"
0001b4  65742031          DCB      "1 te"
0001b8  000a7473          DCB      "st\n\0"
                  |L1.444|
0001bc  00000000          DCD      Uart0_func
                  |L1.448|
0001c0  3a643225          DCB      "%2d:"
0001c4  20207325          DCB      "%s  "
0001c8  00000000          DCB      "\0\0\0\0"
                  |L1.460|
0001cc  6c65530a          DCB      "\nSel"
0001d0  20746365          DCB      "ect "
0001d4  20656874          DCB      "the "
0001d8  636e7566          DCB      "func"
0001dc  6e6f6974          DCB      "tion"
0001e0  206f7420          DCB      " to "
0001e4  74736574          DCB      "test"
0001e8  00203a20          DCB      " : \0"
                  |L1.492|
0001ec  00000000          DCD      Uart1_func
                          ENDP

                  Uart_Port_Set PROC
;;;137    void Uart_Port_Set(void)
;;;138    {
0001f0  e59f0278          LDR      r0,|L1.1136|
;;;139    	 //edited by junon
;;;140        //Push UART GPIO port configuration 
;;;141        save_rGPCON_U=rGPCON_U; 
0001f4  e5900000          LDR      r0,[r0,#0]
0001f8  e59f1274          LDR      r1,|L1.1140|
0001fc  e5810000          STR      r0,[r1,#0]  ; save_rGPCON_U
;;;142        save_rGPDAT=rGPDAT;
000200  e59f0268          LDR      r0,|L1.1136|
000204  e590000c          LDR      r0,[r0,#0xc]
000208  e59f1268          LDR      r1,|L1.1144|
00020c  e5810000          STR      r0,[r1,#0]  ; save_rGPDAT
;;;143        save_rGPUP=rGPPU;
000210  e59f0258          LDR      r0,|L1.1136|
000214  e5900010          LDR      r0,[r0,#0x10]
000218  e59f125c          LDR      r1,|L1.1148|
00021c  e5810000          STR      r0,[r1,#0]  ; save_rGPUP
;;;144        //Configure UART port for 24A0
;;;145        rGPCON_U|=(2<<24)|(2<<22)|(2<<20)|(2<<18);	// RxD1, TxD1, RTS1, CTS1 port select
000220  e59f0248          LDR      r0,|L1.1136|
000224  e5900000          LDR      r0,[r0,#0]
000228  e38007aa          ORR      r0,r0,#0x2a80000
00022c  e59f123c          LDR      r1,|L1.1136|
000230  e5810000          STR      r0,[r1,#0]
;;;146        rGPCON_U&=~((1<<24)|(1<<22)|(1<<20)|(1<<18));	// RxD1, TxD1, RTS1, CTS1 port select
000234  e1a00001          MOV      r0,r1
000238  e5900000          LDR      r0,[r0,#0]
00023c  e3c00755          BIC      r0,r0,#0x1540000
000240  e5810000          STR      r0,[r1,#0]
;;;147        rGPPU|=(0xf<<28);	//Uart port pull-up disable
000244  e1a00001          MOV      r0,r1
000248  e5900010          LDR      r0,[r0,#0x10]
00024c  e38004f0          ORR      r0,r0,#0xf0000000
000250  e5810010          STR      r0,[r1,#0x10]
;;;148        //rINTSUBMSK=0x7ff;   //SUBINT ALL MASK
;;;149        //end junon
;;;150        
;;;151        //Push Uart control registers 
;;;152        save_ULCON0=rULCON0;   		
000254  e2410840          SUB      r0,r1,#0x400000
000258  e5900000          LDR      r0,[r0,#0]
00025c  e59f121c          LDR      r1,|L1.1152|
000260  e5810000          STR      r0,[r1,#0]  ; save_ULCON0
;;;153        save_UCON0=rUCON0;	   	
000264  e59f0218          LDR      r0,|L1.1156|
000268  e5900004          LDR      r0,[r0,#4]
00026c  e59f1214          LDR      r1,|L1.1160|
000270  e5810000          STR      r0,[r1,#0]  ; save_UCON0
;;;154        save_UFCON0=rUFCON0;   		
000274  e59f0208          LDR      r0,|L1.1156|
000278  e5900008          LDR      r0,[r0,#8]
00027c  e59f1208          LDR      r1,|L1.1164|
000280  e5810000          STR      r0,[r1,#0]  ; save_UFCON0
;;;155        save_UMCON0=rUMCON0;   		
000284  e59f01f8          LDR      r0,|L1.1156|
000288  e590000c          LDR      r0,[r0,#0xc]
00028c  e59f11fc          LDR      r1,|L1.1168|
000290  e5810000          STR      r0,[r1,#0]  ; save_UMCON0
;;;156        save_ULCON1=rULCON1;		
000294  e59f01f8          LDR      r0,|L1.1172|
000298  e5900000          LDR      r0,[r0,#0]
00029c  e59f11f4          LDR      r1,|L1.1176|
0002a0  e5810000          STR      r0,[r1,#0]  ; save_ULCON1
;;;157        save_UCON1 =rUCON1;		
0002a4  e59f01e8          LDR      r0,|L1.1172|
0002a8  e5900004          LDR      r0,[r0,#4]
0002ac  e59f11e8          LDR      r1,|L1.1180|
0002b0  e5810000          STR      r0,[r1,#0]  ; save_UCON1
;;;158        save_UFCON1=rUFCON1;		
0002b4  e59f01d8          LDR      r0,|L1.1172|
0002b8  e5900008          LDR      r0,[r0,#8]
0002bc  e59f11dc          LDR      r1,|L1.1184|
0002c0  e5810000          STR      r0,[r1,#0]  ; save_UFCON1
;;;159        save_UMCON1=rUMCON1;	
0002c4  e59f01c8          LDR      r0,|L1.1172|
0002c8  e590000c          LDR      r0,[r0,#0xc]

⌨️ 快捷键说明

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