|
在trochili rtos里是这么实现的
/*************************************************************************************************
* 功能:获得系统已运行时钟节拍数 *
* 参数:(1) pStamp 返回系统已运行时钟节拍数 *
* 返回:无 *
* 说明: *
*************************************************************************************************/
void xKernelGetJiffies(TTimeTick* pJiffies)
{
TReg32 imask;
CpuEnterCritical(&imask);
*pJiffies = uKernelVariable.Jiffies;
CpuLeaveCritical(imask);
}
/*************************************************************************************************
* 功能:获得系统已运行时钟节拍数 *
* 参数:(1) pJiffies 保存系统已运行的时钟节拍数 *
* 返回:无 *
* 说明: *
*************************************************************************************************/
void TclGetTimeJiffies(TTimeTick* pJiffies)
{
KNL_ASSERT((pJiffies != (TTimeTick*)0), "");
xKernelGetJiffies(pJiffies);
}
/*************************************************************************************************
* 功能:获得系统已运行时间戳 *
* 参数:(1) pStamp 以微秒为单位的时间戳数值 *
* 返回:无 *
* 说明: *
*************************************************************************************************/
void TclGetTimeStamp(TTimeStamp* pStamp)
{
TTimeTick jiffies;
KNL_ASSERT((pStamp != (TTimeStamp*)0), "");
xKernelGetJiffies(&jiffies);
*pStamp = (jiffies * 1000U * 1000U) / TCL_TIME_TICK_RATE;
}
|
|