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

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

?? ezkitutilities.c

?? ADI公司blackfin DSP開發板BF533 EZ-KIT LITE附帶的全部原代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*********************************************************************************

Copyright(c) 2005 Analog Devices, Inc. All Rights Reserved.

This software is proprietary and confidential.  By using this software you agree
to the terms of the associated Analog Devices License Agreement.

$RCSfile: ezkitutilities.c,v $
$Revision: 1.3 $
$Date: 2007/06/14 15:20:21 $

Description:    EZ-Kit utility routines.  This file contains a collection
                of functions that automate typical EZ-Kit functionality,
                including control of LEDs and push buttons.

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


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

Include files

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

#include <services/services.h>      // system service includes
#include <sysreg.h>                 // system config definitions
#include "ezkitutilities.h"     // EZ-Kit utility definitions


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

flash addresses for BF-533 EZ-Kit

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

#if defined(__ADSP_EDINBURGH__)         // the Edinburgh EZ-Kit uses a flash for ports

#define pFlashA_PortA_In    ((volatile unsigned char *)0x20270000)  // address of flash A port A input data register
#define pFlashA_PortA_Out   ((volatile unsigned char *)0x20270004)  // address of flash A port A output data register
#define pFlashA_PortA_Dir   ((volatile unsigned char *)0x20270006)  // address of flash A port A direction register

#define pFlashA_PortB_In    ((volatile unsigned char *)0x20270001)  // address of flash A port B input data register
#define pFlashA_PortB_Out   ((volatile unsigned char *)0x20270005)  // address of flash A port B output data register
#define pFlashA_PortB_Dir   ((volatile unsigned char *)0x20270007)  // address of flash A port B direction register

#define pFlashB_PortA_In    ((volatile unsigned char *)0x202E0000)  // address of flash B port A input data register
#define pFlashB_PortA_Out   ((volatile unsigned char *)0x202E0004)  // address of flash B port A output data register
#define pFlashB_PortA_Dir   ((volatile unsigned char *)0x202E0006)  // address of flash B port A direction register

#define pFlashB_PortB_In    ((volatile unsigned char *)0x202E0001)  // address of flash B port B input data register
#define pFlashB_PortB_Out   ((volatile unsigned char *)0x202E0005)  // address of flash B port B output data register
#define pFlashB_PortB_Dir   ((volatile unsigned char *)0x202E0007)  // address of flash B port B direction register

#endif

//REMOVE WHEN DRIVERS ARE ADDED
/*********************************************************************

Miscellaneous defines

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

#if defined(__ADSP_EDINBURGH__)         // ADSP-BF533 EZ-Kit specific info
#define RST_7183                (0x8)       //decoder reset bit #3 in flashA portA
#define PPICLK_ADV7183_SELECT   (0x10)      //decoder clock to PPI bit #4 in flashA portA
#define ADV7183_OE_MASK     (0x4)       //ADV7183 /OE = PF2
#define ADV7183_OE          (0)         //Index into Codec flag handler array
#define RST_7171                (0x4)       // encoder reset
#endif


#if defined(__ADSP_TETON__)
#define ADV7183_RESET       (13)        //decoder reset bit
#define ADV7183_OE      (2)     //ADV7183 /OE = PF2
#define ADV7183_Reset_Delay     0x04000000  // For delay after reset
#define ADV7183_Lock        0x0000ffff  // For startup locktime delay
#define ADV7179_RESET       (14)        // encoder reset bit
#endif



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

LED/Button to pf mappings

*********************************************************************/
#if defined(__ADSP_EDINBURGH__) // ADSP-BF533 EZ-Kit mappings
ADI_FLAG_ID ezButtonToFlag[] = {
    ADI_FLAG_PF8,           // button 0
    ADI_FLAG_PF9,           // button 1
    ADI_FLAG_PF10,          // button 2
    ADI_FLAG_PF11           // button 3
};
ADI_FLAG_ID ezLEDToFlag[] = {  // (not used on Edinburgh but needed as placeholder)
    ADI_FLAG_PF0,           // led 0
    ADI_FLAG_PF0,           // led 1
    ADI_FLAG_PF0,           // led 2
    ADI_FLAG_PF0,           // led 3
    ADI_FLAG_PF0,           // led 4
    ADI_FLAG_PF0            // led 5
};
#endif

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

#if defined(__ADSP_STIRLING__) // ADSP-BF538 EZ-Kit mappings
ADI_FLAG_ID ezButtonToFlag[] = {
    ADI_FLAG_PF0,           // button 0
    ADI_FLAG_PF1,           // button 1
    ADI_FLAG_PF2,           // button 2
    ADI_FLAG_PF3            // button 3
};

