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

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

?? sysc.c

?? 三星 s3c6400測試代碼
?? C
?? 第 1 頁 / 共 4 頁
字號:

	}
	else			// ASync Mode
	{
		uRegValue_M = (u32)(((u32)(0x1<<31))|(uMVAL_M<<16)|(uPVAL_M<<8)|(uSVAL_M<<0));
		//uRegValue_E = Inp32(rEPLL_CON0);
	}
	
	
	// Divider Change
	uRegValue = Inp32(rCLK_DIV0);
	uRegValue = (uRegValue & ~(0xFE07)) | ((uPCLK_Ratio<<12)|(uHCLKx2_Ratio<<9)|(uARM_Ratio<<0));
	Outp32(rCLK_DIV0, uRegValue);

#if 0	
	// EVT0 W.A 
	Outp32(rMPLL_CON, uRegValue_M);

	if(uTemp == 0)
	{
		Outp32(rEPLL_CON0, uRegValue_E);
	}
	// APLL Set
#endif

	Outp32(rAPLL_CON, uRegValue_A);
	Delay(10);
	Outp32(rMPLL_CON, uRegValue_M);
	Delay(10);

	
	SYSC_GetClkInform();
	UART_InitDebugCh(0, 115200);
	Delay(10);

	printf("============================ \n");
	printf("Current Clock Information \n");
	printf("ARMCLK: %.2fMHz  HCLKx2: %.2fMHz  HCLK: %.2fMHz  PCLK: %.2fMHz\n",(float)g_ARMCLK/1.0e6, (float)g_HCLKx2/1.0e6, (float)g_HCLK/1.0e6, (float)g_PCLK/1.0e6);
	printf("============================ \n");
	

}



//////////
// Function Name : SYSC_ChangeSYSCLK_1
// Function Description : This function control System Clock  
//				  Fout = (mdiv * Fin) / (pdiv x 2^sdiv),   Fout = ((mdiv+k/2^16) * Fin) / (pdiv x 2^sdiv)
// Input : 				eAPLLMPS  : APLL M,P,S Value
//						eMPLLMPS  : MPLL M,P,S Value  ( using at Async Mode )
//						uARM_Ratio : ARM Divider
//						uHCLKx2_Ratio : HCLKx2 Divider
//						uPCLK_Ratio : PCLK Divider
//						Other values are retained
// Output : NONE
// Version : 
void SYSC_ChangeSYSCLK_1(APLL_eOUT  eAPLLMPS, APLL_eOUT eMPLLMPS, u32 uARM_Ratio, u32 uHCLKx2_Ratio, u32 uPCLK_Ratio)
{
	u32 uRegValue_A;
	u32 uRegValue_M;//, uRegValue_E;
	u32 uMVAL, uPVAL, uSVAL;
	u32 uMVAL_M, uPVAL_M, uSVAL_M;
	u32 uSYNCMODE;
	u32 uRegValue_DIV0, uRegValue_SRC, uTemp, uTemp1;
	
	uMVAL = (eAPLLMPS&0x3FF0000)>>16;
	uPVAL = (eAPLLMPS&0xFF00)>>8;
	uSVAL = eAPLLMPS&0x00FF;
	uRegValue_A = (u32)(((u32)(0x1<<31))|(uMVAL<<16)|(uPVAL<<8)|(uSVAL<<0));

	uMVAL_M = (eMPLLMPS&0x3FF0000)>>16;
	uPVAL_M = (eMPLLMPS&0xFF00)>>8;
	uSVAL_M = eMPLLMPS&0x00FF;


	uSYNCMODE = (Inp32(rOTHERS)>>8)&0xF;


	if(uSYNCMODE==0xF )		// Sync Mode
	{
	
		uRegValue_M = Inp32(rMPLL_CON);

	}
	else			// ASync Mode
	{
		uRegValue_M = (u32)(((u32)(0x1<<31))|(uMVAL_M<<16)|(uPVAL_M<<8)|(uSVAL_M<<0));
		//uRegValue_E = Inp32(rEPLL_CON0);
	}


	// Clock Divider Change 1:2:2
	uRegValue_DIV0 = Inp32(rCLK_DIV0);
	uTemp = (uRegValue_DIV0&~(0xFFFF))|(1<<12)|((0<<9)|(1<<8)|(1<<4)|(0<<0));		// ARM:HCLKx2:HCLK:PCLK = 1:1:2:2

	// Set-up Divider Value
	uRegValue_DIV0 = (uRegValue_DIV0 & ~(0xFE07)) | ((uPCLK_Ratio<<12)|(uHCLKx2_Ratio<<9)|(uARM_Ratio<<0));

	uRegValue_SRC = Inp32(rCLK_SRC);
	uTemp1 = (uRegValue_SRC&~(0x7))|0x0;

	Outp32(rCLK_SRC, uTemp1);	// Clock Source Change
	Outp32(rCLK_DIV0, uTemp);	// Change Clock Divider
	
	
	// PLL Change
	if(uSYNCMODE == 0)
	{
		Outp32(rMPLL_CON, uRegValue_M);
	}

	Outp32(rAPLL_CON, uRegValue_A);

	while(((Inp32(rAPLL_CON)>>30)&0x1)==0);


	// Change Divider Value
	Outp32(rCLK_DIV0, uRegValue_DIV0);
	// Change Clock SRC
	Outp32(rCLK_SRC, uRegValue_SRC);

	
	SYSC_GetClkInform();
	UART_InitDebugCh(0, 115200);
	Delay(10);

	printf("============================ \n");
	printf("Current Clock Information \n");
	printf("ARMCLK: %.2fMHz  HCLKx2: %.2fMHz  HCLK: %.2fMHz  PCLK: %.2fMHz\n",(float)g_ARMCLK/1.0e6, (float)g_HCLKx2/1.0e6, (float)g_HCLK/1.0e6, (float)g_PCLK/1.0e6);
	printf("============================ \n");
	

}



