亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pll.c

?? 2440 cpu test
?? C
字號:
/*****************************************
  NAME: pll.c
  DESC: PLL & Maximum frequency test.
  HISTORY:
  03.21.2002:purnnamu: first release for S3C2410X
  06.02.2003:DonGo: Modified for S3C2440X
  Jan.e.2004:DonGo: Modified for S3C2440A
 *****************************************/
#include <math.h>
#include <stdlib.h>

#include "def.h"
#include "option.h"
#include "2440addr.h"
#include "2440lib.h"
#include "2440slib.h" 
#include "pll.h"
#include "memtest.h"

extern Calc_Clock(int print_msg);
extern U32 Mdiv, Pdiv, Sdiv, Fclk, Hclk, Pclk, Hdivn, Pdivn, Hclk_Ratio, Pclk_Ratio, Ref_Cnt;


void Sram_Test(void);

#if FIN==12000000
volatile U32 Mps_Val[][4]={
	// FCLK,	 M,  P,  S.
	{271500000, 173,  2, 2},
	{304000000,   68,  1, 1},
	{338400000, 133,  3, 1},
	{372000000,   85,  1, 1},
	{406430000, 127,  2, 1},
	{451200000, 180,  3, 1},
	{496000000, 116,  1, 1},
	{532800000, 125,  1, 1},
	{542400000, 218,  3, 1}
};
#else
volatile U32 Mps_Val[][4]={
	// FCLK,	 M,  P,  S.
	{266716800, 118,  2, 2},
	{296352000,   97,  1, 2},
	{331914240,   90,  3, 1},
	{370440000, 167,  6, 1},
	{399651840, 110,  3, 1},
	{431827200,   94,  2, 1},
	/*{470776320, 131,  3, 1},
	{500774400, 199,  5, 1},
	{530611200,   86,  1, 1},
	{541900800, 120,  2, 1}
	*/
};
#endif

int No_Of_Mps_Val=sizeof(Mps_Val)/16;


void Test_PLL(void)
{
	int temp, voltage=120;
	int i,j, mdiv, pdiv, sdiv, sval, fclk, hdiv_val, pdiv_val;
	U32 prev_fclk;
	U32 mpllcon_bk, clkdivn_bk, camdivn_bk;

	// clock register backup.
	mpllcon_bk = rMPLLCON;
	clkdivn_bk = rCLKDIVN;
	camdivn_bk = rCAMDIVN;
	
	Uart_Printf("[PLL frequency change test 100,000 times]\n");
	//Uart_TxEmpty(1);

	rLOCKTIME=((U32)(1807*0.8)<<12)|((U32)(1807*0.8)<<0); 
	//rLOCKTIME=((U32)(12048)<<16)|((U32)(12048)<<0); 
	// 1807 is 150us at 12Mhz

	j=0;
	while(1) 
	{
		if(Uart_GetKey()==ESC_KEY) 
			break;
		if(j>100000) 
			break;	

		i= j%No_Of_Mps_Val;


		fclk = Mps_Val[i][0];
		//Uart_Printf("[%d]FCLK=%d [Mps_Val=%xh,%xh,%xh]\n", j, Mps_Val[i][0],Mps_Val[i][1],Mps_Val[i][2],Mps_Val[i][3]);
		Uart_Printf("[%d] ", j);
		Uart_TxEmpty(1);

		if(Mps_Val[i][0]<=350000000)
		{
			hdiv_val=12; 
			pdiv_val=12;
			voltage=110;
		}
		else if(Mps_Val[i][0]<= 440000000) 
		{
			hdiv_val=13; 
			pdiv_val=12;
			voltage=120;
		}
		else
		{
			hdiv_val=14; 
			pdiv_val=12;
			voltage=135;
		}	
		
		Led_Display(j%2);
		//Uart_Printf("[FCLK:HCLK:PCLK=1:%d:%d=", hdiv_val%10, (hdiv_val%10)*(pdiv_val%10));
		//Uart_Printf("%4.1f:%4.1f:%4.1f MHz]\n", (float)fclk/MEGA, (float)fclk/MEGA/(hdiv_val%10), (float)fclk/MEGA/((hdiv_val%10)*(pdiv_val%10)));
		Uart_Printf("Voltage:%4.2f[V]\n", (float)voltage/100);
		Max1718_Set(voltage);
		Delay(10);

		if(prev_fclk<Mps_Val[i][0]) {
			Led_Display(0x1);		
			ChangeClockDivider(hdiv_val, pdiv_val);
			Led_Display(0x2);
			ChangeMPllValue(Mps_Val[i][1],Mps_Val[i][2],Mps_Val[i][3]);
		} 
		else 
		{
			Led_Display(0x2);
			ChangeMPllValue(Mps_Val[i][1],Mps_Val[i][2],Mps_Val[i][3]);
			Led_Display(0x1);		
			ChangeClockDivider(hdiv_val, pdiv_val);
		}
		
		Calc_Clock(1);
		Led_Display(0x4);
		UPDATE_REFRESH(Hclk);
		Led_Display(0x8);

#if 1
		Mem_Test(1);
#endif

		prev_fclk = Mps_Val[i][0];
		j++;
	}  

	Uart_Printf("\nMPLL change test OK.\n");

	Uart_Printf("\nReturn to Previous setting.\n");
	rMPLLCON = mpllcon_bk;
	rCLKDIVN = clkdivn_bk;
	rCAMDIVN = camdivn_bk;
	Calc_Clock(1);

}



