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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ezkitutilities.c

?? UCOS-II2.76在ADI-BF533上的移植.在UCOS-II網(wǎng)站提供的源碼基礎(chǔ)上修改了幾處匯編代碼.采用2.76版系統(tǒng)內(nèi)核移植,在DSP++4.0上調(diào)試成功
?? C
?? 第 1 頁 / 共 2 頁
字號:

	Function:		ezToggleLED

	Description:	Toggles the state of an LED.

*********************************************************************/

void ezToggleLED(u32 LEDNumber)	// toggles an LED
{
	if (ezIsLEDOn(LEDNumber)) {
		ezTurnOffLED(LEDNumber);
	} else {
		ezTurnOnLED(LEDNumber);
	}
}




/*********************************************************************

	Function:		ezTurnOnAllLEDs

	Description:	Turns on all LEDs.  

*********************************************************************/

void ezTurnOnAllLEDs(void)					// turns on all LEDs
{
	int i;
	
	// turn them on
	for (i = EZ_FIRST_LED; i <= EZ_LAST_LED; i++) {
		ezTurnOnLED(i);
	}

}
	

/*********************************************************************

	Function:		ezTurnOffAllLEDs

	Description:	Turns off all LEDs.  

*********************************************************************/

void ezTurnOffAllLEDs(void)					// turns off all LEDs
{
	int i;
	
	// turn them off
	for (i = EZ_FIRST_LED; i <= EZ_LAST_LED; i++) {
		ezTurnOffLED(i);
	}

}
	

/*********************************************************************

	Function:		ezCycleLEDs

	Description:	Cycles through each LED in turn.  

*********************************************************************/

void ezCycleLEDs(void)						// cycles through LEDS
{												// changes each time called
static int LED = EZ_FIRST_LED;

			ezTurnOffLED(LED);
			LED++;
			if (LED > EZ_LAST_LED) LED = EZ_FIRST_LED;
			ezTurnOnLED(LED);
}
	

/*********************************************************************

	Function:		ezIsLEDOn

	Description:	Returns TRUE if an LED is lit, FALSE otherwise.

*********************************************************************/

u32 ezIsLEDOn(u32 LEDNumber)	// test to see if an LED is lit
{

#if defined(__ADSP_EDINBURGH__)			// ADSP-BF533 EZ-Kit specific info
	switch(LEDNumber) {
		case 4:
			if (*pFlashA_PortB_In & 0x0001) return (TRUE);
			break;
		case 5:
			if (*pFlashA_PortB_In & 0x0002) return (TRUE);
			break;
		case 6:
			if (*pFlashA_PortB_In & 0x0004) return (TRUE);
			break;
		case 7:
			if (*pFlashA_PortB_In & 0x0008) return (TRUE);
			break;
		case 8:
			if (*pFlashA_PortB_In & 0x0010) return (TRUE);
			break;
		case 9:
			if (*pFlashA_PortB_In & 0x0020) return (TRUE);
			break;
	}

	// return
	return (FALSE);
#endif

#if defined(__ADSP_BRAEMAR__) || defined (__ADSP_TETON__) // ADSP-BF537 & BF561 EZ-Kit specific info

	u32	Value;	
	  
	adi_flag_Sense(EZ_LED_TO_FLAG(LEDNumber), &Value);

	// return
	return (Value );
 
#endif // Braemar or Teton

}

/*********************************************************************

	Function:		ezGetDisplay

	Description:	Returns the current status of the LED display

*********************************************************************/
u32 ezGetDisplay()
{
	int i;
	u32 Mask;
	u32 Display;
	
	// assume nothing's on and set our mask
	Display = 0;
	Mask = 1;
	
	// FOR (each LED)
	for (i = EZ_FIRST_LED; i <= EZ_LAST_LED; i++, Mask <<= 1) {
		
		// set the bit in Display if the LED is on
		if (ezIsLEDOn(i)) Display |= Mask;
		
	// ENDFOR
	}
	
	// return
	return (Display);
}

/*********************************************************************

	Function:		ezSetDisplay

	Description:	Sets the LED display

*********************************************************************/
void ezSetDisplay(u32 Display)
{

	int i;
	
	// FOR (each LED)
	for (i = EZ_FIRST_LED; i <= EZ_LAST_LED; i++, Display >>= 1) {
		
		// light the LED if that bit in the display is set
		if (Display & 0x1) {
			ezTurnOnLED(i);
		} else {
			ezTurnOffLED(i);
		}
		
	// ENDFOR
	}
	
}