#define uTIME_OF_XTAL	(1.0e6/(float)FIN)	

//////////
// Function Name : SYSC_SetLockTime
// Function Description : This function control APLL Lock Time (PLL9025X), Max 100us
//				  Fout = (mdiv * Fin) / (pdiv x 2^sdiv)
// Input : 				uLockTime : Max 100us, us order
//						ePLL		  : PLL Type
// Output : NONE
// Version : 
void SYSC_SetLockTime( PLL_eTYPE  ePLL, u32 uLockTime)
{
	u32 uLockCount;
	
	uLockCount = (unsigned int)((float)uLockTime/((float)uTIME_OF_XTAL));
	printf("uLockCount : 0x%x\n", uLockCount);

	switch(ePLL)
	{
		case eAPLL: 
			Outp32(rAPLL_LOCK, uLockCount);  break;
		case eMPLL: 
			Outp32(rMPLL_LOCK, uLockCount); break;
		case eEPLL: 
			Outp32(rEPLL_LOCK, uLockCount); break;
					
	}

}


//////////
// Function Name : SYSC_ClkSrc
// Function Description : This function select Clock Source
//				 
// Input : 		  CLKSRC_eId
// Output : NONE
// Version : 
void SYSC_ClkSrc( CLKSRC_eId  eClkSrc)
{
	u32 uCtrl, uOffset, uFuct;
	u32 uRegValue;

	uCtrl = (eClkSrc&0xF000)>>12;
	uOffset = (eClkSrc&0x0FF0)>>4;
	uFuct = eClkSrc&0x000F;

	uRegValue = Inp32(rCLK_SRC);

	uRegValue = (uRegValue & ~(uCtrl<<(uOffset))) | (uFuct<<(uOffset));
	Outp32(rCLK_SRC, uRegValue);

}

