摘要: 不管任何方式的系统挂起,最终都会调用OEMPowerOff()函数来实现.OEMPowerOff()函数由OEM来完成,这个函数也许会位于power.c或者off.c的文件中.OEMPowerOff()是OEM来实现的,代码和流程也许不同,但基本按照下面的方法来完成.挂起的过程:1.先进行平台相关的动作,比如清屏,设置AD,usb等.2.保存芯片所有的寄存器值到一个静态数组(就是堆栈中)3.设置io,关闭kitl等4.呼叫OALCPUPowerOff()进行挂起.OALCPUPowerOff()是一个位于startup.s中的汇编函数,它按照下面的流程实现挂起功能5.保存通用寄存器r4-r12 阅读全文
posted @ 2010-05-08 21:48 gmh 阅读(915) 评论(0) 推荐(0) 编辑
摘要: 作者:ARM-WinCE在WinCE OAL中的电源管理主要由OEMIdle和OEMPowerOff两个函数实现。应该说OEMIdle实现的是处理器级的电源管理,而OEMPowerOff实现的是板级的电源管理。在WinCE系统运行的时候,如果没有任何线程可以执行,那么内核就会调用OEMIdle函数。一般在OEMIdle中,处理器都会进入sleep模式或者idle模式,这取决于处理器本身所能支持的低功耗模式。应该说,这个时候系统中的各个设备还是正常工作的,只是处理器进入了一种低功耗模式。OEMIdle函数是OAL中必须实现的,微软也提供了一个例子,在%_WINCEROOT%\Platform\C 阅读全文
posted @ 2010-05-08 21:39 gmh 阅读(337) 评论(0) 推荐(0) 编辑