ADI_FLAG_ID ezLEDToFlag[] = {  
    ADI_FLAG_PC4,           // led 0
    ADI_FLAG_PC5,           // led 1
    ADI_FLAG_PC6,           // led 2
    ADI_FLAG_PC7,           // led 3
    ADI_FLAG_PC8,           // led 4
    ADI_FLAG_PC9            // led 5
};
#endif



#if defined(__ADSP_BRAEMAR__)   // ADSP-BF537 EZ-Kit mappings
ADI_FLAG_ID ezButtonToFlag[] = {
    ADI_FLAG_PF2,           // button 0
    ADI_FLAG_PF3,           // button 1
    ADI_FLAG_PF4,           // button 2
    ADI_FLAG_PF5            // button 3
};
ADI_FLAG_ID ezLEDToFlag[] = {
    ADI_FLAG_PF6,           // led 0
    ADI_FLAG_PF7,           // led 1
    ADI_FLAG_PF8,           // led 2
    ADI_FLAG_PF9,           // led 3
    ADI_FLAG_PF10,          // led 4
    ADI_FLAG_PF11           // led 5
};
#endif

#if defined(__ADSP_TETON__)     // ADSP-BF561 EZ-Kit mappings
ADI_FLAG_ID ezButtonToFlag[] = {
    ADI_FLAG_PF5,           // button 0
    ADI_FLAG_PF6,           // button 1
    ADI_FLAG_PF7,           // button 2
    ADI_FLAG_PF8            // button 3
};
ADI_FLAG_ID ezLEDToFlag[] = {
    ADI_FLAG_PF40,          // led 0
    ADI_FLAG_PF41,          // led 1
    ADI_FLAG_PF42,          // led 2
    ADI_FLAG_PF43,          // led 3
    ADI_FLAG_PF44,          // led 4
    ADI_FLAG_PF45,          // led 5
    ADI_FLAG_PF46,          // led 6
    ADI_FLAG_PF47,          // led 7
    ADI_FLAG_PF32,          // led 8
    ADI_FLAG_PF33,          // led 9
    ADI_FLAG_PF34,          // led 10
    ADI_FLAG_PF35,          // led 11
    ADI_FLAG_PF36,          // led 12
    ADI_FLAG_PF37,          // led 13
    ADI_FLAG_PF38,          // led 14
    ADI_FLAG_PF39           // led 15
};

#endif

#if defined(__ADSP_MOAB__) // ADSP-BF54x EZ-Kit mappings
ADI_FLAG_ID ezButtonToFlag[] = {
    ADI_FLAG_PB8,           // button 1
    ADI_FLAG_PB9,           // button 2
    ADI_FLAG_PB10,          // button 3
    ADI_FLAG_PB11           // button 4
};

ADI_FLAG_ID ezLEDToFlag[] = {  
    ADI_FLAG_PG6,           // led 1
    ADI_FLAG_PG7,           // led 2
    ADI_FLAG_PG8,           // led 3
    ADI_FLAG_PG9,           // led 4
    ADI_FLAG_PG10,          // led 5
    ADI_FLAG_PG11           // led 6
};
#endif


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

LED control

*********************************************************************/
static u32 LEDDisplay;      // bit field representing the LED display
static u32 LEDEnables;      // bit field representing the enabled LEDs



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

function prototypes

*********************************************************************/
static void ezInitPower(u32 NumCores);


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

    Function:       ezInit

    Description:    Initializes the EZ-Kit.  Specifically:
                    - configures async memories
                    - configures flash (where applicable)
                    - configures power to 600/120

*********************************************************************/
void ezInit(u32 NumCores)
{

    // configure async memory
#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

    // configure 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

#if defined(__ADSPBF561__)
	*pEBIU_AMBCTL0	= 0x7bb07bb0;	// Write access time = 7 cycles, read access time = 11 cycles, no ARDY
	*pEBIU_AMBCTL1	= 0x13d07bb0;	// bank 3 for NETCHIP device
	*pEBIU_AMGCTL	= 0x00FF;
#endif

    // configure power
    ezInitPower(NumCores);

}


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

    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(u32 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__)
/*******************************************************************************
 For Rev 1.7 or newer EZ-Kit, configure SDRAM for 64MB, by uncommenting the following 
 line and commenting out the line after it. Rev 1.6 is used by default, for backward 
 compatibility. If "Use XML reset values" is selected in Settings->Target Options, 
 SDRAM will be configured by VDSP according to the values in "ADSP-BF533-proc.xml"
 found in ".../System/ArchDef".  For 1.7 edit that file according to the instructions 
 in the file.  If booting the application from flash, the SDRAM init code in the boot 
 stream must also agree with the SDRAM configuration values in the application.
*******************************************************************************/
 
//    { ADI_EBIU_CMD_SET_EZKIT, (void*)ADI_EBIU_EZKIT_BF533_REV1_7 },
      { ADI_EBIU_CMD_SET_EZKIT, (void*)ADI_EBIU_EZKIT_BF533 },    // for EZ-Kit Rev 1.6 and older