//////////
// Function Name : SYSC_SetDIV0
// Function Description : This function set Clock divider0 register ratio
//				 
// Input : 		  	uAratio 	: DIV_APLL ( 0 ~ 15) 
//					uMratio 	: DIV_MPLL ( 0~1)
//					uHratio 	: DIV_HCLK (0~1),  HCLKx2
//					uHx2ratio: DIV_HCLKx2(0~7), (APLL or MPLL)
//					uPratio	: DIV_PCLK (0~15),  HCLKx2
//					uONDratio: DIV_ONDCLK(0~3), HCLKx2
//					uSECUratio:DIV_Security(0~3), HCLKx2
//					uCAMratio: DIV_CAM(0~15), HCLKx2
//					uJPEGratio: DIV_JPEG(0~15), HCLKx2
//					uMFCratio: DIV_MFC(0~15), HCLKx2
// Output : NONE
// Version : 
void SYSC_SetDIV0( u32 uAratio, u32 uMratio, u32 uHratio, u32 uHx2ratio, u32 uPratio, 
	u32 uONDratio, u32 uSECUratio, u32 uCAMratio, u32 uJPEGratio, u32 uMFCratio )
{
	u32 uRegValue;

	uRegValue =
		( (uMFCratio<<28)|		// HCLKx2/(uMFCratio + 1)
		(uJPEGratio<<24) |		// HCLKx2/(uJPEGratio + 1)
		(uCAMratio<<20) |		// HCLKx2/(uCAMratio + 1)
		(uSECUratio<<18)|		// HCLKx2/(uSECUratio + 1)
		(uONDratio<<16) |		// HCLKx2/(uONDratio +1 )
		(uPratio<<12) |			// HCLKx2/(uPratio+1)
		(uHx2ratio<<9) |
		(uHratio<<8)|			// HCLKx2(uHratio+1)
		(uMratio<<4)|
		(uAratio<<0)) ;


	Outp32(rCLK_DIV0, uRegValue);

}

//////////
// Function Name : SYSC_SetDIV0_all
// Function Description : This function set Clock divider0 register ratio
// Input : 	None
// Version : 
// add by rb1004
void SYSC_SetDIV0_all(u32 uSetRatio)
{
	Outp32(rCLK_DIV0, uSetRatio);
}

//////////
// Function Name : SYSC_GetDIV0
// Function Description : This function get Clock divider0 register ratio
// Input : 	None
// Version : 
// add by rb1004
u32 SYSC_GetDIV0( void)
{
	return  Inp32(rCLK_DIV0);
}





//////////
// Function Name : SYSC_SetDIV1
// Function Description : This function set Clock divider1 register ratio
//				 
// Input : 		  	uMMC0ratio 	: (0~15)
//					uMMC1ratio	: (0~15)
//					uMMC2ratio	: (0~15)
//					uLCDratio	: (0~15)
//					uSCALERratio : (0~15)
//					uHOSTratio	: (0~15)
// Output : NONE
// Version : 
void SYSC_SetDIV1( u32 uMMC0ratio, u32 uMMC1ratio, u32 uMMC2ratio, u32 uLCDratio, u32 uSCALERratio, u32 uHOSTratio) 
{
	u32 uRegValue;

	uRegValue =
		((uHOSTratio<<20) |		
		(uSCALERratio<<16) |			
		(uLCDratio<<12) |
		(uMMC2ratio<<8)|			
		(uMMC1ratio<<4)|
		(uMMC0ratio<<0)) ;

	Outp32(rCLK_DIV1, uRegValue);

}

//////////
// Function Name : SYSC_SetDIV2
// Function Description : This function set Clock divider2 register ratio
//				 
// Input : 		  	uSPI0ratio 	: (0~15)
//					uSPI1ratio	: (0~15)
//					uAUDIO0ratio	: (0~15)
//					uAUDIO1ratio	: (0~15)
//					uUARTratio : (0~15)
//					uIRDAratio	: (0~15)
// Output : NONE
// Version : 
void SYSC_SetDIV2( u32 uSPI0ratio	, u32 uSPI1ratio, u32 uAUDIO0ratio, u32 uAUDIO1ratio, u32 uUARTratio, u32 uIRDAratio) 
{
	u32 uRegValue;

	uRegValue =
		((uIRDAratio<<20) |		
		(uUARTratio<<16) |			
		(uAUDIO1ratio<<12) |
		(uAUDIO0ratio<<8)|			
		(uSPI1ratio<<4)|
		(uSPI0ratio<<0)) ;

	Outp32(rCLK_DIV2, uRegValue);

}