/*********************************************************************

	Function:		ezErrorCheck

	Description:	This function is intended to be used as a means to 
					quickly determine if a function has returned a non-zero
					(hence an error) return code.  All driver and system
					services functions return a value of zero for success and 
					a non-zero value when a failure occurs.  This function
					lights all the LEDs and spins when a non-zero value is 
					passed to it.  

*********************************************************************/

void ezErrorCheck(u32 Result)				// lights all LEDS and spins on nonzero value
{
	while (Result != 0) {
		ezTurnOnAllLEDs();
	}
}
			
	



/*********************************************************************

	Function:		ezIsButtonPushed

	Description:	Returns TRUE if a button has been pushed, FALSE otherwise.

*********************************************************************/

u32 ezIsButtonPushed(u32 ButtonNumber) 		// returns TRUE if button is pushed, FALSE otherwise
{
	u32	Value;
	
	// sense it
	adi_flag_Sense(EZ_BUTTON_TO_FLAG(ButtonNumber), &Value);

	// return
	return (Value);
	
}		


/*********************************************************************

	Function:		ezEnableButtonCallback

	Description:	Enables generation of a callback in response to
					a button being pushed.

*********************************************************************/

u32	ezEnableButtonCallback		(					// enables generation of a push button callback
	u32 				ButtonNumber,
	void				*ClientHandle,
	ADI_DCB_HANDLE		DCBHandle,
	ADI_DCB_CALLBACK_FN	ClientCallback
) {

	// use the flag service to hook the interrupt
	return((u32)adi_flag_InstallCallback(EZ_BUTTON_TO_FLAG(ButtonNumber), FLAG_PERIPHERAL_ID, ADI_FLAG_TRIGGER_RISING_EDGE, TRUE, ClientHandle, DCBHandle, ClientCallback));
	
	// return
}



/*********************************************************************

	Function:		ezDisableButtonCallback

	Description:	Disables generation of a callback in response to 
					a button being pushed.

*********************************************************************/

u32	ezDisableButtonCallback	(u32 ButtonNumber)	// disables generation of a push button callback
{

	// use the flag service to hook the interrupt
	return((u32)adi_flag_RemoveCallback(EZ_BUTTON_TO_FLAG(ButtonNumber)));
	
}




/*********************************************************************

	Function:		ezClearButton

	Description:	Clears a push button latch.  This must be called to 
					reset the latch for the push button, if a button has
					been pressed.

*********************************************************************/

void	ezClearButton(u32 ButtonNumber)	// clears a button latch
{
	volatile int i;
	
	// delay to allow for any debounce to clear
	for (i = 0; i < 4000000; i++) ;
	
	// clear the flag corresponding to the button
	adi_flag_Clear(EZ_BUTTON_TO_FLAG(ButtonNumber));
	
}








/*********************************************************************

	Function:		ezInitPower

	Description:	Initializes and sets Power managwmentSDRAM parameters on the EZ-Kit.  
					(Replaces ezConfigurePLL & ezConfigureSDRAM )
					Processor clock set to max in each case
	
*********************************************************************/

#define DO_NOT_CHANGE_MMR_SETTINGS 0

