Windows CE高级电源管理.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Windows CE高级电源管理.ppt

Windows CE高级电源管理 Hui Wan Development Mangager MSTV Solutions China Microsoft Corporation 纲要 CE 电源管理的结构图 CE 电源管理器 Kernel 层 电源管理 Required kernel functions: OEMIdle Called when not threads are scheduled to run OEMPowerOff Called when suspending the system Optional kernel functions: OALUpdateRescheduleTime Called to update the system tick interval Device 层 电源管理 Required functions: XXX_PowerUp/Down Called by the device manager (independent of Power Manager) to suspend and resume a driver Optional functions: IOCTL_POWER_xxx Used by Power Manager to control/query driver DevicePowerNotify Used by driver to notify Power Manager of changes 应用程序层的电源管理 Get/SetSystemPowerState Controls the power state of the entire system Release/SetPowerRequirement Controls the power limit of individual drivers Get/SetDevicePower Controls the power state of individual drivers Stop/RequestPowerNotifications Controls Power Manager event notification 纲要 OEMPowerOff Responsible for placing the system in the lowest power state during suspend DRAM in self-refresh CPU stopped Interrupts disabled (except wakeup sources) After a wakeup interrupt system state restored OEMIdle Called by the scheduler when there are not threads ready to run. (Blocked waiting for input or event.) Responsible for placing the CPU in a low power state that can be rapidly exited Not possible to place DRAM in self refresh 例子: 简单的 例子: Emulator 的代码 例子: 复杂的 软件上的流程 OEMIdle called: CPU paused (waiting for interrupt) Interrupt occurs ISR runs to completion Execution continues in OEMIdle Execution continues in scheduler Scheduled thread runs 系统的Tick中断 Typically set to a 1ms interval Tick ISR checks dwReschedTime and returns SYSINTR_NOP or SYSINTR_RESCHED SYSINTR_NOP will cause the scheduler to drop right back into OEMIdle SYSINTR_RESCHED will cause the next scheduled thread to resume Tick可变的调度程序 Scheduler calls OALUpdateReschedTime to change the system tick interval based on the next scheduled thread time In theory the tic

文档评论(0)

zhaoxq + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档