请教:WINCE6下OEMPowerOff无法被调用问题

alien75 2010-12-23 06:18:16
原始BSP包是用的SMDK2443 for wince5,然后做一些小修改移植到WINCE6下。已经实现了OEMPowerOff休眠及唤醒功能,在wince5下能通过SetSystemPowerState(NULL, POWER_STATE_SUSPEND, POWER_FORCE)触发OEMPowerOff调用,但是在wince6下则无法触发OEMPowerOff调用,问题有可能在哪里?
补充一下:wince6是R3版,已经添加了"Battery Driver"及"Power Management(Full)"组件
...全文
251 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChenXiao_China 2013-09-05
  • 打赏
  • 举报
回复
正在学习当中。。。
MeiRiver 2012-09-27
  • 打赏
  • 举报
回复
alien75 ,你最后是如何解决这个不能调用的问题呢,不再使用 multi-bin?
yt888899 2012-09-18
  • 打赏
  • 举报
回复
请教各位达人小弟遇到的情况和版主一样!正确的流程大致是 SetSystemPowerState()--->PlatformSendSystemPowerState()--->PmSetSystemPowerState_I()--->PlatformSetSystemPowerState()--->PowerOffSystem()--->NKPowerOffSystem()--->CallOEMPowerOff()--->OEMPowerOff()。我现在的情况是执行完PowerOffSystem()之后没有进行NKPowerOffSystem()内核调用。也就是后续无法进入OEMPowerOff()。请教各位达人我后续该怎么做啊。现在无法完成待机休眠。
alien75 2010-12-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 loongembedded 的回复:]
引用 3 楼 alien75 的回复:
补充一下,这些工作我都是放在OEMPowerOff及BSPPowerOff中做的,所以就没有单独做电源驱动了。

不需要单独做电源驱动都可以,我们的系统也是WINCE6.0+S3C2443的,可以实现,你之前WINCE5.0下可以正常实现睡眠和唤醒的是吗?如果是这样,还是你移植过程中遗留的问题,在仔细检查。
[/Quote]
已找到问题,说起来很简单吧:因为用的是multi-bin,没有将gwes.dll、devmgr.dll、servicesEnum.dll、servicesd.exe、services.exe放到XIP中,尽管不影响启动但是影响内核对OEMPowerOff的调用
loongembedded 2010-12-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 alien75 的回复:]
补充一下,这些工作我都是放在OEMPowerOff及BSPPowerOff中做的,所以就没有单独做电源驱动了。
[/Quote]
不需要单独做电源驱动都可以,我们的系统也是WINCE6.0+S3C2443的,可以实现,你之前WINCE5.0下可以正常实现睡眠和唤醒的是吗?如果是这样,还是你移植过程中遗留的问题,在仔细检查。
alien75 2010-12-23
  • 打赏
  • 举报
回复
补充一下,这些工作我都是放在OEMPowerOff及BSPPowerOff中做的,所以就没有单独做电源驱动了。
alien75 2010-12-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 91program 的回复:]
这部分需要电源驱动来支持的,不是BSP或加组件就能实现的
[/Quote]
你所说的电源驱动是指专用电源IC的驱动吗?因为我不需要实现DVS,只需要CPU能进入SLEEP模式和从SLEEP唤醒,外围IC或模块能进入低功耗模式就可以了。所以没有做电源驱动。
91program 2010-12-23
  • 打赏
  • 举报
回复
这部分需要电源驱动来支持的,不是BSP或加组件就能实现的

19,518

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