static void ezInitPower(u8 NumCores)	
{
	ADI_EBIU_RESULT EBIUResult;
	ADI_PWR_RESULT 	PWRResult;
	
#if defined (__ADSP_TETON__)
	ADI_PWR_COMMAND_PAIR ezkit_power[3];
#endif	
	
	// It is important that the EBIU module is configured before Power module
	// so that changes to the clock frequencies are correctly reflected in the
	// SDRAM settings
	
	//Initializes the EBIU module 
	ADI_EBIU_COMMAND_PAIR ezkit_sdram[] = {	
#if defined (__ADSP_EDINBURGH__)	
		{ ADI_EBIU_CMD_SET_EZKIT, (void*)ADI_EBIU_EZKIT_BF533 },
#elif defined(__ADSP_BRAEMAR__)
		{ ADI_EBIU_CMD_SET_EZKIT, (void*)ADI_EBIU_EZKIT_BF537 },
#elif defined (__ADSP_TETON__)
		{ ADI_EBIU_CMD_SET_EZKIT, (void*)ADI_EBIU_EZKIT_BF561 },
#endif
		{ ADI_EBIU_CMD_END, 0}
	};
	EBIUResult = adi_ebiu_Init( ezkit_sdram, DO_NOT_CHANGE_MMR_SETTINGS );
	if ((EBIUResult != ADI_EBIU_RESULT_SUCCESS) && (EBIUResult != ADI_EBIU_RESULT_CALL_IGNORED)) {
		ezErrorCheck(EBIUResult);
	}
	
	//Initializes the power management module 
#if defined (__ADSP_TETON__)

	u8 ic=0;
	ezkit_power[ic].kind  =  ADI_PWR_CMD_SET_EZKIT;
	ezkit_power[ic].value =  (void*)ADI_PWR_EZKIT_BF561_500MHZ;
	
	// for Teton (BF561) there is a choice between auto sync if NumCores >1 or
	// no synchronization - essential for single-core apps.
	
	if (NumCores>1) {	
		ic++;
		// value field is superfluos for this command
		ezkit_power[ic].kind  =  ADI_PWR_CMD_SET_AUTO_SYNC_ENABLED;
	}
	ic++;
	// value field is superfluos for this command
	ezkit_power[ic].kind  =  ADI_PWR_CMD_END;
	
#else	// otherwise - Edinburgh or Braemar	

	ADI_PWR_COMMAND_PAIR ezkit_power[] = {	
#if defined (__ADSP_EDINBURGH__)	
		{ ADI_PWR_CMD_SET_EZKIT, (void*)ADI_PWR_EZKIT_BF533_600MHZ },
#elif defined(__ADSP_BRAEMAR__)
		{ ADI_PWR_CMD_SET_EZKIT, (void*)ADI_PWR_EZKIT_BF537_600MHZ },
#endif
		{ ADI_PWR_CMD_END, 0}
	};	
#endif
	
	PWRResult = adi_pwr_Init( ezkit_power );
	if ((PWRResult != ADI_PWR_RESULT_SUCCESS) && (PWRResult != ADI_PWR_RESULT_CALL_IGNORED)) {
		ezErrorCheck(PWRResult);
	}
	
	// Crank up speed to max possible
#if !defined (__ADSP_TETON__) || defined(__600_MHZ_TETON__)
	ezErrorCheck( adi_pwr_SetFreq( 0, 0, ADI_PWR_DF_NONE ) );
#else
	// Again, this is safe, on boards with ADSP-BF561SKBC500X rev 0.2
	// There are issues with some BF561 EZ-kits for V >=1.2V
	ezErrorCheck( adi_pwr_SetMaxFreqForVolt( ADI_PWR_VLEV_115 ) );
#endif
}


/*********************************************************************

	Function:		ezInitAsync

	Description:	Initializes and sets the appropriate wait states for
					the async memories on the EZKit.  

*********************************************************************/

static void ezInitAsync(void)						// configures async memory for use
{
	
#if defined(__ADSP_EDINBURGH__)			// ADSP-BF533 EZ-Kit specific info
	*pEBIU_AMBCTL0	= 0x7bb07bb0;	// Write access time = 7 cycles, read access time = 11 cycles, no ARDY
	*pEBIU_AMBCTL1	= 0x7bb07bb0;	// Hold time = 2 cycles, setup time = 3 cycles, transition time = 4 cycles
	*pEBIU_AMGCTL	= 0x00FF;
#endif // Edinburgh
 
}



/*********************************************************************

	Function:		ezInitFlashA

	Description:	Sets up the A flash on the board for use.  

*********************************************************************/

static void ezInitFlashA(void)						// sets up the flash
{
	
#if defined(__ADSP_EDINBURGH__)			// ADSP-BF533 EZ-Kit specific info
	*pFlashA_PortA_Out = 0;			// resets port A to initial value
	*pFlashA_PortA_Dir = 0xFF;		// configure everything on port A as outputs
	*pFlashA_PortB_Out = 0;			// resets port B to initial value
	*pFlashA_PortB_Dir = 0x3f;		// configure everything on port B as outputs
#endif // Edinburgh
 	
}



