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

📄 dvstest.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 TXT
📖 第 1 页 / 共 3 页
字号:
000384  412e8480  
                  |L1.904|
000388  00000000          DCD      ||.bss$2||
                          ENDP

                  Set_Lcd_Tft_16Bit_240320_Dvs PROC
;;;264    void Set_Lcd_Tft_16Bit_240320_Dvs(void)
;;;265    {
00038c  e92d4008          STMFD    sp!,{r3,lr}
;;;266        int i,j,k;
;;;267    	
;;;268    	Uart_Printf("[Set LCD]\n");
000390  e28f0f61          ADR      r0,|L1.1308|
000394  ebfffffe          BL       Uart_Printf
;;;269    	
;;;270        Lcd_Port_Init();
000398  ebfffffe          BL       Lcd_Port_Init
;;;271        Lcd_Init(MODE_TFT_16BIT_240320);
00039c  e59f0184          LDR      r0,|L1.1320|
0003a0  ebfffffe          BL       Lcd_Init
;;;272        Glib_Init(MODE_TFT_16BIT_240320);
0003a4  e59f017c          LDR      r0,|L1.1320|
0003a8  ebfffffe          BL       Glib_Init
;;;273    	Lcd_Lcc3600Enable(); // Enable LCC3600
0003ac  ebfffffe          BL       Lcd_Lcc3600Enable
;;;274        Lcd_PowerEnable(0, 1);
0003b0  e3a01001          MOV      r1,#1
0003b4  e3a00000          MOV      r0,#0
0003b8  ebfffffe          BL       Lcd_PowerEnable
;;;275        Lcd_EnvidOnOff(1);
0003bc  e3a00001          MOV      r0,#1
0003c0  ebfffffe          BL       Lcd_EnvidOnOff
;;;276        
;;;277        Glib_ClearScr(0, MODE_TFT_16BIT_240320);
0003c4  e59f115c          LDR      r1,|L1.1320|
0003c8  e3a00000          MOV      r0,#0
0003cc  ebfffffe          BL       Glib_ClearScr
;;;278        Glib_FilledRectangle(0,0,119,159,0xf800);
0003d0  e3a03cf8          MOV      r3,#0xf800
0003d4  e58d3000          STR      r3,[sp,#0]
0003d8  e3a0309f          MOV      r3,#0x9f
0003dc  e3a02077          MOV      r2,#0x77
0003e0  e3a01000          MOV      r1,#0
0003e4  e3a00000          MOV      r0,#0
0003e8  ebfffffe          BL       Glib_FilledRectangle
;;;279        Glib_FilledRectangle(120,0,239,159,0x07e0);
0003ec  e3a03e7e          MOV      r3,#0x7e0
0003f0  e58d3000          STR      r3,[sp,#0]
0003f4  e3a0309f          MOV      r3,#0x9f
0003f8  e3a020ef          MOV      r2,#0xef
0003fc  e3a01000          MOV      r1,#0
000400  e3a00078          MOV      r0,#0x78
000404  ebfffffe          BL       Glib_FilledRectangle
;;;280        Glib_FilledRectangle(0,160,119,320,0x001f);
000408  e3a0301f          MOV      r3,#0x1f
00040c  e58d3000          STR      r3,[sp,#0]
000410  e3a03f50          MOV      r3,#0x140
000414  e3a02077          MOV      r2,#0x77
000418  e3a010a0          MOV      r1,#0xa0
00041c  e3a00000          MOV      r0,#0
000420  ebfffffe          BL       Glib_FilledRectangle
;;;281        Glib_FilledRectangle(120,160,239,320,0xffff);
000424  e59f3100          LDR      r3,|L1.1324|
000428  e58d3000          STR      r3,[sp,#0]
00042c  e3a03f50          MOV      r3,#0x140
000430  e3a020ef          MOV      r2,#0xef
000434  e3a010a0          MOV      r1,#0xa0
000438  e3a00078          MOV      r0,#0x78
00043c  ebfffffe          BL       Glib_FilledRectangle
;;;282        Glib_FilledRectangle(100,100,150,200,0x5555);
000440  e59f30e8          LDR      r3,|L1.1328|
000444  e58d3000          STR      r3,[sp,#0]
000448  e3a030c8          MOV      r3,#0xc8
00044c  e3a02096          MOV      r2,#0x96
000450  e3a01064          MOV      r1,#0x64
000454  e3a00064          MOV      r0,#0x64
000458  ebfffffe          BL       Glib_FilledRectangle
;;;283    
;;;284        rLCDCON1 &= ~(0x1);	// ENVID off.
00045c  e3a0044d          MOV      r0,#0x4d000000
000460  e5900000          LDR      r0,[r0,#0]
000464  e3c00001          BIC      r0,r0,#1
000468  e3a0144d          MOV      r1,#0x4d000000
00046c  e5810000          STR      r0,[r1,#0]
;;;285    	rLCDCON1 = (rLCDCON1 & ~(0x3ff<<8)) | (9<<8) | 1;	// ENVID on. 5MHz 60fps
000470  e3a0044d          MOV      r0,#0x4d000000
000474  e5900000          LDR      r0,[r0,#0]
000478  e3c00bc0          BIC      r0,r0,#0x30000
00047c  e3c00cff          BIC      r0,r0,#0xff00
000480  e3800e90          ORR      r0,r0,#0x900
000484  e3800001          ORR      r0,r0,#1
000488  e3a0144d          MOV      r1,#0x4d000000
00048c  e5810000          STR      r0,[r1,#0]
;;;286    
;;;287    	// ON PWREN signal
;;;288    	rLCDCON5 = (rLCDCON5 & ~(1<<3)) ;	// PWREN disable
000490  e3a0044d          MOV      r0,#0x4d000000
000494  e5900010          LDR      r0,[r0,#0x10]
000498  e3c00008          BIC      r0,r0,#8
00049c  e3a0144d          MOV      r1,#0x4d000000
0004a0  e5810010          STR      r0,[r1,#0x10]
;;;289    	rGPGCON = (rGPGCON & ~(0x3<<8)) | 0x1<<8;	// GPG4, PWR_EN -> Output.
0004a4  e3a00456          MOV      r0,#0x56000000
0004a8  e5900060          LDR      r0,[r0,#0x60]
0004ac  e3c00fc0          BIC      r0,r0,#0x300
0004b0  e3800f40          ORR      r0,r0,#0x100
0004b4  e3a01456          MOV      r1,#0x56000000
0004b8  e5810060          STR      r0,[r1,#0x60]
;;;290    	rGPGDAT&=(~(1<<4)); // GPG4=Low
0004bc  e3a00456          MOV      r0,#0x56000000
0004c0  e5900064          LDR      r0,[r0,#0x64]
0004c4  e3c00010          BIC      r0,r0,#0x10
0004c8  e3a01456          MOV      r1,#0x56000000
0004cc  e5810064          STR      r0,[r1,#0x64]
;;;291    	Delay(50); // GPG4=Low
0004d0  e3a00032          MOV      r0,#0x32
0004d4  ebfffffe          BL       Delay
;;;292    	rGPGDAT|=(1<<4); //GPG4=High
0004d8  e3a00456          MOV      r0,#0x56000000
0004dc  e5900064          LDR      r0,[r0,#0x64]
0004e0  e3800010          ORR      r0,r0,#0x10
0004e4  e3a01456          MOV      r1,#0x56000000
0004e8  e5810064          STR      r0,[r1,#0x64]
;;;293    
;;;294    	//--------LCD frame interrupt setting ------------------------------------START
;;;295    	pISR_LCD=(unsigned)Lcd_Int_Frame_ForDvs;
0004ec  e59f0040          LDR      r0,|L1.1332|
0004f0  e59f1040          LDR      r1,|L1.1336|
0004f4  e5810f60          STR      r0,[r1,#0xf60]
;;;296    	rINTMSK &= ~(BIT_LCD);
0004f8  e3a0044a          MOV      r0,#0x4a000000
0004fc  e5900008          LDR      r0,[r0,#8]
000500  e3c00b40          BIC      r0,r0,#0x10000
000504  e3a0144a          MOV      r1,#0x4a000000
000508  e5810008          STR      r0,[r1,#8]
;;;297    	rLCDINTMSK=(1<<2)|(0<<1)|(1); // 8Words Trigger Level,Unmask Frame int,mask Fifo int
00050c  e3a00005          MOV      r0,#5
000510  e3a0144d          MOV      r1,#0x4d000000
000514  e581005c          STR      r0,[r1,#0x5c]
;;;298    	//--------LCD frame interrupt setting ------------------------------------END
;;;299    
;;;300    }
000518  e8bd8008          LDMFD    sp!,{r3,pc}
                  |L1.1308|
00051c  7465535b          DCB      "[Set"
000520  44434c20          DCB      " LCD"
000524  00000a5d          DCB      "]\n\0\0"
                  |L1.1320|
000528  00004104          DCD      0x00004104
                  |L1.1324|
00052c  0000ffff          DCD      0x0000ffff
                  |L1.1328|
000530  00005555          DCD      0x00005555
                  |L1.1332|
000534  00000000          DCD      Lcd_Int_Frame_ForDvs
                  |L1.1336|
000538  31fff000          DCD      0x31fff000
                          ENDP

                  Timer0_intr PROC
;;;125    void __irq Timer0_intr(void)
;;;126    {
00053c  e92d503f          STMFD    sp!,{r0-r5,r12,lr}
;;;127    	int i;
;;;128    	
;;;129    	//if(Timer_cnt0%2) Led_Onoff(LED1,ON);
;;;130    	//else Led_Onoff(LED1,OFF);
;;;131    
;;;132    	ClearPending(BIT_TIMER0)
000540  e3a00e40          MOV      r0,#0x400
000544  e3a0144a          MOV      r1,#0x4a000000
000548  e5810000          STR      r0,[r1,#0]
00054c  e3a00e40          MOV      r0,#0x400
000550  e3a0144a          MOV      r1,#0x4a000000
000554  e5810010          STR      r0,[r1,#0x10]
000558  e3a0044a          MOV      r0,#0x4a000000
00055c  e5900010          LDR      r0,[r0,#0x10]
;;;133    
;;;134    	if(rLCDSRCPND & 2) {
000560  e3a0044d          MOV      r0,#0x4d000000
000564  e5900058          LDR      r0,[r0,#0x58]
000568  e3100002          TST      r0,#2
00056c  0a00000d          BEQ      |L1.1448|
;;;135    		rLCDSRCPND=2; // Clear LCD SUB Interrupt source pending
000570  e3a00002          MOV      r0,#2
000574  e3a0144d          MOV      r1,#0x4d000000
000578  e5810058          STR      r0,[r1,#0x58]
;;;136    		rLCDINTPND=2; // Clear LCD SUB Interrupt pending
00057c  e3a00002          MOV      r0,#2
000580  e3a0144d          MOV      r1,#0x4d000000
000584  e5810054          STR      r0,[r1,#0x54]
;;;137    		ClearPending(BIT_LCD);
000588  e3a00b40          MOV      r0,#0x10000
00058c  e3a0144a          MOV      r1,#0x4a000000
000590  e5810000          STR      r0,[r1,#0]
000594  e3a00b40          MOV      r0,#0x10000
000598  e3a0144a          MOV      r1,#0x4a000000
00059c  e5810010          STR      r0,[r1,#0x10]
0005a0  e3a0044a          MOV      r0,#0x4a000000
0005a4  e5900010          LDR      r0,[r0,#0x10]
;;;138    	}
;;;139    
;;;140    #if ADS10==TRUE
;;;141    	i= (rand()%700) + 61;	// 0.081ms/cnt
                  |L1.1448|
0005a8  ebfffffe          BL       rand
0005ac  e1a05000          MOV      r5,r0
0005b0  e1a01000          MOV      r1,r0
0005b4  e3a00faf          MOV      r0,#0x2bc
0005b8  ebfffffe          BL       __rt_sdiv
0005bc  e281403d          ADD      r4,r1,#0x3d
;;;142    #else
;;;143    	i= 370;	// 0.081ms/cnt -> 370cnt==300ms.
;;;144    #endif
;;;145    	
;;;146    	rTCNTB0 = i;
0005c0  e3a00451          MOV      r0,#0x51000000
0005c4  e580400c          STR      r4,[r0,#0xc]
;;;147    	//rTCNTB0 = timer_val_arr[Timer_cnt0%4];
;;;148    
;;;149    	// Load timer cnt value
;;;150    	rTCON = 1<<3| 1<<1;
0005c8  e3a0000a          MOV      r0,#0xa
0005cc  e3a01451          MOV      r1,#0x51000000
0005d0  e5810008          STR      r0,[r1,#8]
;;;151    	// Timer start.
;;;152    	rTCON = 1<<3| 1<<0;
0005d4  e3a00009          MOV      r0,#9
0005d8  e3a01451          MOV      r1,#0x51000000
0005dc  e5810008          STR      r0,[r1,#8]
;;;153    
;;;154    	if(Timer_cnt0%2) {
0005e0  e59f0114          LDR      r0,|L1.1788|
0005e4  e5900000          LDR      r0,[r0,#0]  ; Timer_cnt0
0005e8  e3100001          TST      r0,#1
0005ec  0a000008          BEQ      |L1.1556|
;;;155    		Idle_flag = 1;	// Idle mode
0005f0  e3a00001          MOV      r0,#1
0005f4  e51f128c          LDR      r1,|L1.880|
0005f8  e1c100b0          STRH     r0,[r1,#0]  ; Idle_flag
;;;156    		rINTMSK &= ~(BIT_LCD);	// unmask.
0005fc  e3a0044a          MOV      r0,#0x4a000000
000600  e5900008          LDR      r0,[r0,#8]
000604  e3c00b40          BIC      r0,r0,#0x10000
000608  e3a0144a          MOV      r1,#0x4a000000
00060c  e5810008          STR      r0,[r1,#8]
000610  ea000007          B        |L1.1588|
;;;157    		#if IDLE_EN==1
;;;158    			Led_Onoff(LED4, OFF);
;;;159    			rCLKCON |= 1<<2;	// Enter Idle mode.
;;;160    		    for(i=0;i<10;i++);
;;;161    			//wait until S3C2400X enters IDLE mode.
;;;162    	        //wait EINT0 interrupt or RTC alarm interrupt
;;;163    	        rCLKCON&=~(1<<2);
;;;164    		Led_Onoff(LED4, ON);
;;;165        		//turn-off IDLE bit. IDLE bit should be turned off after wake-up.
;;;166        	#endif
;;;167    	} else {
;;;168    		Idle_flag = 0;	// Normal mode
                  |L1.1556|
000614  e3a00000          MOV      r0,#0
000618  e51f12b0          LDR      r1,|L1.880|
00061c  e1c100b0          STRH     r0,[r1,#0]  ; Idle_flag
;;;169    		rINTMSK &= ~(BIT_LCD);	// unmask.
000620  e3a0044a          MOV      r0,#0x4a000000
000624  e5900008          LDR      r0,[r0,#8]
000628  e3c00b40          BIC      r0,r0,#0x10000
00062c  e3a0144a          MOV      r1,#0x4a000000
000630  e5810008          STR      r0,[r1,#8]
;;;170    	}
;;;171    
;;;172    	Timer_cnt0++;
                  |L1.1588|
000634  e59f00c0          LDR      r0,|L1.1788|
000638  e5900000          LDR      r0,[r0,#0]  ; Timer_cnt0
00063c  e2800001          ADD      r0,r0,#1
000640  e59f10b4          LDR      r1,|L1.1788|
000644  e5810000          STR      r0,[r1,#0]  ; Timer_cnt0
;;;173    }
000648  e8bd503f          LDMFD    sp!,{r0-r5,r12,lr}
00064c  e25ef004          SUBS     pc,lr,#4
                          ENDP

                  Timer_Setting PROC
;;;311    void Timer_Setting(void)
;;;312    {
000650  e92d4010          STMFD    sp!,{r4,lr}
;;;313    	float cnt_val=0.0;
000654  e3a04000          MOV      r4,#0
;;;314    
;;;315        Uart_Printf("[ Timer 0 Interrupt setting]\n");
000658  e28f00a0          ADR      r0,|L1.1792|
00065c  ebfffffe          BL       Uart_Printf
;;;316    
;;;317    	// Uart_Printf("[Timer interval: %4.1f, %4.1f, %4.1f, %4.1f[ms].\n", \
;;;318    	// timer_val_arr[0]*0.081, timer_val_arr[1]*0.081, timer_val_arr[2]*0.081, timer_val_arr[3]*0.081);
;;;319    	// 296, 617, 802, 1284 -> 24ms, 50ms, 65ms, 104ms for eac
;;;320    
;;;321    	rGPBCON = rGPBCON& ~(0x03) | 0x2;
000660  e3a00456          MOV      r0,#0x56000000
000664  e5900010          LDR      r0,[r0,#0x10]
000668  e3c00003          BIC      r0,r0,#3
00066c  e3800002          ORR      r0,r0,#2
000670  e3a01456          MOV      r1,#0x56000000
000674  e5810010          STR      r0,[r1,#0x10]
;;;322    	rCLKCON |= 1<<8;	// PWM timer PCLK clock enable.
000678  e3a0044c          MOV      r0,#0x4c000000
00067c  e590000c          LDR      r0,[r0,#0xc]
000680  e3800f40          ORR      r0,r0,#0x100
000684  e3a0144c          MOV      r1,#0x4c000000
000688  e581000c          STR      r0,[r1,#0xc]
;;;323    
;;;324        pISR_TIMER0 = (int)Timer0_intr;
00068c  e59f008c          LDR      r0,|L1.1824|
000690  e51f1160          LDR      r1,|L1.1336|
000694  e5810f48          STR      r0,[r1,#0xf48]
;;;325    	// Timer interupt start.
;;;326    	rINTMSK &= ~BIT_TIMER0;
000698  e3a0044a          MOV      r0,#0x4a000000
00069c  e5900008          LDR      r0,[r0,#8]
0006a0  e3c00e40          BIC      r0,r0,#0x400
0006a4  e3a0144a          MOV      r1,#0x4a000000
0006a8  e5810008          STR      r0,[r1,#8]
;;;327    	
;;;328    	rTCFG0 = 0xff;		// Prescaler0 = 0xff=256.
0006ac  e3a000ff          MOV      r0,#0xff
0006b0  e3a01451          MOV      r1,#0x51000000
0006b4  e5810000          STR      r0,[r1,#0]
;;;329    	// Timer input clock freq = PCLK/(Prescaler0+1)/divider value.
;;;330    	// where, PCLK = 50.7MHz
;;;331    
;;;332    	rTCFG1 = 0<<20 | 3<<0;	// MUX0 = 1/16

⌨️ 快捷键说明

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