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

📄 pll.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 TXT
📖 第 1 页 / 共 4 页
字号:
;;;150    	rMPLLCON = mpllcon_bk;
0002b4  e3a0044c          MOV      r0,#0x4c000000
0002b8  e59d1024          LDR      r1,[sp,#0x24]
0002bc  e5801004          STR      r1,[r0,#4]
;;;151    	rCLKDIVN = clkdivn_bk;
0002c0  e3a0044c          MOV      r0,#0x4c000000
0002c4  e59d1020          LDR      r1,[sp,#0x20]
0002c8  e5801014          STR      r1,[r0,#0x14]
;;;152    	rCAMDIVN = camdivn_bk;
0002cc  e3a0044c          MOV      r0,#0x4c000000
0002d0  e59d101c          LDR      r1,[sp,#0x1c]
0002d4  e5801018          STR      r1,[r0,#0x18]
;;;153    	Calc_Clock(1);
0002d8  e3a00001          MOV      r0,#1
0002dc  ebfffffe          BL       Calc_Clock
;;;154    
;;;155    }
0002e0  e28dd02c          ADD      sp,sp,#0x2c
0002e4  e8bd8ff0          LDMFD    sp!,{r4-r11,pc}
                  |L1.744|
0002e8  4c4c505b          DCB      "[PLL"
0002ec  65726620          DCB      " fre"
0002f0  6e657571          DCB      "quen"
0002f4  63207963          DCB      "cy c"
0002f8  676e6168          DCB      "hang"
0002fc  65742065          DCB      "e te"
000300  31207473          DCB      "st 1"
000304  302c3030          DCB      "00,0"
000308  74203030          DCB      "00 t"
00030c  73656d69          DCB      "imes"
000310  00000a5d          DCB      "]\n\0\0"
                  |L1.788|
000314  005a55a5          DCD      0x005a55a5
                  |L1.792|
000318  00000000          DCD      No_Of_Mps_Val
                  |L1.796|
00031c  00000000          DCD      Mps_Val
                  |L1.800|
000320  5d64255b          DCB      "[%d]"
000324  00000020          DCB      " \0\0\0"
                  |L1.808|
000328  14dc9380          DCD      0x14dc9380
                  |L1.812|
00032c  1a39de00          DCD      0x1a39de00
                  |L1.816|
000330  42c80000          DCD      0x42c80000
                  |L1.820|
000334  746c6f56          DCB      "Volt"
000338  3a656761          DCB      "age:"
00033c  322e3425          DCB      "%4.2"
000340  5d565b66          DCB      "f[V]"
000344  0000000a          DCB      "\n\0\0\0"
                  |L1.840|
000348  00000000          DCD      Hclk
                  |L1.844|
00034c  33333333          DCFD     0x401f333333333333 ; 7.8
000350  401f3333  
                  |L1.852|
000354  00000000          DCFD     0x412e848000000000 ; 1000000.0
000358  412e8480  
                  |L1.860|
00035c  4c504d0a          DCB      "\nMPL"
000360  6863204c          DCB      "L ch"
000364  65676e61          DCB      "ange"
000368  73657420          DCB      " tes"
00036c  4b4f2074          DCB      "t OK"
000370  00000a2e          DCB      ".\n\0\0"
                  |L1.884|
000374  7465520a          DCB      "\nRet"
000378  206e7275          DCB      "urn "
00037c  50206f74          DCB      "to P"
000380  69766572          DCB      "revi"
000384  2073756f          DCB      "ous "
000388  74746573          DCB      "sett"
00038c  2e676e69          DCB      "ing."
000390  0000000a          DCB      "\n\0\0\0"
                          ENDP

                  Calc_Locktime PROC
;;;162    U32 Calc_Locktime(U32 lock_time)
;;;163    {
000394  e92d40f8          STMFD    sp!,{r3-r7,lr}
000398  e1a05000          MOV      r5,r0
;;;164    	U32 lock_count=0;
00039c  e3a04000          MOV      r4,#0
;;;165    
;;;166    	lock_count = (U32)((float)lock_time/((float)TIME_OF_XTAL));
0003a0  e1a00005          MOV      r0,r5
0003a4  ebfffffe          BL       _ffltu
0003a8  e1a07000          MOV      r7,r0
0003ac  e59f1108          LDR      r1,|L1.1212|
0003b0  ebfffffe          BL       _fdiv
0003b4  e1a06000          MOV      r6,r0
0003b8  ebfffffe          BL       _ffixu
0003bc  e1a04000          MOV      r4,r0
;;;167    
;;;168    	return lock_count;
0003c0  e1a00004          MOV      r0,r4
;;;169    }
0003c4  e8bd80f8          LDMFD    sp!,{r3-r7,pc}
                          ENDP

                  Test_Locktime PROC
;;;171    void Test_Locktime(void)
;;;172    {
0003c8  e92d40f8          STMFD    sp!,{r3-r7,lr}
;;;173    	int temp;
;;;174    	int i,j, mdiv, pdiv, sdiv, sval, fclk, hdiv_val, pdiv_val;
;;;175    	U32 lock_time=300, lock_count=12048;	//Unit is us.
0003cc  e3a07f4b          MOV      r7,#0x12c
0003d0  e59f50e8          LDR      r5,|L1.1216|
;;;176    	U32 mpllcon_bk;
;;;177    
;;;178    	// clock register backup.
;;;179    	mpllcon_bk = rMPLLCON;
0003d4  e3a0044c          MOV      r0,#0x4c000000
0003d8  e5900004          LDR      r0,[r0,#4]
0003dc  e1a06000          MOV      r6,r0
;;;180    
;;;181    	Uart_Printf("[PLL Lock time test 100,000 times]\n");
0003e0  e28f00dc          ADR      r0,|L1.1220|
0003e4  ebfffffe          BL       Uart_Printf
;;;182    	Uart_Printf("Lock time range: 300us - %d [us]\n", (U32)(0xffff*TIME_OF_XTAL));
0003e8  e59f10f8          LDR      r1,|L1.1256|
0003ec  e28f00f8          ADR      r0,|L1.1260|
0003f0  ebfffffe          BL       Uart_Printf
;;;183    	Uart_Printf("Input Lock time[us]: ");
0003f4  e28f0f45          ADR      r0,|L1.1296|
0003f8  ebfffffe          BL       Uart_Printf
;;;184    	lock_time = Uart_GetIntNum();
0003fc  ebfffffe          BL       Uart_GetIntNum
000400  e1a07000          MOV      r7,r0
;;;185    
;;;186    	lock_count = Calc_Locktime(lock_time);	// lock_time [us]
000404  e1a00007          MOV      r0,r7
000408  ebfffffe          BL       Calc_Locktime
00040c  e1a05000          MOV      r5,r0
;;;187    	rLOCKTIME=((U32)(lock_count)<<16)|((U32)(lock_count)<<0); 
000410  e1850805          ORR      r0,r5,r5,LSL #16
000414  e3a0144c          MOV      r1,#0x4c000000
000418  e5810000          STR      r0,[r1,#0]
;;;188    	Uart_Printf("Locktime register value is %d(%xh).\n", rLOCKTIME&0xffff, rLOCKTIME&0xffff);
00041c  e3a0044c          MOV      r0,#0x4c000000
000420  e5900000          LDR      r0,[r0,#0]
000424  e1a02800          MOV      r2,r0,LSL #16
000428  e1a02822          MOV      r2,r2,LSR #16
00042c  e3a0044c          MOV      r0,#0x4c000000
000430  e5900000          LDR      r0,[r0,#0]
000434  e1a01800          MOV      r1,r0,LSL #16
000438  e1a01821          MOV      r1,r1,LSR #16
00043c  e28f00e4          ADR      r0,|L1.1320|
000440  ebfffffe          BL       Uart_Printf
;;;189    	
;;;190    	Uart_Printf("Clock will be locked after LED7 is ON.\n");
000444  e28f0f41          ADR      r0,|L1.1360|
000448  ebfffffe          BL       Uart_Printf
;;;191    
;;;192    	i=0;
00044c  e3a04000          MOV      r4,#0
;;;193    	//ChangeClockDivider(12,12);		// 1:2:4	
;;;194    	while(1) 
000450  e1a00000          NOP      
                  |L1.1108|
000454  e1a00000          NOP      
;;;195    	{
;;;196    		if(Uart_GetKey()!=0x0) 
000458  ebfffffe          BL       Uart_GetKey
00045c  e3500000          CMP      r0,#0
000460  0a000000          BEQ      |L1.1128|
;;;197    			break;
000464  ea000010          B        |L1.1196|
;;;198    		if(i>100000) 
                  |L1.1128|
000468  e254cb60          SUBS     r12,r4,#0x18000
00046c  a25cce6a          SUBGES   r12,r12,#0x6a0
000470  da000000          BLE      |L1.1144|
;;;199    			break;
000474  ea00000c          B        |L1.1196|
;;;200    		if(i%2) 
                  |L1.1144|
000478  e3140001          TST      r4,#1
00047c  0a000004          BEQ      |L1.1172|
;;;201    		{
;;;202    			Led_Display(0x8);
000480  e3a00008          MOV      r0,#8
000484  ebfffffe          BL       Led_Display
;;;203    			rMPLLCON = mpllcon_bk;
000488  e3a0044c          MOV      r0,#0x4c000000
00048c  e5806004          STR      r6,[r0,#4]
000490  ea000003          B        |L1.1188|
;;;204    		} 
;;;205    		else 
;;;206    		{		
;;;207    			Led_Display(0x0);
                  |L1.1172|
000494  e3a00000          MOV      r0,#0
000498  ebfffffe          BL       Led_Display
;;;208    			rMPLLCON = mpllcon_bk;
00049c  e3a0044c          MOV      r0,#0x4c000000
0004a0  e5806004          STR      r6,[r0,#4]
;;;209    		}
;;;210    		//Delay(1000);
;;;211    		i++;
                  |L1.1188|
0004a4  e2844001          ADD      r4,r4,#1
;;;212    	}	
0004a8  eaffffe9          B        |L1.1108|
;;;213    	Uart_Printf("[PLL Lock time test %d times end]\n",i-1);
                  |L1.1196|
0004ac  e2441001          SUB      r1,r4,#1
0004b0  e28f00c0          ADR      r0,|L1.1400|
0004b4  ebfffffe          BL       Uart_Printf
;;;214    }
0004b8  e8bd80f8          LDMFD    sp!,{r3-r7,pc}
                  |L1.1212|
0004bc  3d71dfe1          DCD      0x3d71dfe1
                  |L1.1216|
0004c0  00002f10          DCD      0x00002f10
                  |L1.1220|
0004c4  4c4c505b          DCB      "[PLL"
0004c8  636f4c20          DCB      " Loc"
0004cc  6974206b          DCB      "k ti"
0004d0  7420656d          DCB      "me t"
0004d4  20747365          DCB      "est "
0004d8  2c303031          DCB      "100,"
0004dc  20303030          DCB      "000 "
0004e0  656d6974          DCB      "time"
0004e4  000a5d73          DCB      "s]\n\0"
                  |L1.1256|
0004e8  00000f1d          DCD      0x00000f1d
                  |L1.1260|
0004ec  6b636f4c          DCB      "Lock"
0004f0  6d697420          DCB      " tim"
0004f4  61722065          DCB      "e ra"
0004f8  3a65676e          DCB      "nge:"
0004fc  30303320          DCB      " 300"
000500  2d207375          DCB      "us -"
000504  20642520          DCB      " %d "
000508  5d73755b          DCB      "[us]"
00050c  0000000a          DCB      "\n\0\0\0"
                  |L1.1296|
000510  75706e49          DCB      "Inpu"
000514  6f4c2074          DCB      "t Lo"
000518  74206b63          DCB      "ck t"
00051c  5b656d69          DCB      "ime["
000520  3a5d7375          DCB      "us]:"
000524  00000020          DCB      " \0\0\0"
                  |L1.1320|
000528  6b636f4c          DCB      "Lock"
00052c  656d6974          DCB      "time"
000530  67657220          DCB      " reg"
000534  65747369          DCB      "iste"
000538  61762072          DCB      "r va"
00053c  2065756c          DCB      "lue "
000540  25207369          DCB      "is %"
000544  78252864          DCB      "d(%x"
000548  0a2e2968          DCB      "h).\n"
00054c  00000000          DCB      "\0\0\0\0"
                  |L1.1360|
000550  636f6c43          DCB      "Cloc"
000554  6977206b          DCB      "k wi"
000558  62206c6c          DCB      "ll b"
00055c  6f6c2065          DCB      "e lo"
000560  64656b63          DCB      "cked"
000564  74666120          DCB      " aft"
000568  4c207265          DCB      "er L"
00056c  20374445          DCB      "ED7 "
000570  4f207369          DCB      "is O"
000574  000a2e4e          DCB      "N.\n\0"
                  |L1.1400|
000578  4c4c505b          DCB      "[PLL"
00057c  636f4c20          DCB      " Loc"
000580  6974206b          DCB      "k ti"
000584  7420656d          DCB      "me t"
000588  20747365          DCB      "est "
00058c  74206425          DCB      "%d t"
000590  73656d69          DCB      "imes"
000594  646e6520          DCB      " end"
000598  00000a5d          DCB      "]\n\0\0"
                          ENDP

⌨️ 快捷键说明

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