#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 },   
#elif defined(__ADSP_STIRLING__)
        { ADI_EBIU_CMD_SET_EZKIT, (void*)ADI_EBIU_EZKIT_BF538 },
#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  Braemar ot STirling

    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 },
#elif defined(__ADSP_STIRLING__)
        { ADI_PWR_CMD_SET_EZKIT, (void*)ADI_PWR_EZKIT_BF538_500MHZ },

#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_EDINBURGH__)   

    // For 6V silicon, make sure VLEV is set at 1.3 so we can run at max frequency 
    PWRResult = adi_pwr_SetMaxFreqForVolt(ADI_PWR_VLEV_130);
 
#elif !defined (__ADSP_TETON__) || defined(__600_MHZ_TETON__)
    ezErrorCheck( adi_pwr_SetFreq( 0, 0, ADI_PWR_DF_NONE ) );

#else
    // 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:       ezInitLEDs

    Description:    Enables an LED for use

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

void ezInitLED(u32 LED)    // enables an LED
{

    // make sure the LED is valid
    if (LED >= EZ_NUM_LEDS) return;

    // set the enable bit
    LEDEnables |= (1 << LED);

    // configure the flag for output
#if defined(__ADSP_BRAEMAR__) || defined (__ADSP_TETON__) || defined (__ADSP_STIRLING__) || defined (__ADSP_MOAB__)
    adi_flag_Open(ezLEDToFlag[LED]);
    adi_flag_SetDirection(ezLEDToFlag[LED], ADI_FLAG_DIRECTION_OUTPUT);
#endif

    // dim the LED
    ezTurnOffLED(LED);
}

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

    Function:       ezTurnOnLED

    Description:    Lights an LED

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

void ezTurnOnLED(u32 LED)   // lights an LED
{

    // update
    ezSetDisplay(LEDDisplay | (1 << LED));

}

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

    Function:       ezTurnOffLED

    Description:    Dims an LED

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

void ezTurnOffLED(u32 LED)  // dims an LED
{

    // update
    ezSetDisplay(LEDDisplay & ~(1 << LED));

}


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

    Function:       ezToggleLED

    Description:    Toggles an LED

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

void ezToggleLED(u32 LED)   // toggles an LED
{

    // update
    ezSetDisplay(LEDDisplay ^ (1 << LED));

}


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

    Function:       ezTurnOnAllLEDs

    Description:    Lights all LEDs

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

void ezTurnOnAllLEDs(void)  // lights all LEDs
{

    // update
    ezSetDisplay(0xffff);

}


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

    Function:       ezTurnOffAllLEDs

    Description:    Dims all LEDs

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

void ezTurnOffAllLEDs(void) // dims all LEDs
{

    // update
    ezSetDisplay(0);

}


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

    Function:       ezToggleAllLEDs

    Description:    Toggles all LEDs

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

