四极管:OAL电源管理(一)

 

四极管:OAL电源管理(一)

 

电源管理可以提高整个系统电源的效率,通常需要为系统的每一个设备都提供电源管理功能、

一、电源管理器

电源管理器用于管理设备的电源并提高整个Windows CE操作系统的效率,对于电源管理器,我们应该理解一下几点:

(1)、电源管理可以用来减少目标设备的电源消耗并在系统处于复位、运行、空闲和挂起状态时维护和保护位于RAM中的文件系统。

(2)、电源管理器为设备能够智能地管理自身的电源提供了框架,并且在设备的电源状态与整个系统的电源状态之间提供了一种隔离机制,它允许当操作系统运行时关闭一些设备的电源,或者当操作系统的大部分被挂起时允许有些设备的电源处于打开状态。

(3)、电源管理器被实现为动态链接库Pm.dll,它并不限制平台的电源需求或设计。

(4)、在默认状态下,电源管理器被内建到操作系统映像中,但可以通过定义BSP_NOPM环境变量来移除,这将从操作系统映像中移去Pm.dll。

(5)、开发者可以定制自己的系统电源状态,如RunAC、RunDC、挂起等,这些状态不是预先定义的,也没有必要是线性排列的,开发者可以在系统配置中将电源状态名作为注册键,系统对可以定义多少个系统电源状态没有限制。

(6)、开发者要负责显式的定义设备电源状态与系统电源状态之间的映射。

(7)、设备电源状态时静止的、预先定义的,电源管理器将一个设备的状态传递给驱动程序,驱动程序负责负责将设备状态映射到设备并在物理设备上完成适当的状态转换。

物理设备没有必要支持所有必须支持所有的设备电源状态。所有设备都必须支持的设备电源状态是全开(Full On)状态D0,当一个驱动程序请求进入一个设备不支持的电源状态时,进入下一个支持的可用电源状态。如果一个设备不能唤醒系统,那么它应该关闭系统而不是让它停滞在挂起(Suspend)状态。

当一个设备驱动程序被加载时,它应该使这个设备进入全开(Full On)状态D0,在一个驱动程序被卸载时,如果可能则应该使这个设备进入关闭(Off)状态D4。

 

设备电源状态

设备电源状态

注册键

描述

Full On

D0

设备被打开和运行的状态,设备接收来自系统的全部电量并为用户提供全部的功能

Low On

D1

设备以比D0更低的电量或者性能工作的全功能状态。D1可以被应用于正在被使用的设备,这时的设备不是工作在最佳的性能状态

Suspend

D2

设备处于被部分供电并在当设备被请求时可以唤醒自己的状态

Sleep

D3

设备被部分供电并在需要时能以自己的电量去唤醒系统电源的状态,D3所消耗的电量必须小于或者等于D2所消耗的电量

Off

D4

设备没有被供电的状态,处于D4状态的设备不应该消耗明显的电量

(8)、随电源管理系统存在一组内核IOCTL,电源管理器使用这些IOCTL来操作系统的电源状态。这些IOCTL包括以下几类:

IOCTL_HAL_ENABLE_WAKE;

IOCTL_HAL_DISABLE_WAKE

IOCTL_POWER_SET;

IOCTL_POWER_GET;

IOCTL_POWER_QUERY;

IOCTL_POWER_CAPABILITIES

IOCTL_POWER_SEQUENCE;

IOCTL_PEGISTER_POWER_RELATIONSHIP

二、系统电源状态到设备电源状态的映射

开发者可以在系统配置中将电源状态名定义为注册键。系统电源状态到设备电源状态的映射被列为注册表里每一个电源状态名的值,注册表定义如下:

[HKLM\SYSTEM\CurrentControlSet\Control\Power\State\Name]

Flags:REG_DWORD:xxx

(Default):REG_DWORD:Dx

DeviceName:REG_DWORD:Dx

各个值的意义如下表所示:

注册表值

描述

Name

定义系统的电源状态名

Flags

表示POWER_STATE_XXX值的掩码,在Pm.h中定义;或者是OEM定义的电源状态标志

(Default)

所有设备的默认电源设置。当没有定义默认设置时,电源管理器假定设备的默认电源状态为D0

Dx

设备电源状态,设置为D0、D1、D2、D3或者D4.这是在系统电源状态Name时设备运行的状态

DeviceName

可选,定义除(Default)之外有特定设备电源状态需求的设备,如COM1:dword:3

具体驱动实现举例下一节将会做介绍.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值