wince6.0电源管理之应用程序调用SetSystemPowerState的执行过程
欢迎转贴,但请保留源blog链接,谢谢。http://blog.csdn.net/bbw2008/archive/2010/03/18/5393463.aspx
如有错误,欢迎各位看客,不吝赐教,小弟先谢过了。
SetSystemPowerState() ----------------ap layer
|
| core_common.def
| PM_ SetSystemPowerState;----(WINCE600/PRIVATE/WINCEOS/COREOS/DEVICE/PMIF/pmif.c)
|
PMSetSystemPowerState (/WINCE600/PUBLIC/COMMON/OAK/DRIVERS/PM/MDD/pmsysstate.cpp)
|
PlatformSendSystemPowerState (/WINCE600/PUBLIC/COMMON/OAK/DRIVERS/PM/PDD/DEFAULT/platform.cpp)
|
g_pPowerStateManager->SendSystemPowerState
/WINCE60/PUBLIC/COMMON/OAK/DRIVERS/PM/PDD/DEFAULT/pwsdef.cpp
|
pNewPowerState->EnterState(); /WINCE600/PUBLIC/COMMON/OAK/DRIVERS/PM/PDD/DEFAULT/pwsdef.cpp
pNewPowerState = SetSystemState()
|
PmSetSystemPowerState_I() (/WINCE600/PUBLIC/COMMON/OAK/DRIVERS/PM/MDD/pmsysstate.cpp)
|
PlatformSetSystemPowerState (/WINCE600/PUBLIC/COMMON/OAK/DRIVERS/PM/PDD/DEFAULT/platform.cpp)
|
PowerOffSystem()
|
| kwin32.c
| NKPowerOffSystem() (WINCE600/PRIVATE/WINCEOS/COREOS/NK/KERNEL/kwin32.c)
Kcall((PKFN)CallOEMPowerOff)
|
| CallOEMPowerOff()
| /下面这两个函数的名字,不同的OEM厂商个有不同
OEMPowerOff() |----BSPConfigGPIOforPoweroff 设置默认睡眠模式下中断的的功能
(PLATFORM/name/SRC/COMMON/POWER/off.c)|
| |--- S5p6440_wakeupsource_configure 配置唤醒源
| |
BSPowerOff()--------------------------------
OALCpuPowerOff()//now in sleep
-
本文详细解析了在Wince6.0系统中,应用程序通过调用SetSystemPowerState进行电源状态变更的具体执行流程,包括从API调用到最终触发硬件休眠或关机的一系列步骤。
99

被折叠的 条评论
为什么被折叠?