void ezToggleAllLEDs(void)  // toggles all LEDs
{

    // update

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
综合在线观看色| 久久这里只精品最新地址| 亚洲国产精品99久久久久久久久 | 午夜精品久久久久影视| 精品国精品自拍自在线| 91毛片在线观看| 激情五月播播久久久精品| 亚洲伦理在线免费看| 91黄色激情网站| 国产一区二区三区在线观看精品| 亚洲三级在线看| 26uuu精品一区二区在线观看| 国产一区二区三区四| 亚洲v精品v日韩v欧美v专区 | 亚洲一区二区三区国产| 久久天堂av综合合色蜜桃网| 欧美视频一区二区三区四区| 成人一道本在线| 久久se精品一区精品二区| 久久影视一区二区| 91精品国产品国语在线不卡| 91女人视频在线观看| 国产成人精品免费看| 中文在线一区二区| 日本韩国欧美国产| 午夜视频一区二区| 一区二区三区四区不卡在线| 欧美一区二区视频网站| 91久久精品一区二区| 不卡免费追剧大全电视剧网站| 久久狠狠亚洲综合| 麻豆极品一区二区三区| 午夜激情久久久| 亚洲第一会所有码转帖| 欧美zozo另类异族| 99re8在线精品视频免费播放| 亚洲综合久久av| 精品日产卡一卡二卡麻豆| 欧美二区在线观看| 欧美精品自拍偷拍动漫精品| 国产精品12区| 国产成人免费在线| 成人av在线网站| av男人天堂一区| 99久久99久久久精品齐齐| 成人一级片在线观看| 成人a免费在线看| 久久精品国产99| 亚洲精品成人少妇| 一级日本不卡的影视| 久久久国产精华| 久久精品欧美日韩| 中文一区二区在线观看| 欧美日韩视频在线观看一区二区三区 | 日本免费新一区视频| 日韩av高清在线观看| 18欧美乱大交hd1984| 亚洲视频中文字幕| 久久先锋影音av鲁色资源网| 久久久久久久久岛国免费| 国产区在线观看成人精品| 国产精品国产三级国产三级人妇| 日韩欧美一区在线观看| 91久久精品一区二区二区| 欧美性感一区二区三区| 91精品国产综合久久精品性色| 99re66热这里只有精品3直播| 91视频在线观看免费| 欧美日韩亚洲高清一区二区| 91在线播放网址| 欧美日韩高清一区二区三区| 97se亚洲国产综合自在线| 欧美亚洲禁片免费| 99re视频精品| 91精品国产色综合久久ai换脸| 欧美不卡一二三| 国产精品成人一区二区艾草| 午夜精品福利在线| 国产在线精品一区在线观看麻豆| 成人爱爱电影网址| 91精品国产综合久久香蕉麻豆| 精品国产免费一区二区三区四区 | 欧美自拍偷拍一区| 91在线porny国产在线看| 7878成人国产在线观看| 国产女人水真多18毛片18精品视频| 亚洲少妇屁股交4| 全国精品久久少妇| 美女网站色91| 99精品欧美一区二区三区小说 | 日本高清不卡一区| 欧美成人官网二区| 亚洲综合免费观看高清完整版在线| 日韩毛片一二三区| 日本成人在线不卡视频| 奇米精品一区二区三区在线观看一| 亚洲香肠在线观看| 高清国产午夜精品久久久久久| 国产综合色在线视频区| 日本久久一区二区三区| 欧美亚洲禁片免费| 国产精品国产三级国产有无不卡 | 91丨九色porny丨蝌蚪| 91原创在线视频| 欧美在线一二三四区| 久久久亚洲高清| 亚洲777理论| 91一区二区三区在线观看| 色婷婷综合激情| 国产免费观看久久| 久久99九九99精品| 国产成人小视频| 日韩精品一区二区三区视频| 亚洲一区免费观看| 欧美aa在线视频| 国产精品一区免费视频| 成人午夜视频福利| 在线精品国精品国产尤物884a| 国产亚洲欧洲997久久综合| 国产精品高潮久久久久无| 精品一区二区国语对白| 欧美日韩一区 二区 三区 久久精品| 亚洲国产精品v| 国产高清在线精品| 欧美三日本三级三级在线播放| 7777精品伊人久久久大香线蕉超级流畅 | 国产精品日韩成人| 国产综合久久久久影院| 日韩三级精品电影久久久| 亚洲妇女屁股眼交7| 久久精品国产99国产精品| 成人av在线资源| 国产精品午夜在线观看| 亚洲成人av中文| 欧美三级欧美一级| 久久精品水蜜桃av综合天堂| 激情五月婷婷综合网| 久久综合久久鬼色| 亚洲综合男人的天堂| 在线观看一区日韩| 亚洲一区二区在线播放相泽 | 久久九九久久九九| 国产制服丝袜一区| 欧美视频在线不卡| 午夜伦理一区二区| 欧美一级电影网站| 精品在线一区二区三区| 欧亚洲嫩模精品一区三区| 亚洲一区在线观看免费| 国产999精品久久久久久绿帽| 欧美日韩亚洲综合| 专区另类欧美日韩| 欧美在线三级电影| 日日摸夜夜添夜夜添国产精品| 欧美日韩一区三区四区| 国产精品污www在线观看| 日韩中文字幕91| 欧美成人bangbros| 成人午夜电影网站| 亚洲美女电影在线| 欧美乱熟臀69xxxxxx| 日韩福利电影在线| 国产三级一区二区三区| 开心九九激情九九欧美日韩精美视频电影 | 欧美综合欧美视频| 青青草精品视频| 久久精品无码一区二区三区| 99这里都是精品| 国产欧美日韩一区二区三区在线观看| 国产成人综合在线观看| 亚洲精品久久久蜜桃| 欧美一区二区三区系列电影| 精品亚洲aⅴ乱码一区二区三区| 久久精品欧美日韩| 激情综合色丁香一区二区| 91精品黄色片免费大全| 国产91对白在线观看九色| 久久综合精品国产一区二区三区| 五月天激情小说综合| 久久久久久久综合色一本| 色综合久久综合中文综合网| 日韩精品一区第一页| 久久久www成人免费毛片麻豆| 在线视频综合导航| 国产自产高清不卡| 亚洲福利电影网| 欧美激情一区二区三区在线| 91成人免费在线视频| 亚洲色图色小说| 色哟哟国产精品| 国内国产精品久久| 一区二区成人在线观看| 欧美午夜影院一区| 国产精品系列在线观看| 午夜精品久久久久久久久| 在线电影国产精品| 99天天综合性| 亚洲永久免费av| 中文子幕无线码一区tr| 日韩欧美国产一区二区三区 |