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

📄 dvstest.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 TXT
📖 第 1 页 / 共 3 页
字号:
; 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 + -