// lock time: user lock time setting time[us],
// lock_count: register setting value for wanted locktime.
#define TIME_OF_XTAL	((float)MEGA/(float)FIN)	//us
U32 Calc_Locktime(U32 lock_time)
{
	U32 lock_count=0;

	lock_count = (U32)((float)lock_time/((float)TIME_OF_XTAL));

	return lock_count;
}

void Test_Locktime(void)
{
	int temp;
	int i,j, mdiv, pdiv, sdiv, sval, fclk, hdiv_val, pdiv_val;
	U32 lock_time=300, lock_count=12048;	//Unit is us.
	U32 mpllcon_bk;

	// clock register backup.
	mpllcon_bk = rMPLLCON;

	Uart_Printf("[PLL Lock time test 100,000 times]\n");
	Uart_Printf("Lock time range: 300us - %d [us]\n", (U32)(0xffff*TIME_OF_XTAL));
	Uart_Printf("Input Lock time[us]: ");
	lock_time = Uart_GetIntNum();

	lock_count = Calc_Locktime(lock_time);	// lock_time [us]
	rLOCKTIME=((U32)(lock_count)<<16)|((U32)(lock_count)<<0); 
	Uart_Printf("Locktime register value is %d(%xh).\n", rLOCKTIME&0xffff, rLOCKTIME&0xffff);
	
	Uart_Printf("Clock will be locked after LED7 is ON.\n");

	i=0;
	//ChangeClockDivider(12,12);		// 1:2:4	
	while(1) 
	{
		if(Uart_GetKey()!=0x0) 
			break;
		if(i>100000) 
			break;
		if(i%2) 
		{
			Led_Display(0x8);
			rMPLLCON = mpllcon_bk;
		} 
		else 
		{		
			Led_Display(0x0);
			rMPLLCON = mpllcon_bk;
		}
		//Delay(1000);
		i++;
	}	
	Uart_Printf("[PLL Lock time test %d times end]\n",i-1);
}


void Manual_Change_Pll(void)
{
	U32 pdiv, mdiv, sdiv, sval, fclk, hdiv_val, pdiv_val, voltage=120;
	int i, fclk_sel;
	float ffclk;

	Uart_Printf("[Running change test of M/P/S value]\n");

	for(i=0; i<sizeof(Mps_Val)/16; i++) {
		if(i%2==0) Uart_Printf("\n");
		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]);
	}
	Uart_Printf("\n");

	#if 1
	Uart_Printf("Select FCLK No(0-%d): ", sizeof(Mps_Val)/16-1);
	fclk_sel=Uart_GetIntNum();
	mdiv = Mps_Val[fclk_sel][1];
	pdiv = Mps_Val[fclk_sel][2];
	sdiv = Mps_Val[fclk_sel][3];
	#else
	Uart_Printf("Input M vlaue : ");
	mdiv=Uart_GetIntNum();		
	Uart_Printf("Input P vlaue : ");
	pdiv=Uart_GetIntNum();	
	Uart_Printf("Input S vlaue : ");
	sdiv=Uart_GetIntNum();
	#endif

	Uart_Printf("Select FCLK : HCLK(1:1=11,1:2=12,1:3=13,1:4=14,...) : ");
	hdiv_val=Uart_GetIntNum();
	Uart_Printf("Select HCLK : PCLK(1:1=11,1:2=12) : ");
	pdiv_val=Uart_GetIntNum();

	sval=(int)pow(2,sdiv);
	ffclk = (U32) ( (((float)mdiv+8)*FIN*2.0)/(((float)pdiv+2)*(float)sval));	// pll2188x.
	Uart_Printf("Now change PLL value...(%dhz)[mps=%xh(%d), %d, %d]\n", (U32)ffclk, mdiv,mdiv, pdiv, sdiv);

	Uart_Printf("Voltage: ");
	voltage = Uart_GetIntNum();
	Max1718_Set(voltage);
	Delay(10);

	ChangeClockDivider(hdiv_val, pdiv_val);
	ChangeMPllValue(mdiv,pdiv,sdiv);

	Calc_Clock(1);
	UPDATE_REFRESH(Hclk);
	Uart_Init(Pclk, 115200);


	#if 1
	//Uart_Getch();
	Uart_Printf("Memory test (y/n)? ");
	if(Uart_Getch()=='y') {
		while(1) {
			Mem_Test(1);
			if(Uart_GetKey()!=0x0) break;
			//Uart_SendByte((int)'.');
		}
	}
	#endif
	
 }