//////////
// Function Name : SYSC_CtrlHCLKGate
// Function Description : This function control HCLK_GATE Register
//				 
// Input : 		  	H_eGATE
//					uCtrl      :  Enable_CLK : (1), 
//							  Disable_CLK : (0)
// Output : NONE
// Version : 
void SYSC_CtrlHCLKGate( H_eGATE eHCLKGATE	, u32 uCtrl)
{
	u32 uRegValue, uTemp;

	uTemp = eHCLKGATE;

	
	uRegValue =Inp32(rHCLK_GATE);
	uRegValue = (uRegValue & ~(0x1<<(uTemp))) | (uCtrl<<(uTemp));
	Outp32(rHCLK_GATE, uRegValue);

}

//////////
// Function Name : SYSC_CtrlPCLKGate
// Function Description : This function control PCLK_GATE Register
//				 
// Input : 		  	P_eGATE
//					uCtrl      :  Enable_CLK : (1), 
//							  Disable_CLK : (0)
// Output : NONE
// Version : 
void SYSC_CtrlPCLKGate( P_eGATE ePCLKGATE	, u32 uCtrl)
{
	u32 uRegValue, uTemp;

	uTemp = ePCLKGATE;

	
	uRegValue =Inp32(rPCLK_GATE);
	uRegValue = (uRegValue & ~(0x1<<(uTemp))) | (uCtrl<<(uTemp));
	Outp32(rPCLK_GATE, uRegValue);

}

//////////
// Function Name : SYSC_CtrlSCLKGate
// Function Description : This function control SCLK_GATE Register
//				 
// Input : 		  	S_eGATE
//					uCtrl      :  Enable_CLK : (1), 
//							  Disable_CLK : (0)
// Output : NONE
// Version : 
void SYSC_CtrlSCLKGate( S_eGATE eSCLKGATE	, u32 uCtrl)
{
	u32 uRegValue, uTemp;

	uTemp = eSCLKGATE;

	
	uRegValue =Inp32(rSCLK_GATE);
	uRegValue = (uRegValue & ~(0x1<<(uTemp))) | (uCtrl<<(uTemp));
	Outp32(rSCLK_GATE, uRegValue);

}



//////////
// Function Name : SYSC_CtrlCLKOUT
// Function Description : This function select CLK output 
//				 
// Input : 		  	CLKOUT_eTYPE :  FOUT_APLL, FOUT_EPLL, HCLK, CLK27M, CLK48M, RTC, Tick, DOUT
//					uDivVAL     :  (0~15)
//							  
// Output : NONE
// Version : 
void SYSC_CtrlCLKOUT( CLKOUT_eTYPE eCLKOUT_TYPE, u32 uDivVAL)
{
	u32 uRegValue;
    u32 uFunct;

        
    GPIO_SetFunctionEach(eGPIO_F, eGPIO_14, 3);	// Select GPIO_SELECT
    GPIO_SetPullUpDownEach(eGPIO_F, eGPIO_14, 0);
       	
    uFunct = eCLKOUT_TYPE;
	uRegValue =Inp32(rCLK_OUT);
	uRegValue = (uRegValue & ~(0xFF<<12)) | ((uFunct<<12)|(uDivVAL<<16));
	Outp32(rCLK_OUT, uRegValue);

}


