📄 dvstest.txt
字号:
; generated by ARM C Compiler, ADS1.2 [Build 805]
; commandline [-errors .\err\dvstest.err -O0 -asm -g+ -cpu ARM920T -fs "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
CODE32
AREA ||.text||, CODE, READONLY
Lcd_Int_Frame_ForDvs PROC
;;;176 void __irq Lcd_Int_Frame_ForDvs(void)
;;;177 {
|L1.0|
000000 e92d507f STMFD sp!,{r0-r6,r12,lr}
000004 e24dd01c SUB sp,sp,#0x1c
;;;178 int i;
;;;179
;;;180 rINTMSK |= (BIT_LCD);
000008 e3a0044a MOV r0,#0x4a000000
00000c e5900008 LDR r0,[r0,#8]
000010 e3800b40 ORR r0,r0,#0x10000
000014 e3a0144a MOV r1,#0x4a000000
000018 e5810008 STR r0,[r1,#8]
;;;181
;;;182 if((rLCDCON5 & (0x3<<15)))
00001c e3a0044d MOV r0,#0x4d000000
000020 e5900010 LDR r0,[r0,#0x10]
000024 e3100b60 TST r0,#0x18000
000028 0a000002 BEQ |L1.56|
;;;183 { // if Not VSYNC period
;;;184
;;;185 Uart_Printf("-");
00002c e28f0fce ADR r0,|L1.876|
000030 ebfffffe BL Uart_Printf
000034 ea0000c9 B |L1.864|
;;;186 }
;;;187 else
;;;188 { // if in VSYNC period
;;;189 if( Idle_flag==1)
|L1.56|
000038 e59f0330 LDR r0,|L1.880|
00003c e1d000f0 LDRSH r0,[r0,#0] ; Idle_flag
000040 e3500001 CMP r0,#1
000044 1a000060 BNE |L1.460|
;;;190 { // Idle -> Clkdiv=1:4:4
;;;191 rLCDCON1 &= ~(0x1); // ENVID off.
000048 e3a0044d MOV r0,#0x4d000000
00004c e5900000 LDR r0,[r0,#0]
000050 e3c00001 BIC r0,r0,#1
000054 e3a0144d MOV r1,#0x4d000000
000058 e5810000 STR r0,[r1,#0]
;;;192
;;;193 #if CPU2442A==1
;;;194 rCAMDIVN = (rCAMDIVN & ~(3<<8)) | (1<<8); // 1:3:6 -> 1:6:12
00005c e3a0044c MOV r0,#0x4c000000
000060 e5900018 LDR r0,[r0,#0x18]
000064 e3c00fc0 BIC r0,r0,#0x300
000068 e3800f40 ORR r0,r0,#0x100
00006c e3a0144c MOV r1,#0x4c000000
000070 e5810018 STR r0,[r1,#0x18]
;;;195 rCLKDIVN &= ~(1<<0); // 1:6:12 -> 1:6:6
000074 e3a0044c MOV r0,#0x4c000000
000078 e5900014 LDR r0,[r0,#0x14]
00007c e3c00001 BIC r0,r0,#1
000080 e3a0144c MOV r1,#0x4c000000
000084 e5810014 STR r0,[r1,#0x14]
;;;196 #else
;;;197 CLKDIV144();
;;;198 #endif
;;;199 #if CPU2442A==1
;;;200 rCAMDIVN |= BIT_DVS_ON; // (1<<12), DVS off.
000088 e3a0044c MOV r0,#0x4c000000
00008c e5900018 LDR r0,[r0,#0x18]
000090 e3800d40 ORR r0,r0,#0x1000
000094 e3a0144c MOV r1,#0x4c000000
000098 e5810018 STR r0,[r1,#0x18]
;;;201 rGPGDAT &= ~(1<<11);
00009c e3a00456 MOV r0,#0x56000000
0000a0 e5900064 LDR r0,[r0,#0x64]
0000a4 e3c00e80 BIC r0,r0,#0x800
0000a8 e3a01456 MOV r1,#0x56000000
0000ac e5810064 STR r0,[r1,#0x64]
;;;202 #endif
;;;203 Max1718_Set(DVS_VOLTL);
0000b0 e3a00064 MOV r0,#0x64
0000b4 ebfffffe BL Max1718_Set
;;;204 UPDATE_REFRESH(Hclk/2);
0000b8 e59f02b4 LDR r0,|L1.884|
0000bc e5900000 LDR r0,[r0,#0] ; Hclk
0000c0 ebfffffe BL _ffltu
0000c4 e1a06000 MOV r6,r0
0000c8 e3a015fc MOV r1,#0x3f000000
0000cc ebfffffe BL _fmul
0000d0 e1a05000 MOV r5,r0
0000d4 ebfffffe BL _f2d
0000d8 e98d0003 STMIB sp,{r0,r1}
0000dc e28f0fa5 ADR r0,|L1.888|
0000e0 e890000c LDMIA r0,{r2,r3}
0000e4 e59d0004 LDR r0,[sp,#4]
0000e8 ebfffffe BL _dmul
0000ec e58d000c STR r0,[sp,#0xc]
0000f0 e58d1010 STR r1,[sp,#0x10]
0000f4 e28f0fa1 ADR r0,|L1.896|
0000f8 e890000c LDMIA r0,{r2,r3}
0000fc e59d000c LDR r0,[sp,#0xc]
000100 ebfffffe BL _ddiv
000104 e58d0014 STR r0,[sp,#0x14]
000108 e58d1018 STR r1,[sp,#0x18]
00010c ebfffffe BL _dfixu
000110 e2600001 RSB r0,r0,#1
000114 e2800e80 ADD r0,r0,#0x800
000118 e3a01448 MOV r1,#0x48000000
00011c e5911024 LDR r1,[r1,#0x24]
000120 e1a015a1 MOV r1,r1,LSR #11
000124 e1a01581 MOV r1,r1,LSL #11
000128 e1800001 ORR r0,r0,r1
00012c e3a01448 MOV r1,#0x48000000
000130 e5810024 STR r0,[r1,#0x24]
;;;205 rLCDCON1 = (rLCDCON1 & ~(0x3ff<<8)) | (4<<8) | 1; // ENVID on. 5MHz VCLK, 60fps
000134 e3a0044d MOV r0,#0x4d000000
000138 e5900000 LDR r0,[r0,#0]
00013c e3c00bc0 BIC r0,r0,#0x30000
000140 e3c00cff BIC r0,r0,#0xff00
000144 e3800e40 ORR r0,r0,#0x400
000148 e3800001 ORR r0,r0,#1
00014c e3a0144d MOV r1,#0x4d000000
000150 e5810000 STR r0,[r1,#0]
;;;206
;;;207 Vcount++;
000154 e59f022c LDR r0,|L1.904|
000158 e5900000 LDR r0,[r0,#0] ; Vcount
00015c e2800001 ADD r0,r0,#1
000160 e59f1220 LDR r1,|L1.904|
000164 e5810000 STR r0,[r1,#0] ; Vcount
;;;208
;;;209 rLCDSRCPND=2; // Clear LCD SUB Interrupt source pending
000168 e3a00002 MOV r0,#2
00016c e3a0144d MOV r1,#0x4d000000
000170 e5810058 STR r0,[r1,#0x58]
;;;210 rLCDINTPND=2; // Clear LCD SUB Interrupt pending
000174 e3a00002 MOV r0,#2
000178 e3a0144d MOV r1,#0x4d000000
00017c e5810054 STR r0,[r1,#0x54]
;;;211 ClearPending(BIT_LCD);
000180 e3a00b40 MOV r0,#0x10000
000184 e3a0144a MOV r1,#0x4a000000
000188 e5810000 STR r0,[r1,#0]
00018c e3a00b40 MOV r0,#0x10000
000190 e3a0144a MOV r1,#0x4a000000
000194 e5810010 STR r0,[r1,#0x10]
000198 e3a0044a MOV r0,#0x4a000000
00019c e5900010 LDR r0,[r0,#0x10]
;;;212
;;;213 if(rSRCPND & BIT_TIMER0) {
0001a0 e3a0044a MOV r0,#0x4a000000
0001a4 e5900000 LDR r0,[r0,#0]
0001a8 e3100e40 TST r0,#0x400
0001ac 0a00006b BEQ |L1.864|
;;;214 rSRCPND = BIT_TIMER0; //Clear pending bit
0001b0 e3a00e40 MOV r0,#0x400
0001b4 e3a0144a MOV r1,#0x4a000000
0001b8 e5810000 STR r0,[r1,#0]
;;;215 rINTPND = BIT_TIMER0;
0001bc e3a00e40 MOV r0,#0x400
0001c0 e3a0144a MOV r1,#0x4a000000
0001c4 e5810010 STR r0,[r1,#0x10]
0001c8 ea000064 B |L1.864|
;;;216 }
;;;217
;;;218 #if IDLE_EN==1
;;;219 rCLKCON |= 1<<2; // Enter Idle mode.
;;;220 for(i=0;i<10;i++);
;;;221 //wait until S3C2400 enters IDLE mode.
;;;222 //wait EINT0 interrupt or RTC alarm interrupt
;;;223 rCLKCON&=~(1<<2);
;;;224 //turn-off IDLE bit. IDLE bit should be turned off after wake-up.
;;;225 #endif
;;;226 }
;;;227 else // If Normal mode...
;;;228 {
;;;229 rLCDCON1 &= ~(0x1); // ENVID off.
|L1.460|
0001cc e3a0044d MOV r0,#0x4d000000
0001d0 e5900000 LDR r0,[r0,#0]
0001d4 e3c00001 BIC r0,r0,#1
0001d8 e3a0144d MOV r1,#0x4d000000
0001dc e5810000 STR r0,[r1,#0]
;;;230
;;;231 Max1718_Set(DVS_VOLTH);
0001e0 e3a00078 MOV r0,#0x78
0001e4 ebfffffe BL Max1718_Set
;;;232 for(i=0; i<2000;i++) rGSTATUS0;
0001e8 e3a04000 MOV r4,#0
|L1.492|
0001ec e3540e7d CMP r4,#0x7d0
0001f0 aa000005 BGE |L1.524|
0001f4 ea000001 B |L1.512|
|L1.504|
0001f8 e2844001 ADD r4,r4,#1
0001fc eafffffa B |L1.492|
|L1.512|
000200 e3a00456 MOV r0,#0x56000000
000204 e59000ac LDR r0,[r0,#0xac]
000208 eafffffa B |L1.504|
;;;233
;;;234 UPDATE_REFRESH(Hclk);
|L1.524|
00020c e59f0160 LDR r0,|L1.884|
000210 e5900000 LDR r0,[r0,#0] ; Hclk
000214 ebfffffe BL _ffltu
000218 e1a05000 MOV r5,r0
00021c ebfffffe BL _f2d
000220 e98d0003 STMIB sp,{r0,r1}
000224 e28f0f53 ADR r0,|L1.888|
000228 e890000c LDMIA r0,{r2,r3}
00022c e59d0004 LDR r0,[sp,#4]
000230 ebfffffe BL _dmul
000234 e58d000c STR r0,[sp,#0xc]
000238 e58d1010 STR r1,[sp,#0x10]
00023c e28f0f4f ADR r0,|L1.896|
000240 e890000c LDMIA r0,{r2,r3}
000244 e59d000c LDR r0,[sp,#0xc]
000248 ebfffffe BL _ddiv
00024c e58d0014 STR r0,[sp,#0x14]
000250 e58d1018 STR r1,[sp,#0x18]
000254 ebfffffe BL _dfixu
000258 e2600001 RSB r0,r0,#1
00025c e2800e80 ADD r0,r0,#0x800
000260 e3a01448 MOV r1,#0x48000000
000264 e5911024 LDR r1,[r1,#0x24]
000268 e1a015a1 MOV r1,r1,LSR #11
00026c e1a01581 MOV r1,r1,LSL #11
000270 e1800001 ORR r0,r0,r1
000274 e3a01448 MOV r1,#0x48000000
000278 e5810024 STR r0,[r1,#0x24]
;;;235
;;;236 #if CPU2442A==1
;;;237 rCAMDIVN &= ~BIT_DVS_ON; // (0<<12), DVS off, FCLK=MPLLout
00027c e3a0044c MOV r0,#0x4c000000
000280 e5900018 LDR r0,[r0,#0x18]
000284 e3c00d40 BIC r0,r0,#0x1000
000288 e3a0144c MOV r1,#0x4c000000
00028c e5810018 STR r0,[r1,#0x18]
;;;238 rGPGDAT |= (1<<11);
000290 e3a00456 MOV r0,#0x56000000
000294 e5900064 LDR r0,[r0,#0x64]
000298 e3800e80 ORR r0,r0,#0x800
00029c e3a01456 MOV r1,#0x56000000
0002a0 e5810064 STR r0,[r1,#0x64]
;;;239 #endif
;;;240
;;;241 #if CPU2442A==1
;;;242 rCLKDIVN |= (1<<0); // 1:6:6 -> 1:6:12
0002a4 e3a0044c MOV r0,#0x4c000000
0002a8 e5900014 LDR r0,[r0,#0x14]
0002ac e3800001 ORR r0,r0,#1
0002b0 e3a0144c MOV r1,#0x4c000000
0002b4 e5810014 STR r0,[r1,#0x14]
;;;243 rCAMDIVN = (rCAMDIVN & ~(3<<8)); // 1:6:12 -> 1:3:6
0002b8 e3a0044c MOV r0,#0x4c000000
0002bc e5900018 LDR r0,[r0,#0x18]
0002c0 e3c00fc0 BIC r0,r0,#0x300
0002c4 e3a0144c MOV r1,#0x4c000000
0002c8 e5810018 STR r0,[r1,#0x18]
;;;244 #else
;;;245 CLKDIV124(); // Normal -> Clkdiv=1:2:4
;;;246 #endif
;;;247 rLCDCON1 = (rLCDCON1 & ~(0x3ff<<8)) | (9<<8) | 1; // ENVID on.5MHz VCLK, 60fps
0002cc e3a0044d MOV r0,#0x4d000000
0002d0 e5900000 LDR r0,[r0,#0]
0002d4 e3c00bc0 BIC r0,r0,#0x30000
0002d8 e3c00cff BIC r0,r0,#0xff00
0002dc e3800e90 ORR r0,r0,#0x900
0002e0 e3800001 ORR r0,r0,#1
0002e4 e3a0144d MOV r1,#0x4d000000
0002e8 e5810000 STR r0,[r1,#0]
;;;248
;;;249 Vcount++;
0002ec e59f0094 LDR r0,|L1.904|
0002f0 e5900000 LDR r0,[r0,#0] ; Vcount
0002f4 e2800001 ADD r0,r0,#1
0002f8 e59f1088 LDR r1,|L1.904|
0002fc e5810000 STR r0,[r1,#0] ; Vcount
;;;250
;;;251 rLCDSRCPND=2; // Clear LCD SUB Interrupt source pending
000300 e3a00002 MOV r0,#2
000304 e3a0144d MOV r1,#0x4d000000
000308 e5810058 STR r0,[r1,#0x58]
;;;252 rLCDINTPND=2; // Clear LCD SUB Interrupt pending
00030c e3a00002 MOV r0,#2
000310 e3a0144d MOV r1,#0x4d000000
000314 e5810054 STR r0,[r1,#0x54]
;;;253 ClearPending(BIT_LCD);
000318 e3a00b40 MOV r0,#0x10000
00031c e3a0144a MOV r1,#0x4a000000
000320 e5810000 STR r0,[r1,#0]
000324 e3a00b40 MOV r0,#0x10000
000328 e3a0144a MOV r1,#0x4a000000
00032c e5810010 STR r0,[r1,#0x10]
000330 e3a0044a MOV r0,#0x4a000000
000334 e5900010 LDR r0,[r0,#0x10]
;;;254
;;;255 if(rSRCPND & BIT_TIMER0) {
000338 e3a0044a MOV r0,#0x4a000000
00033c e5900000 LDR r0,[r0,#0]
000340 e3100e40 TST r0,#0x400
000344 0a000005 BEQ |L1.864|
;;;256 rSRCPND = BIT_TIMER0; //Clear pending bit
000348 e3a00e40 MOV r0,#0x400
00034c e3a0144a MOV r1,#0x4a000000
000350 e5810000 STR r0,[r1,#0]
;;;257 rINTPND = BIT_TIMER0;
000354 e3a00e40 MOV r0,#0x400
000358 e3a0144a MOV r1,#0x4a000000
00035c e5810010 STR r0,[r1,#0x10]
;;;258 }
;;;259 }
;;;260 } // endof if((rLCDCON5 & (0x3<<15))) {
;;;261 }
|L1.864|
000360 e28dd01c ADD sp,sp,#0x1c
000364 e8bd507f LDMFD sp!,{r0-r6,r12,lr}
000368 e25ef004 SUBS pc,lr,#4
|L1.876|
00036c 0000002d DCB "-\0\0\0"
|L1.880|
000370 00000008 DCD ||.bss$2|| + 8
|L1.884|
000374 00000000 DCD Hclk
|L1.888|
000378 33333333 DCFD 0x401f333333333333 ; 7.8
00037c 401f3333
|L1.896|
000380 00000000 DCFD 0x412e848000000000 ; 1000000.0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -