您的位置:首页 > 其它

为什么wince 启动时一直在无缘无故执行OEMSetAlarmTime?

2016-07-10 18:05 309 查看
       虽然多年前的问题,接续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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: