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

📄 pll.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 TXT
📖 第 1 页 / 共 4 页
字号:
                  Manual_Change_Pll PROC
;;;217    void Manual_Change_Pll(void)
;;;218    {
00059c  e92d4ff0          STMFD    sp!,{r4-r11,lr}
0005a0  e24dd03c          SUB      sp,sp,#0x3c
;;;219    	U32 pdiv, mdiv, sdiv, sval, fclk, hdiv_val, pdiv_val, voltage=120;
0005a4  e3a09078          MOV      r9,#0x78
;;;220    	int i, fclk_sel;
;;;221    	float ffclk;
;;;222    
;;;223    	Uart_Printf("[Running change test of M/P/S value]\n");
0005a8  e28f0fbf          ADR      r0,|L1.2220|
0005ac  ebfffffe          BL       Uart_Printf
;;;224    
;;;225    	for(i=0; i<sizeof(Mps_Val)/16; i++) {
0005b0  e3a04000          MOV      r4,#0
                  |L1.1460|
0005b4  e3540006          CMP      r4,#6
0005b8  2a000024          BCS      |L1.1616|
0005bc  ea000001          B        |L1.1480|
                  |L1.1472|
0005c0  e2844001          ADD      r4,r4,#1
0005c4  eafffffa          B        |L1.1460|
;;;226    		if(i%2==0) Uart_Printf("\n");
                  |L1.1480|
0005c8  e3140001          TST      r4,#1
0005cc  1a000001          BNE      |L1.1496|
0005d0  e28f0fbe          ADR      r0,|L1.2256|
0005d4  ebfffffe          BL       Uart_Printf
;;;227    		Uart_Printf("%2d: FCLK=%4.1f [%xh(%d),%xh,%xh]	", i, (float)Mps_Val[i][0]/MEGA,Mps_Val[i][1],Mps_Val[i][1],Mps_Val[i][2],Mps_Val[i][3]);
                  |L1.1496|
0005d8  e51f12c4          LDR      r1,|L1.796|
0005dc  e7911204          LDR      r1,[r1,r4,LSL #4]
0005e0  e1a00001          MOV      r0,r1
0005e4  ebfffffe          BL       _ffltu
0005e8  e1a0b000          MOV      r11,r0
0005ec  e59f12e0          LDR      r1,|L1.2260|
0005f0  ebfffffe          BL       _fdiv
0005f4  e1a0a000          MOV      r10,r0
0005f8  ebfffffe          BL       _f2d
0005fc  e58d0024          STR      r0,[sp,#0x24]
000600  e58d1028          STR      r1,[sp,#0x28]
000604  e51f02f0          LDR      r0,|L1.796|
000608  e0800204          ADD      r0,r0,r4,LSL #4
00060c  e590300c          LDR      r3,[r0,#0xc]
000610  e51f02fc          LDR      r0,|L1.796|
000614  e0800204          ADD      r0,r0,r4,LSL #4
000618  e5902008          LDR      r2,[r0,#8]
00061c  e51f0308          LDR      r0,|L1.796|
000620  e0800204          ADD      r0,r0,r4,LSL #4
000624  e5901004          LDR      r1,[r0,#4]
000628  e51f0314          LDR      r0,|L1.796|
00062c  e0800204          ADD      r0,r0,r4,LSL #4
000630  e5900004          LDR      r0,[r0,#4]
000634  e88d000f          STMIA    sp,{r0-r3}
000638  e1a01004          MOV      r1,r4
00063c  e28f0fa5          ADR      r0,|L1.2264|
000640  e59d2024          LDR      r2,[sp,#0x24]
000644  e59d3028          LDR      r3,[sp,#0x28]
000648  ebfffffe          BL       Uart_Printf
;;;228    	}
00064c  eaffffdb          B        |L1.1472|
;;;229    	Uart_Printf("\n");
                  |L1.1616|
000650  e28f0f9e          ADR      r0,|L1.2256|
000654  ebfffffe          BL       Uart_Printf
;;;230    
;;;231    	#if 1
;;;232    	Uart_Printf("Select FCLK No(0-%d): ", sizeof(Mps_Val)/16-1);
000658  e3a01005          MOV      r1,#5
00065c  e28f0fa6          ADR      r0,|L1.2300|
000660  ebfffffe          BL       Uart_Printf
;;;233    	fclk_sel=Uart_GetIntNum();
000664  ebfffffe          BL       Uart_GetIntNum
000668  e1a06000          MOV      r6,r0
;;;234    	mdiv = Mps_Val[fclk_sel][1];
00066c  e51f0358          LDR      r0,|L1.796|
000670  e0800206          ADD      r0,r0,r6,LSL #4
000674  e5905004          LDR      r5,[r0,#4]
;;;235    	pdiv = Mps_Val[fclk_sel][2];
000678  e51f0364          LDR      r0,|L1.796|
00067c  e0800206          ADD      r0,r0,r6,LSL #4
000680  e5907008          LDR      r7,[r0,#8]
;;;236    	sdiv = Mps_Val[fclk_sel][3];
000684  e51f0370          LDR      r0,|L1.796|
000688  e0800206          ADD      r0,r0,r6,LSL #4
00068c  e590800c          LDR      r8,[r0,#0xc]
;;;237    	#else
;;;238    	Uart_Printf("Input M vlaue : ");
;;;239    	mdiv=Uart_GetIntNum();		
;;;240    	Uart_Printf("Input P vlaue : ");
;;;241    	pdiv=Uart_GetIntNum();	
;;;242    	Uart_Printf("Input S vlaue : ");
;;;243    	sdiv=Uart_GetIntNum();
;;;244    	#endif
;;;245    
;;;246    	Uart_Printf("Select FCLK : HCLK(1:1=11,1:2=12,1:3=13,1:4=14,...) : ");
000690  e28f0f9f          ADR      r0,|L1.2324|
000694  ebfffffe          BL       Uart_Printf
;;;247    	hdiv_val=Uart_GetIntNum();
000698  ebfffffe          BL       Uart_GetIntNum
00069c  e58d0034          STR      r0,[sp,#0x34]
;;;248    	Uart_Printf("Select HCLK : PCLK(1:1=11,1:2=12) : ");
0006a0  e28f0fa9          ADR      r0,|L1.2380|
0006a4  ebfffffe          BL       Uart_Printf
;;;249    	pdiv_val=Uart_GetIntNum();
0006a8  ebfffffe          BL       Uart_GetIntNum
0006ac  e58d0030          STR      r0,[sp,#0x30]
;;;250    
;;;251    	sval=(int)pow(2,sdiv);
0006b0  e1a00008          MOV      r0,r8
0006b4  ebfffffe          BL       _dfltu
0006b8  e58d001c          STR      r0,[sp,#0x1c]
0006bc  e58d1020          STR      r1,[sp,#0x20]
0006c0  e1a03001          MOV      r3,r1
0006c4  e1a02000          MOV      r2,r0
0006c8  e28f0fa9          ADR      r0,|L1.2420|
0006cc  e8900003          LDMIA    r0,{r0,r1}
0006d0  ebfffffe          BL       __softfp_pow
0006d4  e58d0024          STR      r0,[sp,#0x24]
0006d8  e58d1028          STR      r1,[sp,#0x28]
0006dc  ebfffffe          BL       _dfix
0006e0  e58d0038          STR      r0,[sp,#0x38]
;;;252    	ffclk = (U32) ( (((float)mdiv+8)*FIN*2.0)/(((float)pdiv+2)*(float)sval));	// pll2188x.
0006e4  e1a00005          MOV      r0,r5
0006e8  ebfffffe          BL       _ffltu
0006ec  e1a0b000          MOV      r11,r0
0006f0  e3a01441          MOV      r1,#0x41000000
0006f4  ebfffffe          BL       _fadd
0006f8  e1a0a000          MOV      r10,r0
0006fc  e59f1278          LDR      r1,|L1.2428|
000700  ebfffffe          BL       _fmul
000704  e58d0004          STR      r0,[sp,#4]
000708  ebfffffe          BL       _f2d
00070c  e58d0008          STR      r0,[sp,#8]
000710  e58d100c          STR      r1,[sp,#0xc]
000714  e28f0f96          ADR      r0,|L1.2420|
000718  e890000c          LDMIA    r0,{r2,r3}
00071c  e59d0008          LDR      r0,[sp,#8]
000720  ebfffffe          BL       _dmul
000724  e58d0018          STR      r0,[sp,#0x18]
000728  e58d101c          STR      r1,[sp,#0x1c]
00072c  e1a00007          MOV      r0,r7
000730  ebfffffe          BL       _ffltu
000734  e1a0b000          MOV      r11,r0
000738  e3a01440          MOV      r1,#0x40000000
00073c  ebfffffe          BL       _fadd
000740  e58d0008          STR      r0,[sp,#8]
000744  e59d0038          LDR      r0,[sp,#0x38]
000748  ebfffffe          BL       _ffltu
00074c  e1a0a000          MOV      r10,r0
000750  e59d1008          LDR      r1,[sp,#8]
000754  ebfffffe          BL       _fmul
000758  e58d000c          STR      r0,[sp,#0xc]
00075c  ebfffffe          BL       _f2d
000760  e58d0010          STR      r0,[sp,#0x10]
000764  e58d1014          STR      r1,[sp,#0x14]
000768  e59d2018          LDR      r2,[sp,#0x18]
00076c  e59d301c          LDR      r3,[sp,#0x1c]
000770  ebfffffe          BL       _drdiv
000774  e58d0020          STR      r0,[sp,#0x20]
000778  e58d1024          STR      r1,[sp,#0x24]
00077c  ebfffffe          BL       _dfixu
000780  e58d0028          STR      r0,[sp,#0x28]
000784  ebfffffe          BL       _ffltu
000788  e58d002c          STR      r0,[sp,#0x2c]
;;;253    	Uart_Printf("Now change PLL value...(%dhz)[mps=%xh(%d), %d, %d]\n", (U32)ffclk, mdiv,mdiv, pdiv, sdiv);
00078c  e59d002c          LDR      r0,[sp,#0x2c]
000790  ebfffffe          BL       _ffixu
000794  e1a0a000          MOV      r10,r0
000798  e1a03005          MOV      r3,r5
00079c  e1a02005          MOV      r2,r5
0007a0  e1a01000          MOV      r1,r0
0007a4  e28f0f75          ADR      r0,|L1.2432|
0007a8  e88d0180          STMIA    sp,{r7,r8}
0007ac  ebfffffe          BL       Uart_Printf
;;;254    
;;;255    	Uart_Printf("Voltage: ");
0007b0  e28f0f7f          ADR      r0,|L1.2484|
0007b4  ebfffffe          BL       Uart_Printf
;;;256    	voltage = Uart_GetIntNum();
0007b8  ebfffffe          BL       Uart_GetIntNum
0007bc  e1a09000          MOV      r9,r0
;;;257    	Max1718_Set(voltage);
0007c0  e1a00009          MOV      r0,r9
0007c4  ebfffffe          BL       Max1718_Set
;;;258    	Delay(10);
0007c8  e3a0000a          MOV      r0,#0xa
0007cc  ebfffffe          BL       Delay
;;;259    
;;;260    	ChangeClockDivider(hdiv_val, pdiv_val);
0007d0  e59d0034          LDR      r0,[sp,#0x34]
0007d4  e59d1030          LDR      r1,[sp,#0x30]
0007d8  ebfffffe          BL       ChangeClockDivider
;;;261    	ChangeMPllValue(mdiv,pdiv,sdiv);
0007dc  e1a02008          MOV      r2,r8
0007e0  e1a01007          MOV      r1,r7
0007e4  e1a00005          MOV      r0,r5
0007e8  ebfffffe          BL       ChangeMPllValue
;;;262    
;;;263    	Calc_Clock(1);
0007ec  e3a00001          MOV      r0,#1
0007f0  ebfffffe          BL       Calc_Clock
;;;264    	UPDATE_REFRESH(Hclk);
0007f4  e51f04b4          LDR      r0,|L1.840|
0007f8  e5900000          LDR      r0,[r0,#0]  ; Hclk
0007fc  ebfffffe          BL       _ffltu
000800  e1a0a000          MOV      r10,r0
000804  ebfffffe          BL       _f2d
000808  e58d0014          STR      r0,[sp,#0x14]
00080c  e58d1018          STR      r1,[sp,#0x18]
000810  e59f01a8          LDR      r0,|L1.2496|
000814  e890000c          LDMIA    r0,{r2,r3}
000818  e59d0014          LDR      r0,[sp,#0x14]
00081c  ebfffffe          BL       _dmul
000820  e58d001c          STR      r0,[sp,#0x1c]
000824  e58d1020          STR      r1,[sp,#0x20]
000828  e59f0194          LDR      r0,|L1.2500|
00082c  e890000c          LDMIA    r0,{r2,r3}
000830  e59d001c          LDR      r0,[sp,#0x1c]
000834  ebfffffe          BL       _ddiv
000838  e58d0024          STR      r0,[sp,#0x24]
00083c  e58d1028          STR      r1,[sp,#0x28]
000840  ebfffffe          BL       _dfixu
000844  e2600001          RSB      r0,r0,#1
000848  e2800e80          ADD      r0,r0,#0x800
00084c  e3a01448          MOV      r1,#0x48000000
000850  e5911024          LDR      r1,[r1,#0x24]
000854  e1a015a1          MOV      r1,r1,LSR #11
000858  e1a01581          MOV      r1,r1,LSL #11
00085c  e1800001          ORR      r0,r0,r1
000860  e3a01448          MOV      r1,#0x48000000
000864  e5810024          STR      r0,[r1,#0x24]
;;;265    	Uart_Init(Pclk, 115200);
000868  e59f1158          LDR      r1,|L1.2504|
00086c  e59f0158          LDR      r0,|L1.2508|
000870  e5900000          LDR      r0,[r0,#0]  ; Pclk
000874  ebfffffe          BL       Uart_Init
;;;266    
;;;267    
;;;268    	#if 1
;;;269    	//Uart_Getch();
;;;270    	Uart_Printf("Memory test (y/n)? ");
000878  e28f0f54          ADR      r0,|L1.2512|
00087c  ebfffffe          BL       Uart_Printf
;;;271    	if(Uart_Getch()=='y') {
000880  ebfffffe          BL       Uart_Getch
000884  e3500079          CMP      r0,#0x79
000888  1a000056          BNE      |L1.2536|
;;;272    		while(1) {
00088c  e1a00000          NOP      
                  |L1.2192|
000890  e1a00000          NOP      
;;;273    			Mem_Test(1);
000894  e3a00001          MOV      r0,#1
000898  ebfffffe          BL       Mem_Test
;;;274    			if(Uart_GetKey()!=0x0) break;
00089c  ebfffffe          BL       Uart_GetKey
0008a0  e3500000          CMP      r0,#0
0008a4  0a00004e          BEQ      |L1.2532|
0008a8  ea00004e          B        |L1.2536|
                  |L1.2220|
0008ac  6e75525b          DCB      "[Run"
0008b0  676e696e          DCB      "ning"
0008b4  61686320          DCB      " cha"
0008b8  2065676e          DCB      "nge "
0008bc  74736574          DCB      "test"
0008c0  20666f20          DCB      " of "
0008c4  2f502f4d          DCB      "M/P/"
0008c8  61762053          DCB      "S va"
0008cc  5d65756c          DCB      "lue]"
                  |L1.2256|
0008d0  0000000a          DCB      "\n\0\0\0"
                  |L1.2260|
0008d4  49742400          DCD      0x49742400
                  |L1.2264|
0008d8  3a643225          DCB      "%2d:"
0008dc  4c434620          DCB      " FCL"
0008e0  34253d4b          DCB      "K=%4"
0008e4  2066312e          DCB      ".1f "
0008e8  6878255b          DCB      "[%xh"

⌨️ 快捷键说明

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