为什么wince 启动时一直在无缘无故执行OEMSetAlarmTime?
虽然多年前的问题,接续http://bbs.csdn.net/topics/350068269中的讨论 ,始终没有找到合理的解释,通过分析winceos 核心源代码得知,在SCHEDULE.C文件中的SystemStartupFunc()函数中会调用OEMSetAlarmTime,但是是根据条件判断的。 什么条件呢,就是ft和ft3两个时间相关变量的比较。if (hAlar
·
虽然多年前的问题,接续http://bbs.csdn.net/topics/350068269中的讨论 ,始终没有找到合理的解释,通过分析winceos 核心源代码得知,在SCHEDULE.C文件中的SystemStartupFunc()函数中会调用OEMSetAlarmTime,但是是根据条件判断的。
什么条件呢,就是ft和ft3两个时间相关变量的比较。
if (hAlarmEvent) {
OEMGetRealTime(&st);
KSystemTimeToFileTime(&st,&ft);
KSystemTimeToFileTime(&CurAlarmTime,&ft2);
ft3.dwLowDateTime = 100000000; // 10 seconds
ft3.dwHighDateTime = 0;
sub64_64_64(&ft2,&ft3,&ft3);
if (KCompareFileTime(&ft,&ft3) >= 0) {
SetEvent(hAlarmEvent);
hAlarmEvent = NULL;
} else
OEMSetAlarmTime(&CurAlarmTime);
}
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献2条内容
所有评论(0)