📄 uart0.txt
字号:
; 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 + -