请教关于系统自动进入深度休眠的问题
我的系统是WINCE4的
现在的问题是这样的:在CE下“控制面板”->“电源”->“方案”下分三种休眠:用户休眠(useridle)、系统休眠(systemidle)、和深度休眠(也叫挂起或者CPU休眠)
我们设计的流程是可以设置“用户休眠”然后进入“系统休眠”,但是绝不让进入“深度休眠”
所以在D:\WINCE420\PUBLIC\WCESHELLFE\OAK\CTLPNL\CPLMAIN下的power.cpp中将设置的选项去掉,在注册表中设置为0(从不)
而“深度休眠”只是当“按我们设置的开关键”和“电池电量过低”的时候才会进入的,方法是调用系统函数GwesPowerOffSystem();
可是现在当系统启动后,没有人动它,他会先进入“用户休眠”然后进入“系统休眠”,然后偶尔会自己进入到“深度休眠”!
我已经在电池驱动中调用GwesPowerOffSystem();之前加了打印信息,可是不是这两个地方出现的问题!
我的电源管理驱动是WINCE4.2下的,也是分层的,上层在D:\WINCE420\PUBLIC\COMMON\OAK\DRIVERS\BATTDRVR\battdrvr.c中,可是我觉得并不是电源管理的问题
因为电源管理驱动中仅仅那两个地方涉及到调用系统函数GwesPowerOffSystem();是跟深度休眠有关系的
我的深度休眠是在D:\WINCE420\PLATFORM\MCORE\kernel\HAL\ARM下的pmgr.c中设置的:
pSlpParams->PWER = 0x00000000u; // PMGR_PWER_DFLT; // Wake for RTC alarm or GPIO1
pSlpParams->PRER = 0u;// PMGR_PRER_DFLT;
pSlpParams->PFER = 0u;// PMGR_PFER_DFLT;
pSlpParams->PKWR = 0x100u; // PMGR_PKWR_DFLT;
所以深度休眠会调用pmgr.c中的函数OEMPowerOff,使系统休眠,
但是不知道哪里还会调用OEMPowerOff这个函数,或者是满足什么条件调用OEMPowerOff这个函数,或者调用了GwesPowerOffSystem这个函数,或者是调用别的函数造成的深度休眠
总之,莫名其妙的进入了深度休眠!
请教个位高手:关于这个问题还有可能出现在什么地方,有可能是什么情况造成的呢??
谢谢啦各位!!!