|
|
@ -37,30 +37,30 @@
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LITE_OS_SEC_DATA_INIT UINT32 g_sysClock;
|
|
|
|
LITE_OS_SEC_DATA_INIT UINT32 g_sysClock; //系统时钟,绝大部分部件工作的时钟源,以及所有外设的始终来源
|
|
|
|
LITE_OS_SEC_DATA_INIT UINT32 g_tickPerSecond;
|
|
|
|
LITE_OS_SEC_DATA_INIT UINT32 g_tickPerSecond; //每秒Tick数,harmony默认为每秒100次即10ms
|
|
|
|
LITE_OS_SEC_BSS DOUBLE g_cycle2NsScale;
|
|
|
|
LITE_OS_SEC_BSS DOUBLE g_cycle2NsScale; //将周期转为纳秒级
|
|
|
|
|
|
|
|
|
|
|
|
/* spinlock for task module */
|
|
|
|
/* spinlock for task module */
|
|
|
|
LITE_OS_SEC_BSS SPIN_LOCK_INIT(g_tickSpin);
|
|
|
|
LITE_OS_SEC_BSS SPIN_LOCK_INIT(g_tickSpin); //节拍器自旋锁
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
/*
|
|
|
|
* Description : Tick interruption handler
|
|
|
|
* Description : Tick interruption handler
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
LITE_OS_SEC_TEXT VOID OsTickHandler(VOID)
|
|
|
|
LITE_OS_SEC_TEXT VOID OsTickHandler(VOID)//节拍中断处理函数,harmony默认1ms触发一次
|
|
|
|
{
|
|
|
|
{
|
|
|
|
#ifdef LOSCFG_SCHED_TICK_DEBUG
|
|
|
|
#ifdef LOSCFG_SCHED_TICK_DEBUG
|
|
|
|
OsSchedDebugRecordData();
|
|
|
|
OsSchedDebugRecordData();
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef LOSCFG_KERNEL_VDSO
|
|
|
|
#ifdef LOSCFG_KERNEL_VDSO
|
|
|
|
OsVdsoTimevalUpdate();
|
|
|
|
OsVdsoTimevalUpdate(); //更新vdso数据页时间,vsdo可以直接在用户进程空间绕过系统调用获取系统时间
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef LOSCFG_BASE_CORE_TICK_HW_TIME
|
|
|
|
#ifdef LOSCFG_BASE_CORE_TICK_HW_TIME
|
|
|
|
HalClockIrqClear(); /* diff from every platform */
|
|
|
|
HalClockIrqClear(); /* diff from every platform */
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
OsSchedTick();
|
|
|
|
OsSchedTick();//由时钟发起的调度
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|