void Manual_Change_Pll_Iostrength(void)
{

	Manual_Change_Pll();
	Test_IO_Strength();

#if 1
	//Uart_Getch();
	while(1) {
		Mem_Test(1);
	if(Uart_GetKey()!=0x0) break;
	}
#endif
}

void Test_PllOnOff(void)
{
	int i,j;
	unsigned int saveREFRESH;

	Uart_Printf("[PLL On/Off test, 10000 times]\n");
	Uart_TxEmpty(1);	//To avoid being crushed the character

	rLOCKTIME=((U32)(1807*0.8)<<12)|((U32)(1807*0.8)<<0); 
		// 1807 is 150us at 12Mhz
	Uart_Printf("count:                    ");

	for(j=0;j<10000;j++) {
		Led_Display(0x2);
		rCLKSLOW=(1<<7)|(1<<5)|(1<<4)|(0<<0); //FCLK=FIN/1,SLOW mode,MPLL=off,UPLL=off
		
		saveREFRESH=rREFRESH;
		rREFRESH=(1<<23)|(U32)(2048+1-12*7.8); //HCLK = 12MHz, Trp=2clk,Trc=4clk
	
		rCLKSLOW=(1<<7)|(0<<5)|(1<<4)|(0<<0);//PLL on,MPLL=on,UPLL=on
		for(i=0;i<2048/4;i++); //S/W MPLL lock-time
		Led_Display(0x0);
		rCLKSLOW=(1<<7)|(0<<5)|(0<<4)|(0<<0);//NORMAL mode,PLL on,MPLL=on,UPLL=on
	
		rREFRESH=saveREFRESH;
		if(j%500==0)
		{		
		Uart_Printf("\b\b\b\b\b\b%6d", j);
		Uart_TxEmpty(1);	//To avoid being crushed the character		
		}
	}
	Uart_Printf("\b\b\b\b\b\b%6d", j);
}




