wince电源属性->方案中的设置

mingjing   2009-7-1 13:08 楼主



wince中可以通过“控制面板”----“电源”打开电源属性对话框,
其中有一个“方案”选项,可以选择“电源使用方案”,状态切换时间等

这些方案的设置和超时的监视,是通过什么来管理的。

我的问题就是想问一下,当我们设置了这些值之后,是哪一个线程或者驱动,或者什么程序在根据这个方案和时间来管理wince操作系统的。


当我设置1分钟无任何操作,系统进入挂机状态之后,什么地方在做这个具体的挂起工作。



谢谢!

回复评论 (33)

电源管理
点赞  2009-7-1 13:12
你自己没写就应该在PUBLIC下
的电源管理部分
系统通过读取注册表设置来管理这些时间的
点赞  2009-7-1 13:12
mark
点赞  2009-7-1 13:30
帮顶。
点赞  2009-7-1 13:49
看下你的定时器驱动
点赞  2009-7-1 14:19
电源管理和定时器驱动有什么关系吗?


在public下得代码在编译的时候回重新生成吗,是否可以修改这个下面的代码
点赞  2009-7-2 11:57
在注册表里面设置的。

在common.reg里面。
点赞  2009-7-2 12:49
为什么我的系统设置了这个时间,却迟迟不能进入待机状态呢

wifi电源没关?或者是其他电源没关。

wifi一直在寻找网络,好像没法停止
点赞  2009-7-3 12:47
待机要在OAL实现一些东西。

还有系统如果太忙的话也不会待机的。就像电脑,你不挺得操作,即使设置待机也不会休眠的。
点赞  2009-7-3 13:54
引用: 引用楼主 so927 的帖子:



wince中可以通过“控制面板”----“电源”打开电源属性对话框,
其中有一个“方案”选项,可以选择“电源使用方案”,状态切换时间等

这些方案的设置和超时的监视,是通过什么来管理的。

我的问题就是想问一下,当我们设置了这些值之后,是哪一个线程或者驱动,或者什么程序在根据这个方案和时间来管理wince操作系统的。


当我设置1分钟无任何操作,系统进入挂机状态之后,什么地方在做这个具体的挂起工作。…


超时的设置会被写入注册表,在驱动中可以建立一个线程,读入注册表中的时间,利用WaitForMultipleObjects函数,如果超时就进入某个电源状态!至于这个线程是属于哪个驱动,个人觉得可以任意,比如电源按钮驱动。

具体的挂起动作,是在SetSystemPowerState或者点击开始菜单中的挂起后,最后进入OEMPowerOff函数中,其中会有几个重要工作要做,保存重要寄存器数据、设置唤醒源、唤醒后的执行代码起始地址以及设置CPU进入Sleep模式。唤醒源有中断时,系统唤醒,进入EBOOT,EBOOT判断当前重启动作是属于硬件重启还是唤醒重启,如果是休眠唤醒重启,则进入之前设定的唤醒后首先执行的代码。
点赞  2009-7-3 15:58
也就是说这个休眠的等待需要自己做??

在public\pm下有这个代码吗???
点赞  2009-7-3 17:09
引用: 引用 11 楼 so927 的回复:
也就是说这个休眠的等待需要自己做??

在public\pm下有这个代码吗???


这个是电源管理的上层,底层肯定要自己弄了。
点赞  2009-7-3 17:13
嘿嘿,也不清楚还有没有其他方案;不过,我说的那肯定是一种可行的方案,就跟控制面板中的背光定时设置类似了!
点赞  2009-7-3 19:38
有没有类似的代码啊,那位分享一下。谢谢了


点赞  2009-7-5 12:25
需要什么样的代码?

这部分是PM管理的,一般原厂的bsp,即使什么都不做,也能实现基本的空闲状态、待机状态的切换。
当然屏的管理肯定要自己做一下的,不然状态切换了,屏不关,就会白屏的。
点赞  2009-7-7 09:04
但是我现在的系统无法在设定的时间内,因无任何操作而进入待机,或者空闲状态。

不知道“WINCE600\public\common\oak\drivers\pm\pdd”下是否是管理这个超时的代码。
这部分代码是否需要重写
点赞  2009-7-7 13:11
代码不需要重写。但要检查所有的进程,有的进程在运行过程中,PM是不会改变系统电源状态的。也有的进程会主动告诉PM不要改变系统电源状态。
点赞  2009-7-7 17:31
我昨天看了一下,PM.DLL是生成了的,烧写到板子上的系统也有这个DLL,但是注册表中却没有任何关于这个DLL的信息,这个dll是否运行起来了,怎么才能确定他是否运行正常呢


现在还不知道什么进程在通知电源管理,不要挂起。
点赞  2009-7-8 12:23
可以在PM.dll中加Debug message看它的运行情况
没有进程来通知电源管理,PM它自己有几个线程在处理各种事件,具体分析public下面的代码即可
一般情况下不需要修改PM的代码,除非你想自己定义一些系统状态出来
系统进待机的最终接口在OEMPOWEROFF中
点赞  2009-7-8 16:57
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复