//////////
// Function Name : SYSC_CtrlDCLK
// Function Description : This function control  DCLK output 
//				 
// Input : 		  	uDCLKCMP :(0~15) DCLK compare value, clock toggle value, 
//					uDCLKDIV : (0~15) DCLK divid value,  F_DCLK= Src_CLK/(uDCLKDIV+1)
//					uDCLKSEL :  "0" PCLK,  "1" 48MHz
//					uDCLKEN   : Enable_CLK : (1), 
//							    Disable_CLK : (0)
// Output : NONE
// Version : 
void SYSC_CtrlDCLK( u32 uDCLKCMP, u32 uDCLKDIV, u32 uDCLKSEL, u32 uDCLKEN)
{
	u32 uRegValue;
		
	uRegValue =Inp32(rCLK_OUT);
	uRegValue = (uRegValue & ~(0xFFF<<0)) | ((uDCLKCMP<<8)|(uDCLKDIV<<4)|(uDCLKSEL<<1)|(uDCLKEN<<0));
	Outp32(rCLK_OUT, uRegValue);

}

	// Value & 0xF00 : The BUS Control Register ID, OffSet
	// Value & 0x0F0 : The BUS Priority Type ID
	// Value & 0x00F : The Fixed Priority Order


//////////
// Function Name : SYSC_CtrlBUSPrio
// Function Description : This function control AHB Bus Priority
//				 
// Input : 		  BUSCTRL_eId
// Output : NONE
// Version : 
void SYSC_CtrlBUSPrio( BUSCTRL_eId  eBusId)
{
	u32 uOffset, uPType, uForder, uOffset1;
	u32 uRegValue;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女看a上一区| 国产麻豆欧美日韩一区| 免费欧美在线视频| 理论电影国产精品| 国产一区二区在线观看免费 | 亚洲激情网站免费观看| 午夜精品一区二区三区三上悠亚| 亚洲va欧美va天堂v国产综合| 亚洲永久免费视频| 美女网站在线免费欧美精品| 激情小说亚洲一区| 图片区日韩欧美亚洲| 日韩高清不卡在线| 国产成人在线观看| 欧美日韩国产在线观看| 亚洲精品在线一区二区| 一区二区三区产品免费精品久久75| 首页国产丝袜综合| heyzo一本久久综合| 一本一道久久a久久精品综合蜜臀| 色综合久久88色综合天天6| 欧美成人bangbros| 亚洲精品自拍动漫在线| 久久成人麻豆午夜电影| 99久久综合色| 国产亚洲精品福利| 日韩一区精品视频| 精品一区二区三区av| 99精品久久久久久| 久久久久久97三级| 国产一区福利在线| 精品国产乱码91久久久久久网站| 亚洲免费观看高清完整版在线观看熊 | 99久久精品国产一区| 久久精品视频一区二区三区| 国产一区二区日韩精品| 欧美精品久久天天躁| 亚洲乱码一区二区三区在线观看| 国产电影一区在线| 在线观看亚洲精品| 亚洲精品在线电影| 毛片不卡一区二区| 日韩视频123| 日本中文在线一区| 精品国产一区a| 久88久久88久久久| 欧美人妇做爰xxxⅹ性高电影| 亚洲国产成人porn| 欧美人妇做爰xxxⅹ性高电影| 美女尤物国产一区| 精品日韩一区二区三区免费视频| 午夜影院久久久| 精品免费日韩av| 国产精品一区在线| 亚洲国产wwwccc36天堂| 欧美日韩你懂的| 国产自产v一区二区三区c| 久久久精品tv| 91色porny蝌蚪| 国内成+人亚洲+欧美+综合在线| 中文字幕第一区二区| 91碰在线视频| 久久er精品视频| 国产精品卡一卡二| 777xxx欧美| 国产成人精品在线看| 日韩综合在线视频| 中文字幕av资源一区| 欧美视频在线观看一区| 国产成人精品免费网站| 日本色综合中文字幕| 亚洲人成影院在线观看| 久久久综合精品| 欧美性视频一区二区三区| 久久国产精品第一页| 日韩伦理电影网| 久久久久99精品国产片| 欧美久久久久久久久| 色综合久久六月婷婷中文字幕| 国产激情精品久久久第一区二区| 一区二区三区在线视频免费观看| 日韩一二三区不卡| 日韩欧美国产一区在线观看| 91久久精品一区二区| av动漫一区二区| 豆国产96在线|亚洲| 国内久久精品视频| 极品少妇xxxx精品少妇偷拍| 亚洲成av人片| 日韩国产欧美三级| 蜜臀久久久久久久| 日韩av午夜在线观看| 日本不卡不码高清免费观看| 日本特黄久久久高潮| 国产一区二区导航在线播放| 精品一区二区三区蜜桃| 国产91对白在线观看九色| 91美女蜜桃在线| 欧美日韩日日夜夜| 欧美人伦禁忌dvd放荡欲情| 91日韩精品一区| 91精品在线观看入口| 国产精品视频你懂的| 国产精品久久久久婷婷二区次| 国产精品福利一区| 亚洲国产精品一区二区www在线| 久久se这里有精品| 91麻豆6部合集magnet| 欧美中文字幕一区二区三区 | 精品噜噜噜噜久久久久久久久试看| 欧美天堂亚洲电影院在线播放| 国产精品一区二区三区网站| 精品午夜久久福利影院 | 在线观看欧美黄色| 91传媒视频在线播放| 9191国产精品| 国产女人水真多18毛片18精品视频 | 一区二区久久久久| 一区二区三区四区不卡在线 | 亚洲成人三级小说| 国产激情一区二区三区桃花岛亚洲| 国产成人综合网| 91福利社在线观看| 精品国产不卡一区二区三区| 国产欧美一区二区三区鸳鸯浴| 亚洲美女屁股眼交3| 日本网站在线观看一区二区三区 | 亚洲午夜在线观看视频在线| 午夜久久久久久久久久一区二区| 一本大道av伊人久久综合| 国产成人亚洲综合a∨猫咪| 亚洲另类春色国产| 成人精品国产免费网站| 91精品国产91久久综合桃花 | 精品免费视频一区二区| 亚洲乱码日产精品bd| 麻豆精品久久久| 色婷婷久久久亚洲一区二区三区 | 欧美日韩美女一区二区| 亚洲乱码日产精品bd| 在线视频国内一区二区| 精品国产一区二区三区不卡| 国产在线精品一区二区三区不卡| 91精品欧美一区二区三区综合在 | 风间由美性色一区二区三区| 91在线观看免费视频| 欧美一级电影网站| 国产一区二区影院| 91免费观看视频| 国产精品久久久久婷婷二区次| 国产综合久久久久久鬼色| 国产一区二区三区电影在线观看| 欧美经典一区二区三区| 91九色最新地址| 亚欧色一区w666天堂| 欧美zozozo| 国产在线视视频有精品| 精品黑人一区二区三区久久| 久久电影网站中文字幕| 2023国产精品视频| 91麻豆免费视频| 成人av免费在线观看| 麻豆精品蜜桃视频网站| 久久看人人爽人人| 欧美色中文字幕| 秋霞午夜鲁丝一区二区老狼| 国产日韩欧美在线一区| 欧美日韩夫妻久久| 国产1区2区3区精品美女| 亚洲男人的天堂在线aⅴ视频| 91精品国产综合久久精品 | 亚洲欧洲99久久| 国产香蕉久久精品综合网| 3d动漫精品啪啪一区二区竹菊| 国产一区二区不卡| 日韩电影在线一区二区三区| 日韩欧美国产高清| 欧美日韩一区在线| 成人爱爱电影网址| 五月综合激情日本mⅴ| 久久综合成人精品亚洲另类欧美| 4438成人网| 色狠狠av一区二区三区| 国产一区二区导航在线播放| 午夜精品久久久久久不卡8050| 国产日韩欧美不卡| 国产精品美女久久久久aⅴ | 欧美一区二区三区日韩视频| 欧美日韩精品欧美日韩精品一综合| 精品一区二区三区在线观看国产| 2022国产精品视频| 欧美日韩一区二区不卡| 99精品国产一区二区三区不卡| 成人黄色av网站在线| 成人永久aaa| 色呦呦网站一区| 欧美性生交片4| 中文字幕在线观看一区| 综合在线观看色| 香蕉久久一区二区不卡无毒影院|