⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 itrontime.c

📁 RTEMS (Real-Time Executive for Multiprocessor Systems) is a free open source real-time operating sys
💻 C
字号:
/* *  COPYRIGHT (c) 1989-1999. *  On-Line Applications Research Corporation (OAR). * *  The license and distribution terms for this file may be *  found in the file LICENSE in this distribution or at *  http://www.rtems.com/license/LICENSE. * *  $Id: itrontime.c,v 1.3.4.1 2003/09/04 18:46:52 joel Exp $ */#if HAVE_CONFIG_H#include "config.h"#endif#include <itron.h>#include <rtems/score/thread.h>#include <rtems/score/tod.h>#include <rtems/itron/time.h>/* *  set_tim - Set System Clock */void converTime(SYSTIME ms, TOD_Control *time){  int millisecond;/* XXX need to dereference structure */#if 0  milisecond = ms % 1000;  tempSecond = ms / 1000;#else   millisecond = 0;#endif}   /* *  set_tim - Set System Clock */ER set_tim(  SYSTIME *pk_tim){ Watchdog_Interval temp; /* an integer in seconds after conversion from SYSTIME */ TOD_Control the_tod; /* convert *pk_tim which is 48 bits integer in binary into an ordinary integer in milliseconds */ /* XXX */ temp = 0;  if(temp > 0) {    _Thread_Disable_dispatch();      _TOD_Set(&the_tod, temp);    _Thread_Enable_dispatch();      if(_TOD_Validate(&the_tod)){      return E_OK;      }  }  return E_SYS;}/* *  get_tim - Get System Clock */ER get_tim(  SYSTIME *pk_tim){  return E_OK;}/* *  dly_tsk - Delay Task */ER dly_tsk(  DLYTIME dlytim){  Watchdog_Interval ticks;  ticks = TOD_MILLISECONDS_TO_TICKS(dlytim);  _Thread_Disable_dispatch();    if ( ticks == 0 ) {      _Thread_Yield_processor();    } else {      _Thread_Set_state( _Thread_Executing, STATES_DELAYING );      _Watchdog_Initialize(        &_Thread_Executing->Timer,        _Thread_Delay_ended,        _Thread_Executing->Object.id,        NULL      );      _Watchdog_Insert_ticks( &_Thread_Executing->Timer, ticks );    }  _Thread_Enable_dispatch();  return E_OK;}/* *  def_cyc - Define Cyclic Handler */ER def_cyc(  HNO     cycno,  T_DCYC *pk_dcyc){  Watchdog_Control *object;#if 0  Watchdog_Interval timeInterval;#endif  /* XXX */ object = 0;  if ( pk_dcyc->cycatr != TA_HLNG)     return E_RSATR;#if 0  timeInterval = pk_dcyc->cyctim / 1000;  object->delta_interval = timeInterval;#endif  _Watchdog_Initialize(         object,         pk_dcyc->cychdr,         cycno,         pk_dcyc->exinf);  _Watchdog_Deactivate(object);                 return E_OK;}/* *  act_cyc - Activate Cyclic Handler */ER act_cyc(  HNO   cycno,  UINT  cycact){  Watchdog_Control *object;     if(cycact != TCY_OFF || cycact != TCY_ON)     return E_PAR;#if 0  if( object->Object_ID != cycno)     return E_NOEXS;#endif    _Watchdog_Activate(object);           return E_OK;}/* *  ref_cyc - Reference Cyclic Handler Status */ER ref_cyc(  T_RCYC *pk_rcyc,  HNO     cycno){#if 0  int timeElapse_since_actCyclic;#endif  T_DCYC *pk_dcyc;#if 0  Watchdog_Control *object;#endif/* XXX */ pk_dcyc = 0;   /* XXX will to use a "get" routine to map from id to object pointer *//* XXX and the object pointer should be of type specific to this manager */#if 0  if( object->Object_ID == cycno))#else  if ( 1 )#endif  {     pk_rcyc->exinf = pk_dcyc->exinf;     pk_rcyc->cycact = pk_dcyc->cycact;#if 0     pk_rcyc->lfttim = pk_dcyc->cyctim - timeElapse_since_actCyclic;#endif          return E_OK;  }  else     return E_NOEXS;   }/* *  def_alm - Define Alarm Handler */ER def_alm(  HNO     almno,  T_DALM *pk_dalm){  #if 0  Objects_Control *objectAlrm;  Watchdog_Interval timeInterval;    timeInterval = pk_dalm->almtim / 1000;  (void) _Watchdog_Remove(&objectAlrm);  _Watchdog_Initialize(           objectAlrm,           pk_dalm->almhdr,           almno,           pk_dalm->exinf);  _Watchdong_Insert_seconds(objectAlrm,timeInterval);  _Thread_Enable_dispatch();#endif                return E_OK;}/* *  ref_alm - Reference Alarm Handler Status */ER ref_alm(  T_RALM *pk_ralm,  HNO     almno){     return E_OK;}/* *  ret_tmr - Return from Timer Handler */void ret_tmr( void ){}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -