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

📄 pwr_c.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 TXT
📖 第 1 页 / 共 3 页
字号:
0002b0  e3a00000          MOV      r0,#0
0002b4  ebfffffe          BL       Lcd_PowerEnable
;;;214    	Lcd_EnvidOnOff(1);
0002b8  e3a00001          MOV      r0,#1
0002bc  ebfffffe          BL       Lcd_EnvidOnOff
;;;215    
;;;216    	Glib_ClearScr(0, MODE_TFT_16BIT_240320);
0002c0  e59f12e4          LDR      r1,|L1.1452|
0002c4  e3a00000          MOV      r0,#0
0002c8  ebfffffe          BL       Glib_ClearScr
;;;217    	Glib_FilledRectangle(0,0,119,159,0xf800);	// R
0002cc  e3a03cf8          MOV      r3,#0xf800
0002d0  e58d3000          STR      r3,[sp,#0]
0002d4  e3a0309f          MOV      r3,#0x9f
0002d8  e3a02077          MOV      r2,#0x77
0002dc  e3a01000          MOV      r1,#0
0002e0  e3a00000          MOV      r0,#0
0002e4  ebfffffe          BL       Glib_FilledRectangle
;;;218    	Glib_FilledRectangle(120,0,240,159,0x07e0);	// G
0002e8  e3a03e7e          MOV      r3,#0x7e0
0002ec  e58d3000          STR      r3,[sp,#0]
0002f0  e3a0309f          MOV      r3,#0x9f
0002f4  e3a020f0          MOV      r2,#0xf0
0002f8  e3a01000          MOV      r1,#0
0002fc  e3a00078          MOV      r0,#0x78
000300  ebfffffe          BL       Glib_FilledRectangle
;;;219    	Glib_FilledRectangle(0,160,119,320,0x001f);	// B
000304  e3a0301f          MOV      r3,#0x1f
000308  e58d3000          STR      r3,[sp,#0]
00030c  e3a03f50          MOV      r3,#0x140
000310  e3a02077          MOV      r2,#0x77
000314  e3a010a0          MOV      r1,#0xa0
000318  e3a00000          MOV      r0,#0
00031c  ebfffffe          BL       Glib_FilledRectangle
;;;220    	Glib_FilledRectangle(120,160,240,320,0xffff);	// W
000320  e59f3288          LDR      r3,|L1.1456|
000324  e58d3000          STR      r3,[sp,#0]
000328  e3a03f50          MOV      r3,#0x140
00032c  e3a020f0          MOV      r2,#0xf0
000330  e3a010a0          MOV      r1,#0xa0
000334  e3a00078          MOV      r0,#0x78
000338  ebfffffe          BL       Glib_FilledRectangle
;;;221    
;;;222    }
00033c  e8bd8008          LDMFD    sp!,{r3,pc}
                          ENDP

                  PWR_StartTimer PROC
;;;224    void PWR_StartTimer(void)
;;;225    {
000340  e59f026c          LDR      r0,|L1.1460|
;;;226    	//Uart_Printf("All 5 timers are running(130KHz).\n");
;;;227    	
;;;228    	rTCFG0=0x8080;   //Prescaler=128; 
000344  e3a01451          MOV      r1,#0x51000000
000348  e5810000          STR      r0,[r1,#0]
;;;229    	rTCFG1=0x11111;  //Devider=1/4;	Period: 66.7MHz/12/4 = 130KHz.
00034c  e59f0264          LDR      r0,|L1.1464|
000350  e3a01451          MOV      r1,#0x51000000
000354  e5810004          STR      r0,[r1,#4]
;;;230    	rTCNTB0=0x8000;
000358  e3a00c80          MOV      r0,#0x8000
00035c  e3a01451          MOV      r1,#0x51000000
000360  e581000c          STR      r0,[r1,#0xc]
;;;231    	rTCMPB0=0x4000;
000364  e3a00c40          MOV      r0,#0x4000
000368  e3a01451          MOV      r1,#0x51000000
00036c  e5810010          STR      r0,[r1,#0x10]
;;;232    	rTCNTB1=0x8000;
000370  e3a00c80          MOV      r0,#0x8000
000374  e3a01451          MOV      r1,#0x51000000
000378  e5810018          STR      r0,[r1,#0x18]
;;;233    	rTCMPB1=0x4000;
00037c  e3a00c40          MOV      r0,#0x4000
000380  e3a01451          MOV      r1,#0x51000000
000384  e581001c          STR      r0,[r1,#0x1c]
;;;234    	rTCNTB2=0x8000;
000388  e3a00c80          MOV      r0,#0x8000
00038c  e3a01451          MOV      r1,#0x51000000
000390  e5810024          STR      r0,[r1,#0x24]
;;;235    	rTCMPB2=0x4000;
000394  e3a00c40          MOV      r0,#0x4000
000398  e3a01451          MOV      r1,#0x51000000
00039c  e5810028          STR      r0,[r1,#0x28]
;;;236    	rTCNTB3=0x8000;
0003a0  e3a00c80          MOV      r0,#0x8000
0003a4  e3a01451          MOV      r1,#0x51000000
0003a8  e5810030          STR      r0,[r1,#0x30]
;;;237    	rTCMPB3=0x4000;
0003ac  e3a00c40          MOV      r0,#0x4000
0003b0  e3a01451          MOV      r1,#0x51000000
0003b4  e5810034          STR      r0,[r1,#0x34]
;;;238    	rTCNTB4=0x8000;
0003b8  e3a00c80          MOV      r0,#0x8000
0003bc  e3a01451          MOV      r1,#0x51000000
0003c0  e581003c          STR      r0,[r1,#0x3c]
;;;239    	rTCON=0x6aaa0a; // Auto reload.
0003c4  e59f01f0          LDR      r0,|L1.1468|
0003c8  e3a01451          MOV      r1,#0x51000000
0003cc  e5810008          STR      r0,[r1,#8]
;;;240    	rTCON=0x599909; //run
0003d0  e59f01e8          LDR      r0,|L1.1472|
0003d4  e3a01451          MOV      r1,#0x51000000
0003d8  e5810008          STR      r0,[r1,#8]
;;;241    }
0003dc  e1a0f00e          MOV      pc,lr
                          ENDP

                  PWR_IsrDma0 PROC
;;;247    void __irq PWR_IsrDma0(void)
;;;248    {
0003e0  e92d0003          STMFD    sp!,{r0,r1}
;;;249    	ClearPending(BIT_DMA0);
0003e4  e3a00b80          MOV      r0,#0x20000
0003e8  e3a0144a          MOV      r1,#0x4a000000
0003ec  e5810000          STR      r0,[r1,#0]
0003f0  e3a00b80          MOV      r0,#0x20000
0003f4  e3a0144a          MOV      r1,#0x4a000000
0003f8  e5810010          STR      r0,[r1,#0x10]
0003fc  e3a0044a          MOV      r0,#0x4a000000
000400  e5900010          LDR      r0,[r0,#0x10]
;;;250    	rDMASKTRIG0=0x3; 	
000404  e3a00003          MOV      r0,#3
000408  e3a0144b          MOV      r1,#0x4b000000
00040c  e5810020          STR      r0,[r1,#0x20]
;;;251    	//Uart_Printf("$");
;;;252    }
000410  e8bd0003          LDMFD    sp!,{r0,r1}
000414  e25ef004          SUBS     pc,lr,#4
                          ENDP

                  StartDmaMem2Mem PROC
;;;255    void StartDmaMem2Mem(void)
;;;256    {
000418  e59f01a4          LDR      r0,|L1.1476|
;;;257    	//Uart_Printf("seamless DMA0 SDRAM->SDRAM transfer is running.\n");
;;;258    	
;;;259    	pISR_DMA0=(unsigned int)PWR_IsrDma0;	
00041c  e51f124c          LDR      r1,|L1.472|
000420  e5810f64          STR      r0,[r1,#0xf64]
;;;260    	rINTMSK=rINTMSK&~(BIT_DMA0);
000424  e3a0044a          MOV      r0,#0x4a000000
000428  e5900008          LDR      r0,[r0,#8]
00042c  e3c00b80          BIC      r0,r0,#0x20000
000430  e3a0144a          MOV      r1,#0x4a000000
000434  e5810008          STR      r0,[r1,#8]
;;;261     
;;;262    	rDISRC0=(U32)buf1;
000438  e59f0188          LDR      r0,|L1.1480|
00043c  e3a0144b          MOV      r1,#0x4b000000
000440  e5810000          STR      r0,[r1,#0]
;;;263    	rDISRCC0=(0<<1)|(0<<0); //src=AHB,increment
000444  e3a00000          MOV      r0,#0
000448  e3a0144b          MOV      r1,#0x4b000000
00044c  e5810004          STR      r0,[r1,#4]
;;;264    	rDIDST0=(U32)buf2;
000450  e59f0174          LDR      r0,|L1.1484|
000454  e3a0144b          MOV      r1,#0x4b000000
000458  e5810008          STR      r0,[r1,#8]
;;;265    	rDIDSTC0=(0<<1)|(0<<0); //dst=AHB,increment
00045c  e3a00000          MOV      r0,#0
000460  e3a0144b          MOV      r1,#0x4b000000
000464  e581000c          STR      r0,[r1,#0xc]
;;;266    	rDCON0=(1<<31)|(1<<29)|(1<<27)|(2<<20)|(1024);
000468  e59f0160          LDR      r0,|L1.1488|
00046c  e3a0144b          MOV      r1,#0x4b000000
000470  e5810010          STR      r0,[r1,#0x10]
;;;267    		//handshake,done int. enable,whole mode,DSZ=word,TC=1024
;;;268    	rDMASKTRIG0=0x3; 			
000474  e3a00003          MOV      r0,#3
000478  e3a0144b          MOV      r1,#0x4b000000
00047c  e5810020          STR      r0,[r1,#0x20]
;;;269    }	
000480  e1a0f00e          MOV      pc,lr
                          ENDP

                  MeasurePowerConsumption PROC
;;;53     void MeasurePowerConsumption(void)
;;;54     {
000484  e92d4030          STMFD    sp!,{r4,r5,lr}
000488  e24dd01c          SUB      sp,sp,#0x1c
;;;55     	int i,j, hdiv_val, pdiv_val, select;
;;;56     	volatile int a,b,c;
;;;57     
;;;58     	Uart_Printf("[Measure the power consumption of S3C2442]\n");
00048c  e28f0f50          ADR      r0,|L1.1492|
000490  ebfffffe          BL       Uart_Printf
;;;59     	
;;;60     	MMU_Init();
000494  ebfffffe          BL       MMU_Init
;;;61     
;;;62     	#if 0
;;;63     	Uart_Printf("(1)203MHz,(2)305MHz,(3)400MHz(1:4:8),(4)400MHz(1:3:6),(5)533MHz\n");
;;;64     	Uart_Printf("Select Clock Frequency to test(0 or Enter to skip) : ");
;;;65     	select = Uart_GetIntNum();
;;;66     	
;;;67     	// Clock setting
;;;68     	ChangeUPllValue(56,2,2);		// 48MHz
;;;69     
;;;70     	switch(select) {
;;;71     		case 1:	// 203.2MHz
;;;72     			ChangeClockDivider(12,12);	// 1:2:4
;;;73     			ChangeMPllValue(246,13,0);
;;;74     		break;
;;;75     		case 2:	// 305MHz
;;;76     			ChangeClockDivider(13,12);	// 1:3:6
;;;77     			ChangeMPllValue(119,3,0);
;;;78     		break;
;;;79     		case 3:	// 400MHz, 1:4:8
;;;80     			ChangeClockDivider(14,12);
;;;81     			ChangeMPllValue(92,1,0);
;;;82     		break;
;;;83     		case 4:	// 400MHz, 1:3:6
;;;84     			ChangeClockDivider(13,12);	// 1:4:8
;;;85     			ChangeMPllValue(92,1,0);
;;;86     		break;
;;;87     		case 5:	// 533MHz
;;;88     			ChangeClockDivider(14,12);	// 1:4:8
;;;89     			ChangeMPllValue(214,3,0);
;;;90     		break;
;;;91     		case 0:
;;;92     		default:
;;;93     		break;
;;;94     	}
;;;95     	#endif
;;;96     	
;;;97     	Calc_Clock(1);
000498  e3a00001          MOV      r0,#1
00049c  ebfffffe          BL       Calc_Clock
;;;98     	UPDATE_REFRESH(Hclk);
0004a0  e59f0158          LDR      r0,|L1.1536|
0004a4  e5900000          LDR      r0,[r0,#0]  ; Hclk
0004a8  ebfffffe          BL       _ffltu
0004ac  e1a05000          MOV      r5,r0
0004b0  ebfffffe          BL       _f2d
0004b4  e98d0003          STMIB    sp,{r0,r1}
0004b8  e28f0f51          ADR      r0,|L1.1540|
0004bc  e890000c          LDMIA    r0,{r2,r3}
0004c0  e59d0004          LDR      r0,[sp,#4]
0004c4  ebfffffe          BL       _dmul
0004c8  e58d000c          STR      r0,[sp,#0xc]
0004cc  e58d1010          STR      r1,[sp,#0x10]
0004d0  e28f0f4d          ADR      r0,|L1.1548|
0004d4  e890000c          LDMIA    r0,{r2,r3}
0004d8  e59d000c          LDR      r0,[sp,#0xc]
0004dc  ebfffffe          BL       _ddiv
0004e0  e58d0014          STR      r0,[sp,#0x14]
0004e4  e58d1018          STR      r1,[sp,#0x18]
0004e8  ebfffffe          BL       _dfixu
0004ec  e2600001          RSB      r0,r0,#1
0004f0  e2800e80          ADD      r0,r0,#0x800
0004f4  e3a01448          MOV      r1,#0x48000000
0004f8  e5911024          LDR      r1,[r1,#0x24]
0004fc  e1a015a1          MOV      r1,r1,LSR #11
000500  e1a01581          MOV      r1,r1,LSL #11
000504  e1800001          ORR      r0,r0,r1
000508  e3a01448          MOV      r1,#0x48000000
00050c  e5810024          STR      r0,[r1,#0x24]
;;;99     	//Uart_Init(Pclk, 115200);
;;;100    
;;;101    	// Clock off unused block.
;;;102    	rCLKCON &= ~( (1<<19) | (1<<18) | (0<<17) | (1<<16) | \
000510  e3a0044c          MOV      r0,#0x4c000000
000514  e590000c          LDR      r0,[r0,#0xc]
000518  e3c00ad8          BIC      r0,r0,#0xd8000
00051c  e3c00f84          BIC      r0,r0,#0x210
000520  e3a0144c          MOV      r1,#0x4c000000
000524  e581000c          STR      r0,[r1,#0xc]
;;;103    				(1<<15) | (0<<14) | (0<<13) | (0<<12) | \
;;;104    				(0<<11) | (0<<10) | (1<<9) | (0<<8) | \
;;;105    				(0<<7) | (0<<6) | (0<<5) | (1<<4) );
;;;106    
;;;107    	Uart_Printf("Add Mem to Mem DMA(y/n) ? ");
000528  e28f00e4          ADR      r0,|L1.1556|
00052c  ebfffffe          BL       Uart_Printf
;;;108    	if(Uart_Getch()=='y') {
000530  ebfffffe          BL       Uart_Getch
000534  e3500079          CMP      r0,#0x79
000538  1a000002          BNE      |L1.1352|
;;;109    		Uart_Printf("\n- DMA Mem to Mem(1024 words).\n");
00053c  e28f00ec          ADR      r0,|L1.1584|
000540  ebfffffe          BL       Uart_Printf
;;;110    		StartDmaMem2Mem();
000544  ebfffffe          BL       StartDmaMem2Mem
;;;111    	}
;;;112    	Uart_Printf("\n");
                  |L1.1352|
000548  e28f0f40          ADR      r0,|L1.1616|
00054c  ebfffffe          BL       Uart_Printf
;;;113    
;;;114    	Uart_Printf("- Run 5-Timers (130KHz).\n");	
000550  e28f00fc          ADR      r0,|L1.1620|

⌨️ 快捷键说明

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