查看: 1679|回复: 0
打印 上一主题 下一主题

WinCE电源管理

[复制链接]
跳转到指定楼层
沙发
发表于 2015-4-29 13:07:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

在WinCE系统中实现电源管理主要有三步,添加"Power Manager"组件,在驱动中实现电源管理的接口,在应用程序中通过调用电源管理的API控制各设备和系统的工作状态。

      第一步比较简单,通常只要在Catalog中添加就可以。如果有特殊需求,可以移植C:\WINCE600\PUBLIC\COMMON\OAK\DRIVERS\PM下的代码到BSP,并做相应的修改。

第二步主要是在现有的驱动上添加电源管理的功能。对于驱动来说,并不要求必须包括电源管理的功能,完全可以不实现,具体情况具体分析。为了让Power Manager知道哪些驱动是支持电源管理功能的,需要在注册表中包含相应的键值(IClass)或者在驱动初始化时调用AdvertiseInterface()。一般来说,流驱动用注册表键值比较方便一些,而显示驱动通常用AdvertiseInterface()来告知。流驱动和显示驱动在实现电源管理的功能上也有所不同。流驱动主要是在XXX_IOControl中,实现IOCTL_POWER_CAPABILITIES、IOCTL_POWER_QUERY、IOCTL_POWER_SET和IOCTL_POWER_GET。具体代码可以参考C:\WINCE600\PLATFORM\DEVICEEMULATOR\SRC\DRIVERS\BACKLIGHT,非常好的一个例子。而显示驱动主要是在DrvEscape中实现以上几个IoControlCode,另外需要注意在QUERYESCSUPPORT添加相应的IoControlCode。这个代码可以参考C:\WINCE600\PLATFORM\COMMON\SRC\SOC\PXA27X_MS_V1\DISPLAY\PXA27X_LCD,也是非常好的一个例子。以上这两个参考代码的框架都基本完善,在做移植时根据具体的情况实现相应的功能即可。如果成功实现了这两步,就可以在控制面板的电源属性中看到相应的设备了。如下图所示。

                    

            


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入因仑

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

快速回复 返回顶部 返回列表