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

📄 pll.txt

📁 支持三星原产的S3C24A0开发板
💻 TXT
📖 第 1 页 / 共 2 页
字号:
; generated by ARM C Compiler, ADS1.2 [Build 805]

; commandline [-errors .\err\pll.err -O0 -asm -g+ -cpu 5TEJ -fs -Wd -Ec -I.\include "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
                          CODE32

                          AREA ||.text||, CODE, READONLY

                  Test_PLL PROC
;;;18     void Test_PLL(void)
;;;19     {
                  |L1.0|
000000  e92d4ff0          STMFD    sp!,{r4-r11,lr}
000004  e24ddf49          SUB      sp,sp,#0x124
;;;20         int i,j,k;    
;;;21         unsigned int saveCLKDIVN,saveMPLLCON;
;;;22         U32 mps[][6]={
000008  e3a02f48          MOV      r2,#0x120
00000c  e59f1238          LDR      r1,|L1.588|
000010  e28d0004          ADD      r0,sp,#4
000014  ebfffffe          BL       __rt_memcpy_w
;;;23         // 1:1:1
;;;24     	50000000, 42,1,2,0,0, //FCLK,MDIV,PDIV,SDIV,HCLKdiv,PCLKdiv
;;;25        	56000000, 48,1,2,0,0, 
;;;26        	67000000, 59,1,2,0,0,
;;;27        	79000000, 71,4,1,0,0,
;;;28        	//84000000, 76,4,1,0,0,
;;;29             //90000000, 82,4,1,0,0,
;;;30         // 1:1:2                 
;;;31     	84000000, 76,4,1,0,1,
;;;32     	90000000, 82,4,1,0,1,
;;;33     	96000000, 56,2,1,0,1,
;;;34     	101000000, 93,4,1,0,1,
;;;35     	113000000,105,4,1,0,1,
;;;36     	118000000, 51,1,1,0,1,
;;;37     	124000000, 54,1,1,0,1,
;;;38     	135000000, 82,2,1,0,1,
;;;39     	//147000000, 41,2,0,0,1,
;;;40     	//152000000, 68,4,0,0,1,
;;;41     	//158000000, 71,4,0,0,1,
;;;42         // 1:2:2                 
;;;43        	//84000000, 76,4,1,1,0,
;;;44        	//90000000, 82,4,1,1,0,
;;;45     	//96000000, 56,2,1,1,0,
;;;46     	//101000000, 93,4,1,1,0,
;;;47     	//113000000,105,4,1,1,0,
;;;48     	//118000000, 51,1,1,1,0,
;;;49     	//124000000, 54,1,1,1,0,
;;;50     	//135000000, 82,2,1,1,0,
;;;51     	//147000000, 41,2,0,1,0,
;;;52     	//152000000, 68,4,0,1,0,
;;;53     	//158000000, 71,4,0,1,0,
;;;54         // 1:2:4
;;;55         /*
;;;56     	170000000, 77,4,0,1,1,
;;;57     	180000000, 82,4,0,1,1,
;;;58     	186000000, 85,4,0,1,1,
;;;59     	192000000, 56,2,0,1,1,
;;;60     	202000000, 93,4,0,1,1,
;;;61     	214000000, 99,4,0,1,1,
;;;62     	220000000, 47,1,0,1,1,
;;;63     	226000000,105,4,0,1,1,
;;;64     	237000000, 71,2,0,1,1,
;;;65         */
;;;66         };
;;;67     
;;;68         saveCLKDIVN=rCLKDIVN;
000018  e3a00440          MOV      r0,#0x40000000
00001c  e5900028          LDR      r0,[r0,#0x28]
000020  e1a06000          MOV      r6,r0
;;;69         saveMPLLCON=rMPLLCON;
000024  e3a00440          MOV      r0,#0x40000000
000028  e5900010          LDR      r0,[r0,#0x10]
00002c  e1a07000          MOV      r7,r0
;;;70         
;;;71         LcdEnvidOnOff(0);
000030  e3a00000          MOV      r0,#0
000034  ebfffffe          BL       LcdEnvidOnOff
;;;72         Uart_Printf("[PLL frequency change test]\n");
000038  e28f0f84          ADR      r0,|L1.592|
00003c  ebfffffe          BL       _printf
;;;73         Uart_TxEmpty(0);
000040  e3a00000          MOV      r0,#0
000044  ebfffffe          BL       Uart_TxEmpty
;;;74         rLOCKTIME=(3602<<16)|(0xfff<<0); // 3602 is about 300us at 12Mhz
000048  e59f0220          LDR      r0,|L1.624|
00004c  e3a01440          MOV      r1,#0x40000000
000050  e5810000          STR      r0,[r1,#0]
;;;75         srand(0); //Set a random starting point
000054  e3a00000          MOV      r0,#0
000058  ebfffffe          BL       srand
;;;76     
;;;77         for(j=0;j<100000;j++)
00005c  e3a05000          MOV      r5,#0
                  |L1.96|
000060  e255cb60          SUBS     r12,r5,#0x18000
000064  a25cce6a          SUBGES   r12,r12,#0x6a0
000068  aa00006c          BGE      |L1.544|
00006c  ea000001          B        |L1.120|
                  |L1.112|
000070  e2855001          ADD      r5,r5,#1
000074  eafffff9          B        |L1.96|
;;;78         {
;;;79         	i=rand()/(float)RAND_MAX*(sizeof(mps)/24);
                  |L1.120|
000078  ebfffffe          BL       rand
00007c  e1a0b000          MOV      r11,r0
000080  ebfffffe          BL       _fflt
000084  e1a0a000          MOV      r10,r0
000088  e3a015c0          MOV      r1,#0x30000000
00008c  ebfffffe          BL       _fmul
000090  e1a09000          MOV      r9,r0
000094  e59f11d8          LDR      r1,|L1.628|
000098  ebfffffe          BL       _fmul
00009c  e1a08000          MOV      r8,r0
0000a0  ebfffffe          BL       _ffix
0000a4  e1a04000          MOV      r4,r0
;;;80         	Uart_Printf("FCLK=%d MDIV=%xh,PDIV=%xh,SDIV=%xh\n",mps[i][0],mps[i][1],mps[i][2],mps[i][3]);
0000a8  e0840084          ADD      r0,r4,r4,LSL #1
0000ac  e28d1004          ADD      r1,sp,#4
0000b0  e0810180          ADD      r0,r1,r0,LSL #3
0000b4  e590300c          LDR      r3,[r0,#0xc]
0000b8  e0840084          ADD      r0,r4,r4,LSL #1
0000bc  e58d3000          STR      r3,[sp,#0]
0000c0  e28dc004          ADD      r12,sp,#4
0000c4  e08c0180          ADD      r0,r12,r0,LSL #3
0000c8  e5903008          LDR      r3,[r0,#8]
0000cc  e0840084          ADD      r0,r4,r4,LSL #1
0000d0  e28dc004          ADD      r12,sp,#4
0000d4  e08c0180          ADD      r0,r12,r0,LSL #3
0000d8  e5902004          LDR      r2,[r0,#4]
0000dc  e0840084          ADD      r0,r4,r4,LSL #1
0000e0  e28dc004          ADD      r12,sp,#4
0000e4  e79c1180          LDR      r1,[r12,r0,LSL #3]
0000e8  e28f0f62          ADR      r0,|L1.632|
0000ec  ebfffffe          BL       _printf
;;;81     	Uart_TxEmpty(0);    	
0000f0  e3a00000          MOV      r0,#0
0000f4  ebfffffe          BL       Uart_TxEmpty
;;;82     	if((mps[i][4]==0)&&(mps[i][5]==0))
0000f8  e0840084          ADD      r0,r4,r4,LSL #1
0000fc  e28d1004          ADD      r1,sp,#4
000100  e0810180          ADD      r0,r1,r0,LSL #3
000104  e5900010          LDR      r0,[r0,#0x10]
000108  e3500000          CMP      r0,#0
00010c  1a000016          BNE      |L1.364|
000110  e0840084          ADD      r0,r4,r4,LSL #1
000114  e28d1004          ADD      r1,sp,#4
000118  e0810180          ADD      r0,r1,r0,LSL #3
00011c  e5900014          LDR      r0,[r0,#0x14]
000120  e3500000          CMP      r0,#0
000124  1a000010          BNE      |L1.364|
;;;83     	{
;;;84     	    ChangeMPllValue(mps[i][1],mps[i][2],mps[i][3]);	//Set MPS first
000128  e0843084          ADD      r3,r4,r4,LSL #1
00012c  e28dc004          ADD      r12,sp,#4
000130  e08c3183          ADD      r3,r12,r3,LSL #3
000134  e593200c          LDR      r2,[r3,#0xc]
000138  e0843084          ADD      r3,r4,r4,LSL #1
00013c  e28dc004          ADD      r12,sp,#4
000140  e08c3183          ADD      r3,r12,r3,LSL #3
000144  e5931008          LDR      r1,[r3,#8]
000148  e0843084          ADD      r3,r4,r4,LSL #1
00014c  e28dc004          ADD      r12,sp,#4
000150  e08c3183          ADD      r3,r12,r3,LSL #3
000154  e5930004          LDR      r0,[r3,#4]
000158  ebfffffe          BL       ChangeMPllValue
;;;85     	    ChangeClockDivider(0,0); 	//And then set divider	
00015c  e3a01000          MOV      r1,#0
000160  e3a00000          MOV      r0,#0
000164  ebfffffe          BL       ChangeClockDivider
000168  ea000015          B        |L1.452|
;;;86     	}
;;;87     	else
;;;88     	{
;;;89     	    ChangeClockDivider(mps[i][4],mps[i][5]); 
                  |L1.364|
00016c  e0842084          ADD      r2,r4,r4,LSL #1
000170  e28d3004          ADD      r3,sp,#4
000174  e0832182          ADD      r2,r3,r2,LSL #3
000178  e5921014          LDR      r1,[r2,#0x14]
00017c  e0842084          ADD      r2,r4,r4,LSL #1
000180  e28d3004          ADD      r3,sp,#4
000184  e0832182          ADD      r2,r3,r2,LSL #3
000188  e5920010          LDR      r0,[r2,#0x10]
00018c  ebfffffe          BL       ChangeClockDivider
;;;90     	    ChangeMPllValue(mps[i][1],mps[i][2],mps[i][3]);
000190  e0843084          ADD      r3,r4,r4,LSL #1
000194  e28dc004          ADD      r12,sp,#4
000198  e08c3183          ADD      r3,r12,r3,LSL #3
00019c  e593200c          LDR      r2,[r3,#0xc]
0001a0  e0843084          ADD      r3,r4,r4,LSL #1
0001a4  e28dc004          ADD      r12,sp,#4
0001a8  e08c3183          ADD      r3,r12,r3,LSL #3
0001ac  e5931008          LDR      r1,[r3,#8]
0001b0  e0843084          ADD      r3,r4,r4,LSL #1
0001b4  e28dc004          ADD      r12,sp,#4
0001b8  e08c3183          ADD      r3,r12,r3,LSL #3
0001bc  e5930004          LDR      r0,[r3,#4]
0001c0  ebfffffe          BL       ChangeMPllValue
;;;91     	}
;;;92     	Uart_Init((mps[i][0]/(mps[i][4]+1))/(mps[i][5]+1),115200); //PCLK, Baud Rate
                  |L1.452|
0001c4  e0842084          ADD      r2,r4,r4,LSL #1
0001c8  e28d3004          ADD      r3,sp,#4
0001cc  e7931182          LDR      r1,[r3,r2,LSL #3]
0001d0  e0842084          ADD      r2,r4,r4,LSL #1
0001d4  e28d3004          ADD      r3,sp,#4
0001d8  e0832182          ADD      r2,r3,r2,LSL #3
0001dc  e5922010          LDR      r2,[r2,#0x10]
0001e0  e2820001          ADD      r0,r2,#1
0001e4  ebfffffe          BL       __rt_udiv
0001e8  e1a09000          MOV      r9,r0
0001ec  e0841084          ADD      r1,r4,r4,LSL #1
0001f0  e28d2004          ADD      r2,sp,#4
0001f4  e0821181          ADD      r1,r2,r1,LSL #3
0001f8  e5911014          LDR      r1,[r1,#0x14]
0001fc  e2810001          ADD      r0,r1,#1
000200  e1a01009          MOV      r1,r9
000204  ebfffffe          BL       __rt_udiv
000208  e1a08000          MOV      r8,r0
00020c  e59f1088          LDR      r1,|L1.668|
000210  ebfffffe          BL       Uart_Init
;;;93     	Uart_Printf("...I'm running in changed FCLK...\n");
000214  e28f0084          ADR      r0,|L1.672|
000218  ebfffffe          BL       _printf
;;;94         }  
00021c  eaffff93          B        |L1.112|
;;;95         rCLKDIVN=saveCLKDIVN;
                  |L1.544|
000220  e3a00440          MOV      r0,#0x40000000
000224  e5806028          STR      r6,[r0,#0x28]
;;;96         rMPLLCON=saveMPLLCON;
000228  e3a00440          MOV      r0,#0x40000000
00022c  e5807010          STR      r7,[r0,#0x10]
;;;97         Uart_Init(PCLK,115200);
000230  e59f1064          LDR      r1,|L1.668|
000234  e59f0088          LDR      r0,|L1.708|
000238  ebfffffe          BL       Uart_Init
;;;98         LcdEnvidOnOff(1);    
00023c  e3a00001          MOV      r0,#1
000240  ebfffffe          BL       LcdEnvidOnOff
;;;99      }
000244  e28ddf49          ADD      sp,sp,#0x124
000248  e8bd8ff0          LDMFD    sp!,{r4-r11,pc}
                  |L1.588|
00024c  00000000          DCD      ||.constdata$1||
                  |L1.592|
000250  4c4c505b          DCB      "[PLL"
000254  65726620          DCB      " fre"
000258  6e657571          DCB      "quen"
00025c  63207963          DCB      "cy c"
000260  676e6168          DCB      "hang"
000264  65742065          DCB      "e te"
000268  0a5d7473          DCB      "st]\n"
00026c  00000000          DCB      "\0\0\0\0"
                  |L1.624|
000270  0e120fff          DCD      0x0e120fff
                  |L1.628|
000274  41400000          DCD      0x41400000
                  |L1.632|
000278  4b4c4346          DCB      "FCLK"
00027c  2064253d          DCB      "=%d "
000280  5649444d          DCB      "MDIV"
000284  6878253d          DCB      "=%xh"
000288  4944502c          DCB      ",PDI"
00028c  78253d56          DCB      "V=%x"
000290  44532c68          DCB      "h,SD"
000294  253d5649          DCB      "IV=%"
000298  000a6878          DCB      "xh\n\0"
                  |L1.668|
00029c  0001c200          DCD      0x0001c200
                  |L1.672|
0002a0  492e2e2e          DCB      "...I"
0002a4  72206d27          DCB      "\'m r"
0002a8  696e6e75          DCB      "unni"
0002ac  6920676e          DCB      "ng i"
0002b0  6863206e          DCB      "n ch"
0002b4  65676e61          DCB      "ange"
0002b8  43462064          DCB      "d FC"
0002bc  2e2e4b4c          DCB      "LK.."
0002c0  00000a2e          DCB      ".\n\0\0"
                  |L1.708|
0002c4  030a32c0          DCD      0x030a32c0
                          ENDP

                  ChangePLL PROC
;;;102    void ChangePLL(void)
;;;103    {
0002c8  e92d4ffe          STMFD    sp!,{r1-r11,lr}
;;;104        int i, pdiv, mdiv, sdiv, HCLKdiv, PCLKdiv, fclk;
;;;105    
;;;106        Uart_Printf("[Running change test of M/P/S value]\n");
0002cc  e28f0f5c          ADR      r0,|L1.1092|
0002d0  ebfffffe          BL       _printf
;;;107    
;;;108        Uart_Printf("Input FCLK vlaue\n");
0002d4  e28f0f64          ADR      r0,|L1.1132|
0002d8  ebfffffe          BL       _printf
;;;109        fclk=Uart_GetIntNum();        
0002dc  ebfffffe          BL       Uart_GetIntNum
0002e0  e1a05000          MOV      r5,r0
;;;110        Uart_Printf("Input M vlaue\n");
0002e4  e28f0f65          ADR      r0,|L1.1152|
0002e8  ebfffffe          BL       _printf
;;;111        mdiv=Uart_GetIntNum();        
0002ec  ebfffffe          BL       Uart_GetIntNum
0002f0  e1a08000          MOV      r8,r0
;;;112        Uart_Printf("Input P vlaue\n");
0002f4  e28f0f65          ADR      r0,|L1.1168|
0002f8  ebfffffe          BL       _printf
;;;113        pdiv=Uart_GetIntNum();    
0002fc  ebfffffe          BL       Uart_GetIntNum
000300  e1a07000          MOV      r7,r0
;;;114        Uart_Printf("Input S vlaue\n");
000304  e28f0f65          ADR      r0,|L1.1184|
000308  ebfffffe          BL       _printf
;;;115        sdiv=Uart_GetIntNum();
00030c  ebfffffe          BL       Uart_GetIntNum
000310  e1a09000          MOV      r9,r0
;;;116    
;;;117        Uart_Printf("Input HCLKdiv(0 or 1)\n");
000314  e28f0f65          ADR      r0,|L1.1200|
000318  ebfffffe          BL       _printf
;;;118        HCLKdiv=Uart_GetIntNum();
00031c  ebfffffe          BL       Uart_GetIntNum
000320  e1a04000          MOV      r4,r0
;;;119        Uart_Printf("Input PCLKdiv(0 or 1)\n");
000324  e28f0f67          ADR      r0,|L1.1224|
000328  ebfffffe          BL       _printf
;;;120        PCLKdiv=Uart_GetIntNum();
00032c  ebfffffe          BL       Uart_GetIntNum
000330  e1a06000          MOV      r6,r0
;;;121        
;;;122        Uart_Printf("fclk=%d,Mdiv=%d,Pdiv=%d,Sdiv=%d,HCLKdiv=%d,PCLKdiv=%d\n",fclk*1000000,mdiv,pdiv,sdiv,HCLKdiv,PCLKdiv);
000334  e98d0050          STMIB    sp,{r4,r6}
000338  e58d9000          STR      r9,[sp,#0]
00033c  e59f219c          LDR      r2,|L1.1248|
000340  e0010592          MUL      r1,r2,r5
000344  e1a03007          MOV      r3,r7
000348  e1a02008          MOV      r2,r8
00034c  e28f0f64          ADR      r0,|L1.1252|
000350  ebfffffe          BL       _printf

⌨️ 快捷键说明

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