/*********************************************************************

	Function:		ezInitLEDs

	Description:	Initializes and sets up the LEDs for use. 

*********************************************************************/

static void ezInitLEDs(void)			// configures the flags to drive LEDs
{
	int i;

#if defined(__ADSP_EDINBURGH__)			// ADSP-BF533 EZ-Kit specific info
	// nothing to do here on the BF533 EZ-Kit
#endif // Edinburgh
	
#if defined(__ADSP_BRAEMAR__) || defined (__ADSP_TETON__) // ADSP-BF537 & BF561 EZ-Kit specific info
	// configure flags connected to LEDs as inputs
	for (i = 0; i < EZ_NUM_LEDS; i++) {
		adi_flag_Open(LED[i]);
		adi_flag_SetDirection(LED[i], ADI_FLAG_DIRECTION_OUTPUT);
	}
#endif // Braemar or Teton
 
	
}


/*********************************************************************

	Function:		ezTerminateLEDs

	Description:	Terminates the LEDs

*********************************************************************/

static void ezTerminateLEDs (void)
{
	// nothing to do ?????
		
}

/*********************************************************************

	Function:		ezInitButtons

	Description:	Initializes the push button as input flags

*********************************************************************/

static void ezInitButtons(void) {
	
	u32 i;

	// configure flags connected to buttons as inputs
	for (i = 0; i < EZ_NUM_BUTTONS; i++) {
		adi_flag_Open(Button[i]);
		adi_flag_SetDirection(Button[i], ADI_FLAG_DIRECTION_INPUT);
	}
		
}



/*********************************************************************

	Function:		ezTerminateButtons

	Description:	Terminates the buttons

*********************************************************************/

static void ezTerminateButtons(void)
{
	// nothing to do ?????
		
}





