📄 pll.txt
字号:
;;;123 Uart_Printf("Now change PLL value\n");
000354 e28f0f70 ADR r0,|L1.1308|
000358 ebfffffe BL _printf
;;;124 Uart_TxEmpty(0);
00035c e3a00000 MOV r0,#0
000360 ebfffffe BL Uart_TxEmpty
;;;125
;;;126 PreChangeSdramParameter();
000364 ebfffffe BL PreChangeSdramParameter
;;;127 if((HCLKdiv==0)&&(PCLKdiv==0))
000368 e1940006 ORRS r0,r4,r6
00036c 1a000007 BNE |L1.912|
;;;128 {
;;;129 ChangeMPllValue(mdiv,pdiv,sdiv); //Set MPS first
000370 e1a02009 MOV r2,r9
000374 e1a01007 MOV r1,r7
000378 e1a00008 MOV r0,r8
00037c ebfffffe BL ChangeMPllValue
;;;130 ChangeClockDivider(0,0); //And then set divider
000380 e3a01000 MOV r1,#0
000384 e3a00000 MOV r0,#0
000388 ebfffffe BL ChangeClockDivider
00038c ea000006 B |L1.940|
;;;131 }
;;;132 else
;;;133 {
;;;134 ChangeClockDivider(HCLKdiv,PCLKdiv);
|L1.912|
000390 e1a01006 MOV r1,r6
000394 e1a00004 MOV r0,r4
000398 ebfffffe BL ChangeClockDivider
;;;135 ChangeMPllValue(mdiv,pdiv,sdiv);
00039c e1a02009 MOV r2,r9
0003a0 e1a01007 MOV r1,r7
0003a4 e1a00008 MOV r0,r8
0003a8 ebfffffe BL ChangeMPllValue
;;;136 }
;;;137
;;;138 ChangeSdramParameter( fclk*1000000/(HCLKdiv+1) );
|L1.940|
0003ac e59f212c LDR r2,|L1.1248|
0003b0 e0010592 MUL r1,r2,r5
0003b4 e2840001 ADD r0,r4,#1
0003b8 ebfffffe BL __rt_sdiv
0003bc e1a0a000 MOV r10,r0
0003c0 ebfffffe BL ChangeSdramParameter
;;;139 Uart_Init((fclk*1000000/(HCLKdiv+1))/(PCLKdiv+1),115200); //PCLK, Baud Rate
0003c4 e59f2114 LDR r2,|L1.1248|
0003c8 e0010592 MUL r1,r2,r5
0003cc e2840001 ADD r0,r4,#1
0003d0 ebfffffe BL __rt_sdiv
0003d4 e1a0b000 MOV r11,r0
0003d8 e1a01000 MOV r1,r0
0003dc e2860001 ADD r0,r6,#1
0003e0 ebfffffe BL __rt_sdiv
0003e4 e1a0a000 MOV r10,r0
0003e8 e51f1154 LDR r1,|L1.668|
0003ec ebfffffe BL Uart_Init
;;;140 Uart_Printf("FCLK=%dMHz,HCLK=%dMHz,PCLK=%dMHz\n",fclk,(fclk/(HCLKdiv+1)),(fclk/(HCLKdiv+1))/(PCLKdiv+1));
0003f0 e1a01005 MOV r1,r5
0003f4 e2840001 ADD r0,r4,#1
0003f8 ebfffffe BL __rt_sdiv
0003fc e1a0b000 MOV r11,r0
000400 e1a01000 MOV r1,r0
000404 e2860001 ADD r0,r6,#1
000408 ebfffffe BL __rt_sdiv
00040c e1a01005 MOV r1,r5
000410 e58d0008 STR r0,[sp,#8]
000414 e2840001 ADD r0,r4,#1
000418 ebfffffe BL __rt_sdiv
00041c e1a0a000 MOV r10,r0
000420 e1a02000 MOV r2,r0
000424 e1a01005 MOV r1,r5
000428 e28f0f41 ADR r0,|L1.1332|
00042c e59d3008 LDR r3,[sp,#8]
000430 ebfffffe BL _printf
;;;141 Uart_Printf("...I'm running in changed FCLK...\n");
000434 e24f0f67 ADR r0,|L1.672|
000438 ebfffffe BL _printf
;;;142 dhrystone21();
00043c ebfffffe BL dhrystone21
;;;143 }
000440 e8bd8ffe LDMFD sp!,{r1-r11,pc}
|L1.1092|
000444 6e75525b DCB "[Run"
000448 676e696e DCB "ning"
00044c 61686320 DCB " cha"
000450 2065676e DCB "nge "
000454 74736574 DCB "test"
000458 20666f20 DCB " of "
00045c 2f502f4d DCB "M/P/"
000460 61762053 DCB "S va"
000464 5d65756c DCB "lue]"
000468 0000000a DCB "\n\0\0\0"
|L1.1132|
00046c 75706e49 DCB "Inpu"
000470 43462074 DCB "t FC"
000474 76204b4c DCB "LK v"
000478 6575616c DCB "laue"
00047c 0000000a DCB "\n\0\0\0"
|L1.1152|
000480 75706e49 DCB "Inpu"
000484 204d2074 DCB "t M "
000488 75616c76 DCB "vlau"
00048c 00000a65 DCB "e\n\0\0"
|L1.1168|
000490 75706e49 DCB "Inpu"
000494 20502074 DCB "t P "
000498 75616c76 DCB "vlau"
00049c 00000a65 DCB "e\n\0\0"
|L1.1184|
0004a0 75706e49 DCB "Inpu"
0004a4 20532074 DCB "t S "
0004a8 75616c76 DCB "vlau"
0004ac 00000a65 DCB "e\n\0\0"
|L1.1200|
0004b0 75706e49 DCB "Inpu"
0004b4 43482074 DCB "t HC"
0004b8 69644b4c DCB "LKdi"
0004bc 20302876 DCB "v(0 "
0004c0 3120726f DCB "or 1"
0004c4 00000a29 DCB ")\n\0\0"
|L1.1224|
0004c8 75706e49 DCB "Inpu"
0004cc 43502074 DCB "t PC"
0004d0 69644b4c DCB "LKdi"
0004d4 20302876 DCB "v(0 "
0004d8 3120726f DCB "or 1"
0004dc 00000a29 DCB ")\n\0\0"
|L1.1248|
0004e0 000f4240 DCD 0x000f4240
|L1.1252|
0004e4 6b6c6366 DCB "fclk"
0004e8 2c64253d DCB "=%d,"
0004ec 7669644d DCB "Mdiv"
0004f0 2c64253d DCB "=%d,"
0004f4 76696450 DCB "Pdiv"
0004f8 2c64253d DCB "=%d,"
0004fc 76696453 DCB "Sdiv"
000500 2c64253d DCB "=%d,"
000504 4b4c4348 DCB "HCLK"
000508 3d766964 DCB "div="
00050c 502c6425 DCB "%d,P"
000510 644b4c43 DCB "CLKd"
000514 253d7669 DCB "iv=%"
000518 00000a64 DCB "d\n\0\0"
|L1.1308|
00051c 20776f4e DCB "Now "
000520 6e616863 DCB "chan"
000524 50206567 DCB "ge P"
000528 76204c4c DCB "LL v"
00052c 65756c61 DCB "alue"
000530 0000000a DCB "\n\0\0\0"
|L1.1332|
000534 4b4c4346 DCB "FCLK"
000538 4d64253d DCB "=%dM"
00053c 482c7a48 DCB "Hz,H"
000540 3d4b4c43 DCB "CLK="
000544 484d6425 DCB "%dMH"
000548 43502c7a DCB "z,PC"
00054c 253d4b4c DCB "LK=%"
000550 7a484d64 DCB "dMHz"
000554 0000000a DCB "\n\0\0\0"
ENDP
Test_PllOnOff PROC
;;;146 void Test_PllOnOff(void)
;;;147 {
000558 e92d4070 STMFD sp!,{r4-r6,lr}
;;;148 int i,j,k;
;;;149 unsigned int saveLCD,saveREFRESH;
;;;150
;;;151 rLOCKTIME=(3602<<16)|(3602<<0); // 3602 is about 300us at 12Mhz
00055c e59f00a0 LDR r0,|L1.1540|
000560 e3a01440 MOV r1,#0x40000000
000564 e5810000 STR r0,[r1,#0]
;;;152 Uart_Printf("[PLL On/Off test]\n");
000568 e28f0098 ADR r0,|L1.1544|
00056c ebfffffe BL _printf
;;;153 Uart_TxEmpty(0); //To avoid being crushed the character
000570 e3a00000 MOV r0,#0
000574 ebfffffe BL Uart_TxEmpty
;;;154 LcdEnvidOnOff(0);
000578 e3a00000 MOV r0,#0
00057c ebfffffe BL LcdEnvidOnOff
;;;155
;;;156 for(j=0;j<1000;j++)
000580 e3a05000 MOV r5,#0
|L1.1412|
000584 e3550ffa CMP r5,#0x3e8
000588 aa00001c BGE |L1.1536|
00058c ea000001 B |L1.1432|
|L1.1424|
000590 e2855001 ADD r5,r5,#1
000594 eafffffa B |L1.1412|
;;;157 {
;;;158 rCLKSRC=(0<<8)|(0<<7)|(1<<5)|(1<<4)|(0); // OnOSC_EN disable,U_PLL on,M_PLL off,External clk,Divider=0
|L1.1432|
000598 e3a00030 MOV r0,#0x30
00059c e3a01440 MOV r1,#0x40000000
0005a0 e5810024 STR r0,[r1,#0x24]
;;;159 /* For safety
;;;160 rCLKSRC= (0<<8)|(0<<7)|(0<<5)|(0<<4)|(0);
;;;161 rCLKSRC=(0<<8)|(0<<7)|(0<<5)|(1<<4)|(0);
;;;162 rCLKSRC=(0<<8)|(0<<7)|(1<<5)|(1<<4)|(0);
;;;163 */
;;;164 saveREFRESH=rSDRAM_REFRESH;
0005a4 e28108c4 ADD r0,r1,#0xc40000
0005a8 e5906008 LDR r6,[r0,#8]
;;;165 rSDRAM_REFRESH=7.8*(FIN/1000000); // Period= 7.8us
0005ac e3a0005d MOV r0,#0x5d
0005b0 e28118c4 ADD r1,r1,#0xc40000
0005b4 e5810008 STR r0,[r1,#8]
;;;166 //The other memory control register should be optimized for SLOW mode.
;;;167 //saveLCD=rLCDCON1;
;;;168 //rLCDCON1=rLCDCON1&~(0x3ff<<8)|(1<<8); // Change LCD CLKVAL
;;;169 rCLKSRC=(0<<8)|(0<<7)|(0<<5)|(1<<4)|(0); // OnOSC_EN disable,U_PLL on,M_PLL on,External clk,Divider=0
0005b8 e3a00010 MOV r0,#0x10
0005bc e3a01440 MOV r1,#0x40000000
0005c0 e5810024 STR r0,[r1,#0x24]
;;;170 for(i=0;i<2048;i++); //S/W MPLL lock-time
0005c4 e3a04000 MOV r4,#0
|L1.1480|
0005c8 e3540e80 CMP r4,#0x800
0005cc aa000001 BGE |L1.1496|
0005d0 e2844001 ADD r4,r4,#1
0005d4 eafffffb B |L1.1480|
;;;171 //rLCDCON1=saveLCD;
;;;172 rSDRAM_REFRESH=saveREFRESH;
|L1.1496|
0005d8 e59f003c LDR r0,|L1.1564|
0005dc e5806008 STR r6,[r0,#8]
;;;173 rCLKSRC=(0<<8)|(0<<7)|(0<<5)|(0<<4)|(0); // OnOSC_EN disable,U_PLL on,M_PLL on,MPLL_clk,Divider=0
0005e0 e3a00000 MOV r0,#0
0005e4 e3a01440 MOV r1,#0x40000000
0005e8 e5810024 STR r0,[r1,#0x24]
;;;174 Uart_Printf(".");
0005ec e28f002c ADR r0,|L1.1568|
0005f0 ebfffffe BL _printf
;;;175 Uart_TxEmpty(0); //To avoid being crushed the character
0005f4 e3a00000 MOV r0,#0
0005f8 ebfffffe BL Uart_TxEmpty
;;;176 }
0005fc eaffffe3 B |L1.1424|
;;;177 }
|L1.1536|
000600 e8bd8070 LDMFD sp!,{r4-r6,pc}
|L1.1540|
000604 0e120e12 DCD 0x0e120e12
|L1.1544|
000608 4c4c505b DCB "[PLL"
00060c 2f6e4f20 DCB " On/"
000610 2066664f DCB "Off "
000614 74736574 DCB "test"
000618 00000a5d DCB "]\n\0\0"
|L1.1564|
00061c 40c40000 DCD 0x40c40000
|L1.1568|
000620 0000002e DCB ".\0\0\0"
ENDP
AREA ||.constdata||, DATA, READONLY, ALIGN=2
||.constdata$1||
DCD 0x02faf080
DCD 0x0000002a
DCD 0x00000001
DCD 0x00000002
DCD 0x00000000
DCD 0x00000000
DCD 0x03567e00
DCD 0x00000030
DCD 0x00000001
DCD 0x00000002
DCD 0x00000000
DCD 0x00000000
DCD 0x03fe56c0
DCD 0x0000003b
DCD 0x00000001
DCD 0x00000002
DCD 0x00000000
DCD 0x00000000
DCD 0x04b571c0
DCD 0x00000047
DCD 0x00000004
DCD 0x00000001
DCD 0x00000000
DCD 0x00000000
DCD 0x0501bd00
DCD 0x0000004c
DCD 0x00000004
DCD 0x00000001
DCD 0x00000000
DCD 0x00000001
DCD 0x055d4a80
DCD 0x00000052
DCD 0x00000004
DCD 0x00000001
DCD 0x00000000
DCD 0x00000001
DCD 0x05b8d800
DCD 0x00000038
DCD 0x00000002
DCD 0x00000001
DCD 0x00000000
DCD 0x00000001
DCD 0x06052340
DCD 0x0000005d
DCD 0x00000004
DCD 0x00000001
DCD 0x00000000
DCD 0x00000001
DCD 0x06bc3e40
DCD 0x00000069
DCD 0x00000004
DCD 0x00000001
DCD 0x00000000
DCD 0x00000001
DCD 0x07088980
DCD 0x00000033
DCD 0x00000001
DCD 0x00000001
DCD 0x00000000
DCD 0x00000001
DCD 0x07641700
DCD 0x00000036
DCD 0x00000001
DCD 0x00000001
DCD 0x00000000
DCD 0x00000001
DCD 0x080befc0
DCD 0x00000052
DCD 0x00000002
DCD 0x00000001
DCD 0x00000000
DCD 0x00000001
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -