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

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

?? s3c2510timer.c

?? S3c2510下的VXWORKS的BSP源代碼(包括了以太網、串口、USB等等驅動)
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* s3c2510Timer.c - SAMSUNG S3C2500 timer driver */

/* Copyright 2002 SAMSUNG ELECTRONICS */

/*
modification history
--------------------
01a,08feb02,jmLee   created.
*/


#include "vxWorks.h"
#include "intLib.h"
#include "errno.h"
#include "drv/timer/timerDev.h"
#include "drv/timer/timestampDev.h"

#include "drv/multi/s3c2510.h"
#include "config.h"
#include "drv/intrCtl/s3c2510Intr.h"
#include "drv/timer/s3c2510Timer.h"


/* Local forward declarations */

LOCAL BOOL sysClkConnectFirstTime       = TRUE;
LOCAL FUNCPTR sysClkRoutine             = NULL;
LOCAL int sysClkArg                     = 0;
LOCAL int sysClkRunning                 = FALSE;
LOCAL int sysClkTicksPerSecond          = DEF_SYS_CLK_TICKS;

LOCAL BOOL sysAuxClkConnectFirstTime    = TRUE;
LOCAL FUNCPTR sysAuxClkRoutine          = NULL;
LOCAL int sysAuxClkArg                  = 0;
LOCAL int sysAuxClkRunning              = FALSE;
LOCAL int sysAuxClkTicksPerSecond       = DEF_SYS_AUX_CLK_TICKS;

#ifdef  INCLUDE_TIMESTAMP
LOCAL BOOL sysTimestampConnectFirstTime = TRUE;
LOCAL FUNCPTR sysTimestampRoutine       = NULL;
LOCAL int sysTimestampArg               = 0;
LOCAL BOOL sysTimestampRunning          = FALSE;
#endif  /* INCLUDE_TIMESTAMP */


/*******************************************************************************
*
* sysClkInt - clock interrupt handler
*
* This routine handles the clock interrupt on the S3C9500 architecture. It is
* attached to the TIMER5 vector by the routine sysClkConnect().
*
* RETURNS : N/A
*/

LOCAL void sysClkInt(void)
{
    /* Clear interrupt. */
    *S3C2510_TIC |= S3C2510_TIC_T5;

#ifdef INCLUDE_LED
    {
        static int count = 0;

        if (!(count % (sysClkRateGet() / 2)))
        {
            if (!(count % sysClkRateGet()))
            {
                LED_ON(LED1_MASK);
            }
            else
            {
                LED_OFF(LED1_MASK);
            }
        }

        if (!(count % (sysClkRateGet() / 10)))
        {
            LED_OFF(LED6_MASK | LED7_MASK | LED8_MASK);
        }

        count++;
    }
#endif  /* INCLUDE_LED */ 

    /* Call system clock service routine. */
    if (sysClkRoutine && sysClkRunning)
    {
        (*sysClkRoutine)(sysClkArg);
    }
}

/*******************************************************************************
*
* sysClkConnect - connect a routine to the system clock interrupt
*
* This routine specifies the interrupt service routine to be called at each
* clock interrupt. Normally, it is called from usrRoot() in usrConfig.c to
* connect usrClock() to the system clock interrupt.
*
* RETURNS: OK, or ERROR if the routine cannot be connected to the interrupt.
*
* SEE ALSO: intConnect(), usrClock(), sysClkEnable()
*/

STATUS sysClkConnect(
    FUNCPTR routine,                                        /* routine called at each clock interrupt */
    int arg                                                 /* argument to clock interrupt routine */
    )
{
    if (sysClkConnectFirstTime)
    {
        sysHwInit2();

        /* Enable peripheral clock. */
        *S3C2510_PCLKDIS &= ~S3C2510_PCLKDIS_TIMER5;

        /* Interval mode. */
        *S3C2510_TMOD &= ~S3C2510_TMOD_TMD5;

        /* Connect and enable interrupt. */
        intConnect(INT_VEC_TIMER5, (VOIDFUNCPTR)sysClkInt, 0);
        intEnable(INT_LVL_TIMER5);

        sysClkConnectFirstTime = FALSE;
   }

    sysClkRoutine   = routine;
    sysClkArg       = arg;

    return OK;
}

/*******************************************************************************
*
* sysClkDisable - turn off system clock interrupts
*
* This routine disables system clock interrupts.
*
* RETURNS: N/A
*
* SEE ALSO: sysClkEnable()
*/

void sysClkDisable(void)
{
    if (sysClkRunning)
    {
        /* Disable timer. */
        *S3C2510_TMOD &= ~S3C2510_TMOD_TE5;

        sysClkRunning = FALSE;
    }
}

/*******************************************************************************
*
* sysClkEnable - turn on system clock interrupts
*
* This routine enables system clock interrupts.
*
* RETURNS: N/A
*
* SEE ALSO: sysClkConnect(), sysClkDisable(), sysClkRateSet()
*/

