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

📄 pll.txt

📁 s3c24a0固件测试代码 ? ? ? ? ?啊 
💻 TXT
📖 第 1 页 / 共 3 页
字号:
; generated by ARM C Compiler, ADS1.2 [Build 842]

; 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  e24ddf4f          SUB      sp,sp,#0x13c
;;;20         int i,j,k;    
;;;21         unsigned int saveCLKDIVN,saveMPLLCON;
;;;22         U32 mps[][6]={
000008  e3a02f4e          MOV      r2,#0x138
00000c  e59f120c          LDR      r1,|L1.544|
000010  e1a0000d          MOV      r0,sp
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     */        
;;;31         // 1:1:2                 
;;;32     /*    
;;;33     	84000000, 76,4,1,0,1,
;;;34     	90000000, 82,4,1,0,1,
;;;35     	96000000, 56,2,1,0,1,
;;;36     	101000000, 93,4,1,0,1,
;;;37     	113000000,105,4,1,0,1,
;;;38     	118000000, 51,1,1,0,1,
;;;39     	124000000, 54,1,1,0,1,
;;;40     	135000000, 82,2,1,0,1,
;;;41     */	//147000000, 41,2,0,0,1,
;;;42     	//152000000, 68,4,0,0,1,
;;;43     	//158000000, 71,4,0,0,1,
;;;44         // 1:2:2                 
;;;45        	//84000000, 76,4,1,1,0,
;;;46        	//90000000, 82,4,1,1,0,
;;;47     	//96000000, 56,2,1,1,0,
;;;48     	//101000000, 93,4,1,1,0,
;;;49     	//113000000,105,4,1,1,0,
;;;50     	//118000000, 51,1,1,1,0,
;;;51     	//124000000, 54,1,1,1,0,
;;;52     	//135000000, 82,2,1,1,0,
;;;53     	//147000000, 41,2,0,1,0,
;;;54     	//152000000, 68,4,0,1,0,
;;;55     	//158000000, 71,4,0,1,0,
;;;56     	
;;;57         // 1:2:4
;;;58     
;;;59     	152000000, 30,1,0,1,0,
;;;60     	156000000, 31,1,0,1,0,
;;;61     	160000000, 32,1,0,1,1,
;;;62     	164000000, 33,1,0,1,1,
;;;63     	168000000, 34,1,0,1,0,
;;;64     	172000000, 35,1,0,1,0,
;;;65     	176000000, 36,1,0,1,0,
;;;66     	180000000, 37,1,0,1,0,
;;;67     	184000000, 38,1,0,1,0,
;;;68     	188000000, 39,1,0,1,0,
;;;69     	192000000, 40,1,0,1,0,
;;;70     	196000000, 41,1,0,1,0,
;;;71     	200000000, 42,1,0,1,0,
;;;72     /*	
;;;73     	204000000, 43,1,0,1,0,
;;;74     	208000000, 44,1,0,1,0,
;;;75     	212000000, 45,1,0,1,0,
;;;76     	216000000, 46,1,0,1,0,
;;;77     	220000000, 47,1,0,1,0,
;;;78     	224000000, 48,1,0,1,0,
;;;79     	228000000, 49,1,0,1,0,
;;;80     	232000000, 50,1,0,1,0,
;;;81     	236000000, 51,1,0,1,0,
;;;82     	240000000, 52,1,0,1,0,
;;;83     	244000000, 53,1,0,1,0,
;;;84     	248000000, 54,1,0,1,0,
;;;85     	252000000, 55,1,0,1,0,
;;;86     	256000000, 56,1,0,1,0,
;;;87     	260000000, 57,1,0,1,0,
;;;88     	264000000, 58,1,0,1,0,	
;;;89     	268000000, 59,1,0,1,0,		
;;;90     */	
;;;91     /*    
;;;92     	170000000, 77,4,0,1,1,
;;;93     	180000000, 82,4,0,1,1,
;;;94     	186000000, 85,4,0,1,1,
;;;95     	192000000, 56,2,0,1,1,
;;;96     	202000000, 93,4,0,1,1,
;;;97     	214000000, 99,4,0,1,1,
;;;98     	220000000, 47,1,0,1,1,
;;;99     	226000000,105,4,0,1,1,
;;;100    	237000000, 71,2,0,1,1,
;;;101    */    
;;;102        };
;;;103    
;;;104        saveCLKDIVN=rCLKDIVN;
000018  e3a00440          MOV      r0,#0x40000000
00001c  e5900028          LDR      r0,[r0,#0x28]
000020  e58d0138          STR      r0,[sp,#0x138]
;;;105        saveMPLLCON=rMPLLCON;
000024  e3a00440          MOV      r0,#0x40000000
000028  e5900010          LDR      r0,[r0,#0x10]
00002c  e1a07000          MOV      r7,r0
;;;106        
;;;107        LcdEnvidOnOff(0);
000030  e3a00000          MOV      r0,#0
000034  ebfffffe          BL       LcdEnvidOnOff
;;;108        Uart_Printf("[PLL frequency change test]\n");
000038  e28f0f79          ADR      r0,|L1.548|
00003c  ebfffffe          BL       _printf
;;;109        Uart_TxEmpty(0);
000040  e3a00000          MOV      r0,#0
000044  ebfffffe          BL       Uart_TxEmpty
;;;110        //rLOCKTIME=(3602<<16)|(0xfff<<0); // 3602 is about 300us at 12Mhz
;;;111        rLOCKTIME=0; // 3602 is about 300us at 12Mhz
000048  e3a00000          MOV      r0,#0
00004c  e3a01440          MOV      r1,#0x40000000
000050  e5810000          STR      r0,[r1,#0]
;;;112        rCLKCON &= ~(1<<1);
000054  e3a00440          MOV      r0,#0x40000000
000058  e5900020          LDR      r0,[r0,#0x20]
00005c  e3c00002          BIC      r0,r0,#2
000060  e3a01440          MOV      r1,#0x40000000
000064  e5810020          STR      r0,[r1,#0x20]
;;;113        Uart_Printf("LOCKTIME:0x%x, CLKCON:0x%x\n", rLOCKTIME, rCLKCON);
000068  e3a00440          MOV      r0,#0x40000000
00006c  e5900020          LDR      r0,[r0,#0x20]
000070  e1a02000          MOV      r2,r0
000074  e3a00440          MOV      r0,#0x40000000
000078  e5900000          LDR      r0,[r0,#0]
00007c  e1a01000          MOV      r1,r0
000080  e28f0f6f          ADR      r0,|L1.580|
000084  ebfffffe          BL       _printf
;;;114        srand(0); //Set a random starting point
000088  e3a00000          MOV      r0,#0
00008c  ebfffffe          BL       srand
;;;115    
;;;116    //    for(j=0;j<100000;j++)
;;;117         j=k=0;
000090  e3a00000          MOV      r0,#0
000094  e1a06000          MOV      r6,r0
000098  e1a05000          MOV      r5,r0
;;;118         while(!Uart_GetKey())
00009c  e1a00000          NOP      
                  |L1.160|
0000a0  ebfffffe          BL       Uart_GetKey
0000a4  e3500000          CMP      r0,#0
0000a8  1a000050          BNE      |L1.496|
;;;119        {
;;;120        	i=rand()/(float)RAND_MAX*(sizeof(mps)/24);
0000ac  ebfffffe          BL       rand
0000b0  e1a0b000          MOV      r11,r0
0000b4  ebfffffe          BL       _fflt
0000b8  e1a0a000          MOV      r10,r0
0000bc  e3a015c0          MOV      r1,#0x30000000
0000c0  ebfffffe          BL       _fmul
0000c4  e1a09000          MOV      r9,r0
0000c8  e59f1190          LDR      r1,|L1.608|
0000cc  ebfffffe          BL       _fmul
0000d0  e1a08000          MOV      r8,r0
0000d4  ebfffffe          BL       _ffix
0000d8  e1a04000          MOV      r4,r0
;;;121        	//Uart_Printf("\nFCLK=%d",mps[i][0]);
;;;122    	Uart_TxEmpty(0);    	
0000dc  e3a00000          MOV      r0,#0
0000e0  ebfffffe          BL       Uart_TxEmpty
;;;123    	if((mps[i][4]==0)&&(mps[i][5]==0))
0000e4  e0840084          ADD      r0,r4,r4,LSL #1
0000e8  e08d0180          ADD      r0,sp,r0,LSL #3
0000ec  e5900010          LDR      r0,[r0,#0x10]
0000f0  e3500000          CMP      r0,#0
0000f4  1a000012          BNE      |L1.324|
0000f8  e0840084          ADD      r0,r4,r4,LSL #1
0000fc  e08d0180          ADD      r0,sp,r0,LSL #3
000100  e5900014          LDR      r0,[r0,#0x14]
000104  e3500000          CMP      r0,#0
000108  1a00000d          BNE      |L1.324|
;;;124    	{
;;;125    	    ChangeMPllValue(mps[i][1],mps[i][2],mps[i][3]);	//Set MPS first
00010c  e0843084          ADD      r3,r4,r4,LSL #1
000110  e08d3183          ADD      r3,sp,r3,LSL #3
000114  e593200c          LDR      r2,[r3,#0xc]
000118  e0843084          ADD      r3,r4,r4,LSL #1
00011c  e08d3183          ADD      r3,sp,r3,LSL #3
000120  e5931008          LDR      r1,[r3,#8]
000124  e0843084          ADD      r3,r4,r4,LSL #1
000128  e08d3183          ADD      r3,sp,r3,LSL #3
00012c  e5930004          LDR      r0,[r3,#4]
000130  ebfffffe          BL       ChangeMPllValue
;;;126    	    ChangeClockDivider(0,0); 	//And then set divider	
000134  e3a01000          MOV      r1,#0
000138  e3a00000          MOV      r0,#0
00013c  ebfffffe          BL       ChangeClockDivider
000140  ea000010          B        |L1.392|
;;;127    	}
;;;128    	else
;;;129    	{
;;;130    	    ChangeClockDivider(mps[i][4],mps[i][5]); 
                  |L1.324|
000144  e0842084          ADD      r2,r4,r4,LSL #1
000148  e08d2182          ADD      r2,sp,r2,LSL #3
00014c  e5921014          LDR      r1,[r2,#0x14]
000150  e0842084          ADD      r2,r4,r4,LSL #1
000154  e08d2182          ADD      r2,sp,r2,LSL #3
000158  e5920010          LDR      r0,[r2,#0x10]
00015c  ebfffffe          BL       ChangeClockDivider
;;;131    	    ChangeMPllValue(mps[i][1],mps[i][2],mps[i][3]);
000160  e0843084          ADD      r3,r4,r4,LSL #1
000164  e08d3183          ADD      r3,sp,r3,LSL #3
000168  e593200c          LDR      r2,[r3,#0xc]
00016c  e0843084          ADD      r3,r4,r4,LSL #1
000170  e08d3183          ADD      r3,sp,r3,LSL #3
000174  e5931008          LDR      r1,[r3,#8]
000178  e0843084          ADD      r3,r4,r4,LSL #1
00017c  e08d3183          ADD      r3,sp,r3,LSL #3
000180  e5930004          LDR      r0,[r3,#4]
000184  ebfffffe          BL       ChangeMPllValue
;;;132    	}
;;;133    	Uart_Init((mps[i][0]/(mps[i][4]+1))/(mps[i][5]+1),115200); //PCLK, Baud Rate
                  |L1.392|
000188  e0842084          ADD      r2,r4,r4,LSL #1
00018c  e79d1182          LDR      r1,[sp,r2,LSL #3]
000190  e0842084          ADD      r2,r4,r4,LSL #1
000194  e08d2182          ADD      r2,sp,r2,LSL #3
000198  e5922010          LDR      r2,[r2,#0x10]
00019c  e2820001          ADD      r0,r2,#1
0001a0  ebfffffe          BL       __rt_udiv
0001a4  e1a09000          MOV      r9,r0
0001a8  e0841084          ADD      r1,r4,r4,LSL #1
0001ac  e08d1181          ADD      r1,sp,r1,LSL #3
0001b0  e5911014          LDR      r1,[r1,#0x14]
0001b4  e2810001          ADD      r0,r1,#1
0001b8  e1a01009          MOV      r1,r9
0001bc  ebfffffe          BL       __rt_udiv
0001c0  e1a08000          MOV      r8,r0
0001c4  e59f1098          LDR      r1,|L1.612|

⌨️ 快捷键说明

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