?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩精品一二三区| 88在线观看91蜜桃国自产| 日本不卡一二三| 一区二区激情小说| 一区二区三区在线观看欧美 | 人禽交欧美网站| 日日夜夜免费精品视频| 日韩国产在线观看一区| 久久精品久久综合| 国产成人免费9x9x人网站视频| 国产一区二区在线免费观看| 成人午夜电影久久影院| 97精品国产97久久久久久久久久久久| 菠萝蜜视频在线观看一区| 一本到不卡精品视频在线观看| 色婷婷久久久综合中文字幕 | 欧美精品亚洲二区| 欧美福利电影网| 久久久久国色av免费看影院| 国产精品美女久久福利网站| 亚洲国产日韩精品| 国内不卡的二区三区中文字幕| 成人精品高清在线| 欧美日韩一区国产| 欧美精品一区二区三区久久久| 国产欧美一区二区精品性色| 亚洲免费在线视频| 久久国产剧场电影| 色综合久久88色综合天天免费| 91麻豆精品国产91久久久 | 91亚洲精品乱码久久久久久蜜桃| 日本福利一区二区| 日韩精品一区二区三区swag| 亚洲国产成人自拍| 日本在线播放一区二区三区| 国产精品乡下勾搭老头1| 色噜噜狠狠色综合中国| 日韩视频免费观看高清完整版在线观看 | 日韩欧美一卡二卡| 国产三级精品三级| 日韩国产高清在线| 成人av免费网站| 3d动漫精品啪啪| 亚洲视频在线一区二区| 毛片av一区二区| 日本福利一区二区| 中文天堂在线一区| 久久精品国产亚洲一区二区三区 | 7777精品伊人久久久大香线蕉超级流畅| 精品久久人人做人人爽| 亚洲一区二区三区在线| 国产精品亚洲а∨天堂免在线| 欧美日本高清视频在线观看| 综合av第一页| 国产精品小仙女| 欧美大胆一级视频| 亚洲成年人网站在线观看| av不卡免费电影| 国产日韩欧美在线一区| 蜜臀91精品一区二区三区| 精品视频资源站| 亚洲乱码中文字幕| k8久久久一区二区三区 | 一区二区三区日韩欧美精品 | 一区二区三区国产精华| 99精品视频在线观看免费| 国产欧美日韩激情| 激情文学综合网| 日韩欧美国产午夜精品| 天天色天天操综合| 欧美日韩成人激情| 日韩激情一二三区| 日韩一区二区电影| 麻豆91免费观看| 337p粉嫩大胆噜噜噜噜噜91av | 国产欧美一区二区三区在线看蜜臀 | 久久99最新地址| 精品日韩在线观看| 国产传媒日韩欧美成人| 国产欧美日韩激情| 91视频免费播放| 亚洲黄色性网站| 欧美日韩久久不卡| 美女一区二区视频| 26uuu亚洲| 成人免费看的视频| 亚洲乱码国产乱码精品精的特点 | 久久久蜜桃精品| 成人午夜免费av| 亚洲精品视频自拍| 欧美老肥妇做.爰bbww视频| 男男视频亚洲欧美| 久久久久久久综合狠狠综合| av电影在线不卡| 日本在线不卡视频| 国产日韩在线不卡| 在线一区二区视频| 理论电影国产精品| 国产精品五月天| 欧美人体做爰大胆视频| 韩国女主播一区| 亚洲欧美中日韩| 7777精品伊人久久久大香线蕉经典版下载| 日本大胆欧美人术艺术动态| 国产精品污网站| 欧美人与禽zozo性伦| 国产乱码字幕精品高清av| 国产精品欧美一区二区三区| 欧美私模裸体表演在线观看| 日本美女一区二区| 中文字幕一区二区三区色视频| 欧美伦理视频网站| 粗大黑人巨茎大战欧美成人| 亚洲va欧美va国产va天堂影院| www久久精品| 欧美性生活影院| 国产·精品毛片| 蜜桃视频第一区免费观看| 综合色中文字幕| 久久久久9999亚洲精品| 欧美日韩国产一级| jizz一区二区| 国产一区在线精品| 天天色天天操综合| 亚洲精品一二三区| 国产精品国产三级国产aⅴ入口| 欧美一区二区视频在线观看| 97久久人人超碰| 国产成人免费视| 久久精品国产秦先生| 亚洲国产中文字幕在线视频综合| 国产欧美视频在线观看| 久久先锋资源网| 精品国产一区二区三区四区四| 欧美亚洲禁片免费| 一本色道综合亚洲| 国产成人高清在线| 国产一区二三区| 久久精品国产秦先生| 日韩激情中文字幕| 人禽交欧美网站| 美国三级日本三级久久99| 午夜欧美视频在线观看| 亚洲国产sm捆绑调教视频| 亚洲激情图片一区| 亚洲人吸女人奶水| 有坂深雪av一区二区精品| 亚洲人午夜精品天堂一二香蕉| 国产精品国产精品国产专区不片| 中文字幕欧美三区| 中文字幕亚洲精品在线观看| 亚洲人成网站影音先锋播放| 伊人一区二区三区| 午夜精品123| 日本不卡视频在线| 国产精品99久久久久久似苏梦涵| 国产一本一道久久香蕉| 国产精品99久久久久久久女警| 丰满岳乱妇一区二区三区| 成人免费黄色大片| 色偷偷久久人人79超碰人人澡| 日本丶国产丶欧美色综合| 欧美日韩国产小视频在线观看| 在线电影欧美成精品| 精品乱人伦小说| 欧美激情一区二区三区四区| 亚洲欧美一区二区视频| 亚洲综合免费观看高清完整版| 三级在线观看一区二区| 激情国产一区二区| 国产ts人妖一区二区| 色婷婷精品久久二区二区蜜臂av | 成人免费视频国产在线观看| www.日韩在线| 欧美色偷偷大香| 91精品国产乱码久久蜜臀| 久久夜色精品国产噜噜av| 国产精品免费久久| 视频一区视频二区中文| 国产伦精品一区二区三区免费迷| 99久久免费精品高清特色大片| 欧美影视一区二区三区| 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲精品日日夜夜| 极品美女销魂一区二区三区免费| 成人va在线观看| 欧美一卡二卡三卡四卡| 国产精品久久久久久福利一牛影视 | 91精品国产综合久久香蕉麻豆| 久久久五月婷婷| 亚洲va欧美va人人爽午夜| 成人一区二区三区| 日韩欧美国产一区二区在线播放 | 亚洲午夜电影在线| 国产精华液一区二区三区| 欧美日韩国产在线观看| 中文字幕一区二区三区色视频| 精品一区二区综合| 欧美影院一区二区| 亚洲欧美日韩在线|