?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日日夜夜精品视频免费| 狠狠色丁香婷婷综合久久片| 五月天久久比比资源色| 久久成人av少妇免费| 成人黄色在线视频| 欧美日韩成人一区| 国产亚洲午夜高清国产拍精品| 日韩亚洲欧美高清| 亚洲日本一区二区三区| 秋霞国产午夜精品免费视频| a美女胸又www黄视频久久| 欧美一级黄色录像| 国产欧美一区二区三区网站| 亚洲国产日产av| 成人污污视频在线观看| 欧美一级艳片视频免费观看| 亚洲二区在线视频| 久久99热狠狠色一区二区| 色丁香久综合在线久综合在线观看| 精品国产青草久久久久福利| 亚洲成av人片在线观看| av在线不卡观看免费观看| 2021中文字幕一区亚洲| 丝袜脚交一区二区| 99国产精品视频免费观看| 久久精品一区蜜桃臀影院| 日韩精品亚洲专区| 日本高清不卡在线观看| 国产精品嫩草影院com| 麻豆91精品视频| 欧美综合一区二区| 国产日韩v精品一区二区| 奇米一区二区三区av| 欧美在线观看视频在线| 亚洲特黄一级片| 成人av午夜影院| 欧美日韩精品系列| 亚洲一区二区四区蜜桃| 99九九99九九九视频精品| 久久九九久久九九| 国产精品羞羞答答xxdd| 久久亚洲春色中文字幕久久久| 欧美aa在线视频| 日韩欧美中文字幕制服| 国内精品免费**视频| 欧美成人精品3d动漫h| 久久国产精品露脸对白| 欧美一级片在线看| 石原莉奈在线亚洲三区| 91精品国产91久久综合桃花 | 亚洲男人的天堂在线aⅴ视频| 丁香激情综合国产| 中文字幕在线播放不卡一区| 成人一区在线看| 日韩理论片中文av| 欧美日韩亚洲综合在线| 免费看欧美女人艹b| 久久综合999| 国产成a人亚洲| 亚洲男人天堂一区| 91精品黄色片免费大全| 国产剧情av麻豆香蕉精品| 国产精品免费久久| av一区二区三区在线| 国产三级精品在线| 99精品久久99久久久久| 亚洲影院在线观看| 日韩免费观看高清完整版 | 成人污污视频在线观看| 亚洲精品一二三四区| 在线视频国产一区| 日韩不卡免费视频| 欧美激情一区二区在线| 日本视频一区二区| 中文字幕av在线一区二区三区| 99vv1com这只有精品| 亚洲一级二级在线| 99国产精品久| 日韩国产精品大片| 中文字幕一区不卡| 色久综合一二码| 亚洲综合丁香婷婷六月香| 制服丝袜在线91| 成人h动漫精品| 青青草精品视频| 一区二区三区在线观看动漫| 日韩色在线观看| 欧美性感一区二区三区| 国产精品亚洲一区二区三区在线| 日韩在线一区二区| 国产精品久久久久影视| 欧美va亚洲va香蕉在线| 一本在线高清不卡dvd| 青青草原综合久久大伊人精品优势| 中文字幕欧美日韩一区| 欧美一区二区三区四区久久| 欧美亚一区二区| 国产999精品久久久久久| 久久99精品国产麻豆婷婷| 国产精品电影一区二区| 欧美国产精品一区| 欧美大片在线观看| 91精品国产91久久综合桃花| 色婷婷综合激情| 91网站在线播放| 大白屁股一区二区视频| 粉嫩av一区二区三区粉嫩| 免费欧美在线视频| 麻豆91免费观看| 日韩av在线发布| 另类小说图片综合网| 亚洲a一区二区| 视频一区国产视频| 亚洲欧洲精品成人久久奇米网| 欧美国产1区2区| 欧美va亚洲va在线观看蝴蝶网| 91精品婷婷国产综合久久性色 | 99久久精品国产毛片| 蜜桃av一区二区在线观看| 日韩激情视频在线观看| 日韩精品欧美成人高清一区二区| 亚洲视频 欧洲视频| 国产日韩欧美麻豆| 欧美videos中文字幕| 欧美一级艳片视频免费观看| 久久先锋影音av鲁色资源网| 欧美一区二区三区啪啪| 亚洲精品一区二区在线观看| 日韩亚洲欧美高清| 国产亚洲污的网站| 国产偷国产偷亚洲高清人白洁| 国产日韩精品一区| 国产精品美女久久福利网站| 一区二区视频在线看| 一区二区三区在线播| 欧美aaaaa成人免费观看视频| 日本aⅴ精品一区二区三区 | 国产精品一卡二卡在线观看| 国产一区啦啦啦在线观看| 国产精品99久久久久久久女警| 国产盗摄精品一区二区三区在线| 免费观看一级欧美片| 国产在线精品视频| 成人免费av在线| 国产成人在线视频网址| 99精品视频在线观看免费| 在线观看亚洲精品| 91麻豆精品国产自产在线观看一区| 亚洲精品一区二区三区99| 亚洲精品国产无套在线观| 亚洲图片欧美一区| 国产精品一区专区| 色婷婷亚洲一区二区三区| 精品国一区二区三区| 国产欧美日韩不卡免费| 日韩制服丝袜先锋影音| 国产精品亚洲综合一区在线观看| 欧美系列亚洲系列| 91精品国产欧美一区二区成人| 中文字幕中文乱码欧美一区二区| 性做久久久久久免费观看欧美| 麻豆91精品视频| 欧美日韩中文字幕一区二区| 精品美女在线播放| 亚洲图片欧美综合| 国精产品一区一区三区mba桃花 | 制服丝袜在线91| 亚洲欧美偷拍三级| 中文一区一区三区高中清不卡| 亚洲成人福利片| 99久久免费精品| 精品国产一区二区三区忘忧草 | 成人福利电影精品一区二区在线观看| 欧美日韩一卡二卡三卡 | proumb性欧美在线观看| 91视频观看视频| 精品久久一二三区| 三级精品在线观看| 北条麻妃一区二区三区| 欧美精品一区二区不卡| 亚洲午夜在线视频| 91麻豆免费看| 国产女人水真多18毛片18精品视频 | 欧美成人艳星乳罩| 夜夜揉揉日日人人青青一国产精品 | 欧美成人女星排行榜| 一区二区三区四区在线播放 | 一区二区三区高清| 成人理论电影网| 日本一区二区免费在线| 日韩**一区毛片| 欧美男男青年gay1069videost| 久久在线观看免费| 精品无人区卡一卡二卡三乱码免费卡| 欧美日韩国产小视频在线观看| 亚洲欧洲精品天堂一级| 99久久久精品| 中文字幕免费不卡| 99久久综合色| 欧美xxxx老人做受|