挂起后唤醒并进入OEMPowerOff但无法恢复

tangcongfai   2008-12-8 17:22 楼主
在s3c2440+wince5.0的环境下,做了挂起唤醒的功能,可是唤醒后,程序跑到OEMPowerOff里并恢复寄存器,重新初始LCD后,LCD重新亮起来后,又慢慢变成白屏,应该是因为没有继续刷屏的原因,是程序跑飞了吗?OEMPowerOff的最后是否要做什么调用操作?
部分代码如下:
VOID OEMPowerOff(void)
{
    CPUSaveRegs(CPUBackupRegs);/* Save Current Important CPU Regs...   */
    CPULCDOff();/* LCD Controller Disable   */
    ConfigStopGPIO();/* Stop all GPIO */
    ConfigMiscReg();/* Set misc register for power off */

    CPUPowerOff();//////////////////////////////////////////////////////////////sleep//////awaken

    CPULoadRegs(CPUBackupRegs);/* Recover Process, Load CPU Regs*/
    /* Interrupt Clear*/
    s2440IOP->rEINTPEND  = s2440IOP->rEINTPEND;
    s2440LCD->rLCDSRCPND = s2440LCD->rLCDSRCPND;
    s2440LCD->rLCDINTPND = s2440LCD->rLCDINTPND;
    s2440INT->rSUBSRCPND = s2440INT->rSUBSRCPND;

    NANDInit();
    OEMInitDebugSerial();
    RETAILMSG(1,(TEXT("End Poweroff\r\n")));
    LCDInit();//执行到这里后屏幕可以亮起来,可是之后就无法在继续刷屏,这里是把reset的初始化操作复制过来再做一遍

    RETAILMSG(1,(TEXT("-- Exit  OEMPOWER.\r\n")));
    s2440IOP->rGPFDAT = (0xA << 4);//根据LED的显示状态表明,程序有跑到这里.是否还要调用什么函数?
}


请大家帮忙看看问题可能会是哪里?

回复评论 (10)

系统已经回到这里就好办了,查一下到底是跑了哪个函数后出了问题
系统Resume的过程基本上是这样的
OEMPowerOff-->Driver Power Handler-->Driver IOCTL
点赞  2008-12-8 20:19
已经能亮,说明LCD 初始化中对于背光(backlight)的控制已经有效果了。
然后用示波器量一下对应的点频(PCLK),行频(HSYNC),场频(VSYNC)是否都正常工作了。
点赞  2008-12-8 22:52
引用: 引用 1 楼 hzdysymbol 的回复:
系统已经回到这里就好办了,查一下到底是跑了哪个函数后出了问题
系统Resume的过程基本上是这样的
OEMPowerOff-->Driver Power Handler-->Driver IOCTL


请问一下,Driver Power Handler-->Driver IOCTL 这个应该要怎么做,OEMPowerOff会跳转到哪个函数里去执行呢
点赞  2008-12-9 08:57
等待高人,再顶一下
点赞  2008-12-10 08:28
OEMPowerOff后会进到各个驱动的PowerHandler里啊,前面不写得这么清楚了吗?
PowerHandler跑完后会进到PM.dll里面,然后PM里面会调用各个驱动的IOCTL来设置相应的各驱动的电源状态
点赞  2008-12-10 09:11
@linchunfu
你的问题解决了吗?我现在也遇到了同样的问题,不知道怎么解决,希望指教一下,谢谢!
@hzdysymbol
LCD驱动似乎找不到PowerHandler和IOCTL啊
点赞  2009-4-1 11:24
引用: 引用 5 楼 hzdysymbol 的回复:
OEMPowerOff后会进到各个驱动的PowerHandler里啊,前面不写得这么清楚了吗?
PowerHandler跑完后会进到PM.dll里面,然后PM里面会调用各个驱动的IOCTL来设置相应的各驱动的电源状态


哦,这个很强大。学了不少。

其实会调用驱动中的XXX_PowerOn等函数设置电源状态吧。我打印信息会这样的。
点赞  2009-4-1 11:36
看loader中对clk设定是否正确。
点赞  2009-4-7 23:01
请问问题解决了吗?遇到同样问题了,系统唤醒后LCD白屏,无法显示图像。
点赞  2009-5-31 18:47
ding
点赞  2009-5-31 21:13
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复