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

📄 uart0.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 TXT
📖 第 1 页 / 共 5 页
字号:
; generated by ARM C Compiler, ADS1.2 [Build 805]

; commandline [-errors .\err\uart0.err -O0 -asm -g+ -cpu ARM920T -fs "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
                          CODE32

                          AREA ||.text||, CODE, READONLY

                  Uart_Port_Set PROC
;;;70     void Uart_Port_Set(void)
;;;71     {
                  |L1.0|
000000  e3a00456          MOV      r0,#0x56000000
;;;72         //Push UART GPIO port configuration
;;;73         save_rGPHCON=rGPHCON; 
000004  e5900070          LDR      r0,[r0,#0x70]
000008  e59f1454          LDR      r1,|L1.1124|
00000c  e5810000          STR      r0,[r1,#0]  ; save_rGPHCON
;;;74         save_rGPHDAT=rGPHDAT;
000010  e3a00456          MOV      r0,#0x56000000
000014  e5900074          LDR      r0,[r0,#0x74]
000018  e59f1448          LDR      r1,|L1.1128|
00001c  e5810000          STR      r0,[r1,#0]  ; save_rGPHDAT
;;;75         save_rGPHUP=rGPHUP;
000020  e3a00456          MOV      r0,#0x56000000
000024  e5900078          LDR      r0,[r0,#0x78]
000028  e59f143c          LDR      r1,|L1.1132|
00002c  e5810000          STR      r0,[r1,#0]  ; save_rGPHUP
;;;76         //Configure UART port
;;;77         rGPHCON&=0x3c0000;
000030  e3a00456          MOV      r0,#0x56000000
000034  e5900070          LDR      r0,[r0,#0x70]
000038  e20009f0          AND      r0,r0,#0x3c0000
00003c  e3a01456          MOV      r1,#0x56000000
000040  e5810070          STR      r0,[r1,#0x70]
;;;78         rGPHCON|=0x2aaaa;	// enable all uart channel
000044  e3a00456          MOV      r0,#0x56000000
000048  e5900070          LDR      r0,[r0,#0x70]
00004c  e59f141c          LDR      r1,|L1.1136|
000050  e1800001          ORR      r0,r0,r1
000054  e3a01456          MOV      r1,#0x56000000
000058  e5810070          STR      r0,[r1,#0x70]
;;;79         rGPHUP|=0x1ff;	//Uart port pull-up disable
00005c  e3a00456          MOV      r0,#0x56000000
000060  e5900078          LDR      r0,[r0,#0x78]
000064  e3800f40          ORR      r0,r0,#0x100
000068  e38000ff          ORR      r0,r0,#0xff
00006c  e3a01456          MOV      r1,#0x56000000
000070  e5810078          STR      r0,[r1,#0x78]
;;;80     	rGPGCON|=(0xf<<18); // nRTS1, nCTS1
000074  e3a00456          MOV      r0,#0x56000000
000078  e5900060          LDR      r0,[r0,#0x60]
00007c  e38009f0          ORR      r0,r0,#0x3c0000
000080  e3a01456          MOV      r1,#0x56000000
000084  e5810060          STR      r0,[r1,#0x60]
;;;81     	rGPGUP|=(0x3<<9);	
000088  e3a00456          MOV      r0,#0x56000000
00008c  e5900068          LDR      r0,[r0,#0x68]
000090  e3800e60          ORR      r0,r0,#0x600
000094  e3a01456          MOV      r1,#0x56000000
000098  e5810068          STR      r0,[r1,#0x68]
;;;82         //rINTSUBMSK=0x7ff;   //SUBINT ALL MASK
;;;83         //Push Uart control registers 
;;;84         save_ULCON0=rULCON0;   		
00009c  e3a00450          MOV      r0,#0x50000000
0000a0  e5900000          LDR      r0,[r0,#0]
0000a4  e59f13c8          LDR      r1,|L1.1140|
0000a8  e5810000          STR      r0,[r1,#0]  ; save_ULCON0
;;;85         save_UCON0=rUCON0;	   	
0000ac  e3a00450          MOV      r0,#0x50000000
0000b0  e5900004          LDR      r0,[r0,#4]
0000b4  e59f13bc          LDR      r1,|L1.1144|
0000b8  e5810000          STR      r0,[r1,#0]  ; save_UCON0
;;;86         save_UFCON0=rUFCON0;   		
0000bc  e3a00450          MOV      r0,#0x50000000
0000c0  e5900008          LDR      r0,[r0,#8]
0000c4  e59f13b0          LDR      r1,|L1.1148|
0000c8  e5810000          STR      r0,[r1,#0]  ; save_UFCON0
;;;87         save_UMCON0=rUMCON0;   		
0000cc  e3a00450          MOV      r0,#0x50000000
0000d0  e590000c          LDR      r0,[r0,#0xc]
0000d4  e59f13a4          LDR      r1,|L1.1152|
0000d8  e5810000          STR      r0,[r1,#0]  ; save_UMCON0
;;;88         save_ULCON1=rULCON1;		
0000dc  e59f03a0          LDR      r0,|L1.1156|
0000e0  e5900000          LDR      r0,[r0,#0]
0000e4  e59f139c          LDR      r1,|L1.1160|
0000e8  e5810000          STR      r0,[r1,#0]  ; save_ULCON1
;;;89         save_UCON1 =rUCON1;		
0000ec  e59f0390          LDR      r0,|L1.1156|
0000f0  e5900004          LDR      r0,[r0,#4]
0000f4  e59f1390          LDR      r1,|L1.1164|
0000f8  e5810000          STR      r0,[r1,#0]  ; save_UCON1
;;;90         save_UFCON1=rUFCON1;		
0000fc  e59f0380          LDR      r0,|L1.1156|
000100  e5900008          LDR      r0,[r0,#8]
000104  e59f1384          LDR      r1,|L1.1168|
000108  e5810000          STR      r0,[r1,#0]  ; save_UFCON1
;;;91         save_UMCON1=rUMCON1;	
00010c  e59f0370          LDR      r0,|L1.1156|
000110  e590000c          LDR      r0,[r0,#0xc]
000114  e59f1378          LDR      r1,|L1.1172|
000118  e5810000          STR      r0,[r1,#0]  ; save_UMCON1
;;;92         save_ULCON2=rULCON2;		
00011c  e59f0374          LDR      r0,|L1.1176|
000120  e5900000          LDR      r0,[r0,#0]
000124  e59f1370          LDR      r1,|L1.1180|
000128  e5810000          STR      r0,[r1,#0]  ; save_ULCON2
;;;93         save_UCON2 =rUCON2;		
00012c  e59f0364          LDR      r0,|L1.1176|
000130  e5900004          LDR      r0,[r0,#4]
000134  e59f1364          LDR      r1,|L1.1184|
000138  e5810000          STR      r0,[r1,#0]  ; save_UCON2
;;;94         save_UFCON2=rUFCON2;		
00013c  e59f0354          LDR      r0,|L1.1176|
000140  e5900008          LDR      r0,[r0,#8]
000144  e59f1358          LDR      r1,|L1.1188|
000148  e5810000          STR      r0,[r1,#0]  ; save_UFCON2
;;;95         save_UMCON2=rUMCON2;		
00014c  e59f0344          LDR      r0,|L1.1176|
000150  e590000c          LDR      r0,[r0,#0xc]
000154  e59f134c          LDR      r1,|L1.1192|
000158  e5810000          STR      r0,[r1,#0]  ; save_UMCON2
;;;96     	save_UBRDIV0=rUBRDIV0;
00015c  e3a00450          MOV      r0,#0x50000000
000160  e5900028          LDR      r0,[r0,#0x28]
000164  e59f1340          LDR      r1,|L1.1196|
000168  e5810000          STR      r0,[r1,#0]  ; save_UBRDIV0
;;;97     	save_UBRDIV1=rUBRDIV1;
00016c  e59f0310          LDR      r0,|L1.1156|
000170  e5900028          LDR      r0,[r0,#0x28]
000174  e59f1334          LDR      r1,|L1.1200|
000178  e5810000          STR      r0,[r1,#0]  ; save_UBRDIV1
;;;98     	save_UBRDIV2=rUBRDIV2;
00017c  e59f0314          LDR      r0,|L1.1176|
000180  e5900028          LDR      r0,[r0,#0x28]
000184  e59f1328          LDR      r1,|L1.1204|
000188  e5810000          STR      r0,[r1,#0]  ; save_UBRDIV2
;;;99         //Initialize UART1,2 port
;;;100    }       
00018c  e1a0f00e          MOV      pc,lr
                          ENDP

                  Uart_Fclkn_Dis PROC
;;;222    void Uart_Fclkn_Dis(void) // for 2442A
;;;223    {
000190  e92d4008          STMFD    sp!,{r3,lr}
;;;224    	// S/W work-around for using FCLK/n
;;;225    	rGPHCON = rGPHCON & ~(3<<16); //GPH8(UEXTCLK) input 
000194  e3a00456          MOV      r0,#0x56000000
000198  e5900070          LDR      r0,[r0,#0x70]
00019c  e3c00bc0          BIC      r0,r0,#0x30000
0001a0  e3a01456          MOV      r1,#0x56000000
0001a4  e5810070          STR      r0,[r1,#0x70]
;;;226    	Delay(1);
0001a8  e3a00001          MOV      r0,#1
0001ac  ebfffffe          BL       Delay
;;;227    	rGPHCON = rGPHCON & ~(3<<16) | (1<<17); //GPH8(UEXTCLK) UEXTCLK
0001b0  e3a00456          MOV      r0,#0x56000000
0001b4  e5900070          LDR      r0,[r0,#0x70]
0001b8  e3c00bc0          BIC      r0,r0,#0x30000
0001bc  e3800b80          ORR      r0,r0,#0x20000
0001c0  e3a01456          MOV      r1,#0x56000000
0001c4  e5810070          STR      r0,[r1,#0x70]
;;;228    }
0001c8  e8bd8008          LDMFD    sp!,{r3,pc}
                          ENDP

                  Uart_Port_Return PROC
;;;102    void Uart_Port_Return(void)
;;;103    {       
0001cc  e92d4008          STMFD    sp!,{r3,lr}
;;;104        //Pop UART GPIO port configuration
;;;105        rGPHCON=save_rGPHCON;
0001d0  e59f028c          LDR      r0,|L1.1124|
0001d4  e5900000          LDR      r0,[r0,#0]  ; save_rGPHCON
0001d8  e3a01456          MOV      r1,#0x56000000
0001dc  e5810070          STR      r0,[r1,#0x70]
;;;106        rGPHDAT=save_rGPHDAT;
0001e0  e59f0280          LDR      r0,|L1.1128|
0001e4  e5900000          LDR      r0,[r0,#0]  ; save_rGPHDAT
0001e8  e3a01456          MOV      r1,#0x56000000
0001ec  e5810074          STR      r0,[r1,#0x74]
;;;107        rGPHUP=save_rGPHUP;
0001f0  e59f0274          LDR      r0,|L1.1132|
0001f4  e5900000          LDR      r0,[r0,#0]  ; save_rGPHUP
0001f8  e3a01456          MOV      r1,#0x56000000
0001fc  e5810078          STR      r0,[r1,#0x78]
;;;108        //Pop Uart control registers 
;;;109        rULCON0=save_ULCON0;   		
000200  e59f026c          LDR      r0,|L1.1140|
000204  e5900000          LDR      r0,[r0,#0]  ; save_ULCON0
000208  e3a01450          MOV      r1,#0x50000000
00020c  e5810000          STR      r0,[r1,#0]
;;;110        rUCON0 =save_UCON0;   	
000210  e59f0260          LDR      r0,|L1.1144|
000214  e5900000          LDR      r0,[r0,#0]  ; save_UCON0
000218  e3a01450          MOV      r1,#0x50000000
00021c  e5810004          STR      r0,[r1,#4]
;;;111        rUFCON0=save_UFCON0;   		
000220  e59f0254          LDR      r0,|L1.1148|
000224  e5900000          LDR      r0,[r0,#0]  ; save_UFCON0
000228  e3a01450          MOV      r1,#0x50000000
00022c  e5810008          STR      r0,[r1,#8]
;;;112        rUMCON0=save_UMCON0;   		
000230  e59f0248          LDR      r0,|L1.1152|
000234  e5900000          LDR      r0,[r0,#0]  ; save_UMCON0
000238  e3a01450          MOV      r1,#0x50000000
00023c  e581000c          STR      r0,[r1,#0xc]
;;;113        rULCON1=save_ULCON1;		
000240  e59f0240          LDR      r0,|L1.1160|
000244  e5900000          LDR      r0,[r0,#0]  ; save_ULCON1
000248  e2811c40          ADD      r1,r1,#0x4000
00024c  e5810000          STR      r0,[r1,#0]
;;;114        rUCON1 =save_UCON1;	
000250  e59f0234          LDR      r0,|L1.1164|
000254  e5900000          LDR      r0,[r0,#0]  ; save_UCON1
000258  e5810004          STR      r0,[r1,#4]
;;;115        rUFCON1=save_UFCON1;		
00025c  e59f022c          LDR      r0,|L1.1168|
000260  e5900000          LDR      r0,[r0,#0]  ; save_UFCON1
000264  e5810008          STR      r0,[r1,#8]
;;;116        rUMCON1=save_UMCON1;
000268  e59f0224          LDR      r0,|L1.1172|
00026c  e5900000          LDR      r0,[r0,#0]  ; save_UMCON1
000270  e581000c          STR      r0,[r1,#0xc]
;;;117        rULCON2=save_ULCON2;		
000274  e59f0220          LDR      r0,|L1.1180|
000278  e5900000          LDR      r0,[r0,#0]  ; save_ULCON2
00027c  e2811c40          ADD      r1,r1,#0x4000
000280  e5810000          STR      r0,[r1,#0]
;;;118        rUCON2 =save_UCON2;	
000284  e59f0214          LDR      r0,|L1.1184|
000288  e5900000          LDR      r0,[r0,#0]  ; save_UCON2
00028c  e5810004          STR      r0,[r1,#4]
;;;119        rUFCON2=save_UFCON2;		
000290  e59f020c          LDR      r0,|L1.1188|
000294  e5900000          LDR      r0,[r0,#0]  ; save_UFCON2
000298  e5810008          STR      r0,[r1,#8]
;;;120        rUMCON2=save_UMCON2;
00029c  e59f0204          LDR      r0,|L1.1192|
0002a0  e5900000          LDR      r0,[r0,#0]  ; save_UMCON2
0002a4  e581000c          STR      r0,[r1,#0xc]
;;;121    	rUBRDIV0=save_UBRDIV0;
0002a8  e59f01fc          LDR      r0,|L1.1196|
0002ac  e5900000          LDR      r0,[r0,#0]  ; save_UBRDIV0
0002b0  e3a01450          MOV      r1,#0x50000000
0002b4  e5810028          STR      r0,[r1,#0x28]
;;;122    	rUBRDIV1=save_UBRDIV1;
0002b8  e59f01f0          LDR      r0,|L1.1200|
0002bc  e5900000          LDR      r0,[r0,#0]  ; save_UBRDIV1
0002c0  e2811c40          ADD      r1,r1,#0x4000
0002c4  e5810028          STR      r0,[r1,#0x28]
;;;123    	rUBRDIV2=save_UBRDIV2;
0002c8  e59f01e4          LDR      r0,|L1.1204|
0002cc  e5900000          LDR      r0,[r0,#0]  ; save_UBRDIV2
0002d0  e2811c40          ADD      r1,r1,#0x4000
0002d4  e5810028          STR      r0,[r1,#0x28]
;;;124    	Uart_Fclkn_Dis();
0002d8  ebfffffe          BL       Uart_Fclkn_Dis
;;;125    }
0002dc  e8bd8008          LDMFD    sp!,{r3,pc}
                          ENDP

                  Uart_Uextclk_En PROC
;;;128    void Uart_Uextclk_En(int ch,int baud, int clock)
;;;129    {
0002e0  e92d4070          STMFD    sp!,{r4-r6,lr}
0002e4  e24dd020          SUB      sp,sp,#0x20
0002e8  e1a06000          MOV      r6,r0
0002ec  e1a04001          MOV      r4,r1
0002f0  e1a05002          MOV      r5,r2
;;;130        if(ch == 0) {
0002f4  e3560000          CMP      r6,#0
0002f8  1a00001c          BNE      |L1.880|
;;;131    	   	rUCON0  = rUCON0 & ~(1<<11) |(1<<10);	// Select UEXTCLK
0002fc  e3a00450          MOV      r0,#0x50000000
000300  e5900004          LDR      r0,[r0,#4]
000304  e3c00e80          BIC      r0,r0,#0x800
000308  e3800e40          ORR      r0,r0,#0x400
00030c  e3a01450          MOV      r1,#0x50000000
000310  e5810004          STR      r0,[r1,#4]
;;;132         	rUBRDIV0=( (int)(clock/16./baud) -1 );	//Baud rate divisior register
000314  e1a00005          MOV      r0,r5
000318  ebfffffe          BL       _dflt
00031c  e88d0003          STMIA    sp,{r0,r1}
000320  e28f0f64          ADR      r0,|L1.1208|
000324  e890000c          LDMIA    r0,{r2,r3}
000328  e59d0000          LDR      r0,[sp,#0]
00032c  ebfffffe          BL       _dmul
000330  e58d0010          STR      r0,[sp,#0x10]
000334  e58d1014          STR      r1,[sp,#0x14]
000338  e1a00004          MOV      r0,r4

⌨️ 快捷键说明

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