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

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

?? ixp425timer.c

?? INTEL IXP425的VXWORKS BSP
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* ixp425Timer.c - ixp425 processor timer library *//* Copyright 2002 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------01b,05dec02,jb  Fixed timestamp and aux clock01a,05jun02,jb  initial version...*//*DESCRIPTIONThis library contains routines to manipulate the timer functions.			_______hardware		TIMER 0clock			_______			   |interface -----------------------------------------------------		|		  |		     |		|		  |		     |software     _______		______		_____________clock(s)     sysClk		auxClk		timeStampClk	     _______		______		_____________interface functions:clkInt() - clock interrupt handlerclkConnect() - connect a routine to the clock interruptclkDisable() - turn off system clock interruptsclkEnable() - turn on system clock interruptsclkRateGet() - get the system clock rate oscillations per secondclkPeriod() - get the period of the timer (tick counter rollover)clkFreq() - get a timer clock frequencyclkTimestamp() - get a tick counter countNote: There are two different types of ticks referred to.  The frequencytick and the counter tick.  A frequency tick refers to the timer clockoscillations per second and the counter ticks refer to the number of times(ticks) a register decreases until roll over.The macros SYS_CLK_RATE_MIN, SYS_CLK_RATE_MAX must be defined toprovide parameter checking for the sysClkRateSet() routine.*/#include "ixp425.h"#include "ixp425Timer.h"#include "drv/timer/timerDev.h"#ifdef INCLUDE_TIMESTAMP#include "drv/timer/timestampDev.h"#endif/*  * The APB timer block is not based on the CPU speed, but on * the APB core clock of 66Mhz. */#define TIMER_APB_CLOCK_MHZ ( IXP425_PERIPHERAL_BUS_CLOCK )/* hardware access methods */#ifndef IXP425_REG_TIMER_READ#define IXP425_REG_TIMER_READ(reg,result) \	((result) = *(volatile UINT32 *)(reg))#endif /*IXP425_REG_TIMER_READ*/#ifndef IXP425_REG_TIMER_WRITE#define IXP425_REG_TIMER_WRITE(reg,data) \	(*((volatile UINT32 *)(reg)) = (data))#endif /*IXP425_REG_TIMER_WRITE*//* Locals */LOCAL int     clockTicksPerSecond   = IXP425_OSST_TICKS_PER_SECOND;LOCAL UINT32  clockTimerRollOver    = IXP425_OSST_ROLLOVER;LOCAL BOOL    clockConnected	    = FALSE;LOCAL BOOL    sysClkRunning	    = FALSE;LOCAL void    sysClkDummyRoutine(int arg) {}LOCAL FUNCPTR sysClkRoutine	    = (FUNCPTR) sysClkDummyRoutine;LOCAL int     sysClkArg		    = (int) NULL;LOCAL BOOL    sysClkConnected	    = FALSE;LOCAL BOOL    sysAuxClkRunning	    = FALSE;LOCAL void    sysAuxClkDummyRoutine(int arg) {}LOCAL FUNCPTR sysAuxClkRoutine	    = (FUNCPTR)sysAuxClkDummyRoutine;LOCAL int     sysAuxClkArg	    = (int) NULL;LOCAL BOOL    sysAuxClkConnected    = FALSE;LOCAL int     sysAuxClkTicksPerSecond = 100;LOCAL int     sysAuxClkRollOver     = ((TIMER_APB_CLOCK_MHZ * 0x100000) / 100);#ifdef INCLUDE_TIMESTAMPLOCAL BOOL    sysTimestampRunning   = FALSE;LOCAL FUNCPTR sysTimestampRoutine   = (FUNCPTR) NULL;LOCAL int     sysTimestampArg       = (int) NULL;#endifLOCAL void clkInt (void){     /* Clear Pending Interrupt by writing '1' to it */     IXP425_REG_TIMER_WRITE(IXP425_OSST, IXP425_OSST_TIMER_1_PEND);     if (sysClkRunning)	 (*(FUNCPTR) sysClkRoutine) (sysClkArg);     /* The timer is free running and as such it has already reloaded      * and is counting down       */}/***************************************************************************** clkConnect - connect a routine to the clock interrupt** This routine specifies the interrupt service routine to be called at each* clock interrupt.** RETURN: OK** SEE ALSO: intConnect(), usrClock(), clkEnable()*/LOCAL STATUS clkConnect (void)    {    if(!clockConnected)	{	 sysHwInit2 ();	 (void)intConnect ((void *)INT_VEC_TIMER1, clkInt, 0);	 clockConnected = TRUE;	}    return (OK);    }/***************************************************************************** clkDisable - turn off system clock interrupts** This routine disables clock interrupts.  In order for the hardware clock* to be disables all the software clocks must be disabled.** RETURNS: N/A** SEE ALSO: clkEnable()*/LOCAL void clkDisable (void)    {		intDisable(INT_VEC_TIMER1);	/* Clear the OST register for this timer, This disabled the	   timer */	IXP425_REG_TIMER_WRITE( IXP425_OSRT1 , IXP425_OST_DISABLED );        }/***************************************************************************** clkEnable - turn on system clock interrupts** This routine enables system clock interrupts.	 Any software clock can* enable the hardware clock** RETURNS: N/A** SEE ALSO: sysClkDisable(), sysClkRateSet()*/LOCAL void clkEnable (void)    {		IXP425_REG_TIMER_WRITE( IXP425_OSRT1 , ((clockTimerRollOver & ~IXP425_OST_RELOAD_MASK) |  IXP425_OST_ENABLE )  );	intEnable(INT_VEC_TIMER1);    }/***************************************************************************** clkRateGet - get the system clock rate** This routine returns the oscillations clock rate.** RETURNS: The number of oscillations per second of the clock.** SEE ALSO: sysClkEnable(), sysClkRateSet()*/LOCAL int clkRateGet (void)    {    return (clockTicksPerSecond);    }/**************************************************************************** clkPeriod - get the period of the tick counter** This routine gets the period of the timer, in ticks.	The* period, or terminal count, is the number of ticks to which the tick* counter counts before rolling over and restarting the counting process.** RETURNS: The period of the timer in counter ticks.*/LOCAL UINT32 clkPeriod (void)    {    return (clockTimerRollOver);    }/**************************************************************************** clkFreq - get a timer clock frequency** This routine gets the frequency of the timer clock, in ticks per* second.  The rate of the timer is set explicitly by the* hardware and typically cannot be altered.** RETURNS: The timer clock frequency, in counter ticks per second.*/LOCAL UINT32 clkFreq (void)    {    return ( TIMER_APB_CLOCK_MHZ * 0x100000);    }/**************************************************************************** clkTimestamp - get a time stamp count** This routine returns the current value of the timer tick counter.* The tick count can be converted to seconds by dividing it by the return of* clkFreq().*** RETURNS: The current time stamp count.** SEE ALSO: clkFreq()*/LOCAL UINT32 clkTimestamp (void)    {	UINT32 count;	/* Read the free running up-timer from peripherial block */	IXP425_REG_TIMER_READ(IXP425_OSTS,count);	return(count);    }   /***************************************************************************** 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.** RETURN: OK** SEE ALSO: intConnect(), usrClock(), sysClkEnable()*/STATUS sysClkConnect    (    FUNCPTR routine,	/* routine called at each system clock interrupt */    int	    arg		/* argument with which to call routine		 */    )    {    sysClkConnected   = TRUE;    sysClkRoutine     = routine;    sysClkArg	      = arg;    clkConnect();    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)	{	clkDisable();	sysClkRunning	 = FALSE;	}    }/***************************************************************************** sysClkEnable - turn on system clock interrupts** This routine enables system clock interrupts.** RETURNS: N/A** SEE ALSO: sysClkDisable(), sysClkRateSet()*/void sysClkEnable (void)    {    if (!sysClkRunning)	{	clkEnable();	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(clkRateGet());    }/***************************************************************************** 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);    clockTicksPerSecond = ticksPerSecond;    clockTimerRollOver = ((TIMER_APB_CLOCK_MHZ * 0x100000)                          / clockTicksPerSecond);    if (sysClkRunning)	{	sysClkDisable ();	sysClkEnable ();	}    return (OK);    }/********************************************************************************* sysAuxClkInt - handle an auxiliary clock interrupt

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本色道久久综合狠狠躁的推荐 | 亚洲宅男天堂在线观看无病毒| 午夜成人免费视频| 国产高清无密码一区二区三区| 欧美在线三级电影| 亚洲国产精品ⅴa在线观看| 久久精品国产精品亚洲精品| 色嗨嗨av一区二区三区| 亚洲国产高清在线观看视频| 蜜桃久久久久久久| 欧美日韩一区二区三区不卡| 国产精品久久久久久久久搜平片 | 91在线码无精品| 精品免费一区二区三区| 午夜视频一区二区| 一本一道综合狠狠老| 国产欧美日韩不卡| 精品一区二区国语对白| 制服丝袜一区二区三区| 亚洲.国产.中文慕字在线| 色婷婷综合久久| 亚洲伦在线观看| 不卡av电影在线播放| 久久久久久电影| 精品一区二区三区久久| 日韩欧美精品三级| 九九九久久久精品| 精品福利一二区| 精品写真视频在线观看| 日韩免费电影网站| 韩国一区二区视频| 久久精品视频一区| 国产91丝袜在线播放九色| 久久午夜电影网| 国产成人av在线影院| 中文字幕av不卡| 成av人片一区二区| 亚洲乱码国产乱码精品精小说| 91麻豆国产福利在线观看| 亚洲色大成网站www久久九九| 99精品视频一区二区三区| 最新欧美精品一区二区三区| 99精品视频一区二区| 亚洲精品国产无天堂网2021| 欧美色视频一区| 日本网站在线观看一区二区三区| 欧美一二三区在线| 韩国女主播一区| 中文字幕一区二区三区在线播放| 99久久精品国产导航| 亚洲一卡二卡三卡四卡无卡久久| 欧美日韩国产中文| 韩国av一区二区| 亚洲日本在线a| 7777精品伊人久久久大香线蕉最新版| 精品一区二区综合| 中文字幕免费在线观看视频一区| 91麻豆文化传媒在线观看| 亚洲成av人影院在线观看网| 精品久久久久一区| 99久久久精品免费观看国产蜜| 亚洲国产另类av| 久久亚洲免费视频| 色综合天天综合网国产成人综合天| 日韩高清在线不卡| 日韩亚洲欧美成人一区| 国产a精品视频| 亚洲成人手机在线| 久久这里只有精品首页| 99精品视频在线播放观看| 日本在线不卡视频| 国产精品国产自产拍在线| 欧美电影在哪看比较好| 国产成人亚洲综合a∨婷婷| 亚洲永久精品大片| 久久你懂得1024| 欧美亚洲国产怡红院影院| 国产精华液一区二区三区| 一区二区在线观看av| 久久综合久久99| 欧美日韩国产片| 成人小视频免费在线观看| 日韩国产在线一| 亚洲欧美一区二区三区极速播放 | 在线精品视频一区二区| 九色|91porny| 日日摸夜夜添夜夜添国产精品| 国产精品国产自产拍在线| 久久亚洲一级片| 91精品国产高清一区二区三区蜜臀| 波多野结衣精品在线| 麻豆91在线看| 亚洲成人激情综合网| 亚洲色图视频网| 国产片一区二区| 久久日韩精品一区二区五区| 制服.丝袜.亚洲.中文.综合| 色域天天综合网| av电影在线观看完整版一区二区| 精品中文字幕一区二区小辣椒 | 国产麻豆视频精品| 日本亚洲欧美天堂免费| 午夜精品视频一区| 亚洲午夜影视影院在线观看| 日韩久久一区二区| 国产精品久久久久一区| 中文字幕国产一区二区| 久久亚洲精华国产精华液| 精品国产一区二区三区久久久蜜月| 欧美日精品一区视频| 欧美亚洲另类激情小说| 欧美三级电影在线看| 欧美色成人综合| 欧美日韩国产综合草草| 欧美高清视频一二三区| 欧美电影一区二区| 欧美肥大bbwbbw高潮| 3atv在线一区二区三区| 日韩一区国产二区欧美三区| 日韩欧美成人一区| 2024国产精品视频| 国产精品情趣视频| 最新高清无码专区| 亚洲精品国产精品乱码不99| 亚洲自拍偷拍av| 青娱乐精品视频| 国产一区二区三区精品欧美日韩一区二区三区 | 国产一区二区三区综合| 国产一区91精品张津瑜| 成人一区二区三区在线观看| av午夜一区麻豆| 欧美日韩在线播| 久久综合视频网| 中文字幕欧美国产| 亚洲一区欧美一区| 男人的j进女人的j一区| 国产成人综合在线| 色乱码一区二区三区88| 91精品国产综合久久香蕉麻豆| 欧美大尺度电影在线| 国产日韩欧美电影| 亚洲综合色成人| 激情综合网天天干| 成人国产免费视频| 欧美久久久久免费| 国产亚洲综合在线| 一区二区三区**美女毛片| 奇米888四色在线精品| 丁香婷婷综合网| 欧美日韩免费在线视频| 日韩精品最新网址| 国产精品不卡一区| 美国av一区二区| 94-欧美-setu| 精品国一区二区三区| 亚洲天堂成人在线观看| 视频在线观看一区二区三区| 成人高清免费在线播放| 69精品人人人人| 亚洲欧洲无码一区二区三区| 男女激情视频一区| 91色九色蝌蚪| 久久久综合九色合综国产精品| 亚洲视频一区二区在线观看| 久久99久久久欧美国产| 日本久久电影网| 欧美国产欧美综合| 亚洲成人在线免费| av激情综合网| 久久精品欧美一区二区三区不卡| 天堂成人国产精品一区| 97精品国产露脸对白| 精品国产污污免费网站入口| 亚洲午夜久久久久| 成人av资源站| 国产三级欧美三级日产三级99| 亚洲不卡av一区二区三区| eeuss影院一区二区三区| 91精品国产福利在线观看| 亚洲欧美激情视频在线观看一区二区三区 | 国产乱子轮精品视频| 欧美无砖专区一中文字| 中文字幕在线不卡一区二区三区| 精品无人区卡一卡二卡三乱码免费卡 | 精品亚洲国产成人av制服丝袜 | 欧美极品少妇xxxxⅹ高跟鞋 | 日韩电影在线一区二区| 91久久一区二区| 亚洲影视在线播放| 一本色道**综合亚洲精品蜜桃冫 | 久久亚洲一区二区三区明星换脸| 男女性色大片免费观看一区二区 | 亚洲欧洲三级电影| av一区二区三区四区| 中文字幕在线免费不卡| 高清不卡在线观看| 日韩一区在线播放| caoporn国产精品| 亚洲欧美综合另类在线卡通| 成人av综合一区|