void sysClkEnable(void)
{
    if (!sysClkRunning)
    {
        /* Calculate the timer interval. */
        *S3C2510_TDATA5 = SPLL_FREQ * 1000 * 1000 / sysClkTicksPerSecond - 1;

        /* Enable timer. */
        *S3C2510_TMOD |= S3C2510_TMOD_TE5;

        sysClkRunning = TRUE;
    }
}

/*******************************************************************************
*
* sysClkRateGet - get the system clock rate
*
* This routine returns the system clock rate.
*
* RETURNS: The number of ticks per second of the system clock.
*
* SEE ALSO: sysClkEnable(), sysClkRateSet()
*/

int sysClkRateGet(void)
{
    return (sysClkTicksPerSecond);
}


/*******************************************************************************
*
* sysClkRateSet - set the system clock rate
*
* This routine sets the interrupt rate of the system clock. It is called by
* usrRoot() in usrConfig.c.
*
* RETURNS: OK, or ERROR if the tick rate is invalid or the timer cannot be set.
*
* SEE ALSO: sysClkEnable(), sysClkRateGet()
*/

STATUS sysClkRateSet(
    int ticksPerSecond                                      /* number of clock interrupts per second */
    )
{
    if ((ticksPerSecond < SYS_CLK_RATE_MIN) || (ticksPerSecond > SYS_CLK_RATE_MAX))
    {
        return ERROR;
    }

    sysClkTicksPerSecond = ticksPerSecond;

    if (sysClkRunning)
    {
        sysClkDisable();
        sysClkEnable();
    }
    
    LED_ON(LED8_MASK);
    
    return OK;
}

/*******************************************************************************
*
* sysAuxClkInt - auxiliary clock interrupt handler
*
* This routine handles the auxiliary clock interrupton the S3C9500 architecture.
* It is attached to the TIMER5 vector by the routine sysAuxClkConnect().
*
* RETURNS : N/A
*/

LOCAL void sysAuxClkInt(void)
{
    /* Clear interrupt. */
    *S3C2510_TIC |= S3C2510_TIC_T4;

    /* Call auxiliary clock service routine. */
    if (sysAuxClkRoutine && sysAuxClkRunning)
    {
        (*sysAuxClkRoutine)(sysAuxClkArg);
    }
}

/*******************************************************************************
*
* sysAuxClkConnect - connect a routine to the auxiliary clock interrupt
*
* This routine specifies the interrupt service routine to be called at each
* auxiliary clock interrupt. It does not enable auxiliary clock interrupts.
*
* RETURNS: OK, or ERROR if the routine cannot be connected to the interrupt.
*
* SEE ALSO: intConnect(), sysAuxClkEnable()
*/

