毫秒和秒的换算 1000毫秒等于多少秒( 二 )


LITE_OS_SEC_TEXT_INIT UINT32 HalStartSchedule(OS_TICK_HANDLER handler)
{
UINT32 ret;
⑴ret = HalTickStart(handler);
if (ret != LOS_OK) {
return ret;
}
⑵HalStartToRun();
return LOS_OK; /* never return */
}
函数 HalTickStart(handler)定义在文件 kernelarcharmcortex-m7gcclos_timer.c , 源码如下 , 我们分析下函数的代码实现 。⑴处校验下时间管理模块的配置项的合法性 。在开启宏 LOSCFG_USE_SYSTEM_DEFINED_INTERRUPT 时 , 会使用系统定义的中断 。会执行⑵处的代码 , 调用定义在文件 kernelarcharmcortex-m7gcclos_interrupt.c 中的函数 OsSetVector()设置中断向量 , 该函数在中断系列会详细分析 。⑶处设置全局变量 g_sysClock 为系统时钟 , g_cyclesPerTick 为每 tick 对应的 cycle 数目 , g_ullTickCount 初始化为 0 , 表示系统 tick 中断发生次数 。⑷处调用定义在 targetscortex-m7_nucleo_f767zi_gccDriversCMSISIncludecore_cm7.h 文件中的内联函数 uint32_t SysTick_Config(uint32_t ticks) , 初始化、启动系统定时器 Systick 和中断 。
WEAK UINT32 HalTickStart(OS_TICK_HANDLER *handler)
{
UINT32 ret;
⑴if ((OS_SYS_CLOCK == 0) ||
(LOSCFG_BASE_CORE_TICK_PER_SECOND == 0) ||
(LOSCFG_BASE_CORE_TICK_PER_SECOND WWw.kemAOWaNG 。oRG 。cN
【毫秒和秒的换算 1000毫秒等于多少秒】 .QIX43 { display:none; }