STATUS sysAuxClkConnect(
    FUNCPTR routine,                                        /* routine called at each auxiliary clock interrupt */
    int arg                                                 /* argument to auxiliary clock interrupt routine */
    )
{
    if (sysAuxClkConnectFirstTime)
    {
        /* Enable peripheral clock. */
        *S3C2510_PCLKDIS &= ~S3C2510_PCLKDIS_TIMER4;

        /* Interval mode. */
        *S3C2510_TMOD &= ~S3C2510_TMOD_TMD4;

        /* Connect and enable interrupt. */
        intConnect(INT_VEC_TIMER4, (VOIDFUNCPTR)sysAuxClkInt, 0);
        intEnable(INT_LVL_TIMER4);

        sysAuxClkConnectFirstTime = FALSE;
    }

    sysAuxClkRoutine    = routine;
    sysAuxClkArg        = arg;

    return OK;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
thepron国产精品| 狠狠网亚洲精品| 中文字幕精品一区二区精品绿巨人 | 日本一区二区视频在线观看| 欧美一区二区三区在线电影| 欧美精品三级日韩久久| 欧美色成人综合| 欧美美女bb生活片| 91精品国产色综合久久不卡蜜臀| 欧美浪妇xxxx高跟鞋交| 欧美精品三级在线观看| 日韩欧美国产高清| 久久先锋影音av| 国产午夜亚洲精品午夜鲁丝片 | 亚洲欧洲精品一区二区三区| 中文字幕中文字幕一区二区| 国产精品久久久久久久久久免费看| 国产欧美日韩不卡免费| 亚洲欧美综合色| 亚洲在线免费播放| 奇米影视在线99精品| 国内国产精品久久| 99久久久久久| 欧美裸体bbwbbwbbw| 最好看的中文字幕久久| 亚洲色图都市小说| 亚洲国产wwwccc36天堂| 麻豆精品蜜桃视频网站| 高清国产午夜精品久久久久久| 成人av网址在线| 欧美视频精品在线观看| 欧美一级欧美三级| 国产精品国产精品国产专区不蜜| 亚洲精品日韩综合观看成人91| 天天综合天天综合色| 国产一区在线观看视频| 91麻豆国产福利精品| 日韩视频免费观看高清在线视频| 久久精品视频免费| 性久久久久久久| 国产不卡高清在线观看视频| 欧洲精品一区二区三区在线观看| 精品少妇一区二区三区视频免付费| 中文字幕国产一区二区| 免费一级欧美片在线观看| 风间由美一区二区av101| 欧美色涩在线第一页| 国产无一区二区| 手机精品视频在线观看| 99久久婷婷国产综合精品| 日韩欧美卡一卡二| 亚洲国产精品久久人人爱| 成人h精品动漫一区二区三区| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲男人的天堂在线观看| 日韩高清不卡在线| 91天堂素人约啪| 久久综合av免费| 亚洲成在人线免费| 色综合一个色综合亚洲| 国产亚洲女人久久久久毛片| 日本vs亚洲vs韩国一区三区二区 | 日韩欧美成人激情| 亚洲成在人线免费| 在线精品国精品国产尤物884a| 久久久久99精品国产片| 久久精品国产网站| 91精品久久久久久久久99蜜臂| 亚洲免费色视频| av福利精品导航| 国产精品久久久久影院| 国产99一区视频免费| 久久综合色天天久久综合图片| 日本美女一区二区| 91精品在线麻豆| 日韩在线一区二区| 91麻豆精品国产无毒不卡在线观看| 亚洲香肠在线观看| 欧美亚洲国产一区二区三区| 亚洲综合在线免费观看| 欧美在线一二三四区| 国产一区二区三区观看| 国产亚洲美州欧州综合国| 国产美女久久久久| 日本一区二区视频在线| 成人手机在线视频| 综合激情成人伊人| 欧美亚洲动漫精品| 日韩成人午夜电影| 欧美精品一区二区久久婷婷| 国模无码大尺度一区二区三区| 久久久久国产精品麻豆| 成人黄色电影在线 | 91久久精品日日躁夜夜躁欧美| 亚洲伦理在线免费看| 欧美日韩成人综合天天影院| 免费在线观看一区| 久久九九全国免费| 91丨九色丨蝌蚪富婆spa| 亚洲午夜一区二区三区| 日韩三级电影网址| 风间由美中文字幕在线看视频国产欧美| 国产精品免费观看视频| 欧美色图天堂网| 国产专区综合网| 亚洲欧洲成人精品av97| 欧美久久高跟鞋激| 国产成都精品91一区二区三| 中文字幕一区二区三区在线播放| 欧美私人免费视频| 国产一区在线观看视频| 亚洲综合av网| 亚洲一区二区中文在线| 精品91自产拍在线观看一区| 99精品欧美一区二区三区综合在线| 亚洲高清不卡在线观看| 欧美激情综合在线| 欧美日韩大陆一区二区| 成人av在线看| 美国欧美日韩国产在线播放| 亚洲色图欧洲色图| 欧美精品一区男女天堂| 欧美性大战久久久久久久| 国产福利91精品一区| 午夜精品久久久| 中文一区二区在线观看| 欧美一区在线视频| 在线观看精品一区| av在线综合网| 国产91精品露脸国语对白| 日韩vs国产vs欧美| 亚洲精品中文字幕乱码三区| 久久久久国产精品厨房| 欧美一区日本一区韩国一区| 91麻豆国产自产在线观看| 国产一区二区0| 日本 国产 欧美色综合| 亚洲成av人片一区二区梦乃| 亚洲同性gay激情无套| 久久精子c满五个校花| 日韩欧美一区电影| 欧美精品欧美精品系列| 欧美日韩综合一区| 欧美在线制服丝袜| 99久久婷婷国产综合精品| 成人精品国产一区二区4080| 久久 天天综合| 久久国产精品99精品国产| 午夜精品久久久久久不卡8050| 亚洲精品老司机| 亚洲区小说区图片区qvod| 中文字幕第一区二区| 久久久久久免费| 午夜激情久久久| 一区二区三区四区不卡在线 | 亚洲国产成人av好男人在线观看| 亚洲日本va在线观看| 亚洲欧洲综合另类| 一区二区三区久久久| 亚洲国产日韩一级| 午夜电影网一区| 日本成人中文字幕| 久久国产综合精品| 国产精品资源在线看| 国产精品18久久久久久久久久久久| 国产麻豆精品久久一二三| 丁香婷婷综合激情五月色| 成人免费毛片高清视频| 色呦呦国产精品| 欧美二区三区的天堂| 欧美成人艳星乳罩| 亚洲国产精品黑人久久久| 自拍偷拍亚洲综合| 视频一区二区三区中文字幕| 美女精品一区二区| 国产成人av在线影院| 日本精品裸体写真集在线观看| 欧美另类一区二区三区| 精品国产成人系列| 最新日韩av在线| 三级成人在线视频| 国产精品中文字幕一区二区三区| youjizz久久| 欧美片网站yy| 国产精品无圣光一区二区| 一区二区成人在线| 国产制服丝袜一区| 色综合久久综合网97色综合| 91精品久久久久久久久99蜜臂| 国产亚洲精久久久久久| 一区二区三区不卡视频在线观看 | 国产福利一区二区三区视频 | 久久蜜臀精品av| 亚洲欧美激情在线| 欧美a级一区二区| 成人视屏免费看| 欧美一区二区成人6969| 亚洲欧洲av另类| 精品一区二区久久久| 色88888久久久久久影院按摩|