linchunfu
驱动牛犊
驱动牛犊
  • 注册日期2008-08-22
  • 最后登录2010-01-11
  • 粉丝0
  • 关注0
  • 积分19分
  • 威望125点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1808回复:3

Wince5.0唤醒后进入OEMPowerOff后跑完会自动调用XXX_PowerUP吗

楼主#
更多 发布于:2008-12-09 11:53
在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的显示状态表明,程序有跑到这里.是否还要调用什么函数?
}

Wince5.0唤醒后进入OEMPowerOff后跑完会自动调用XXX_PowerUP吗,我试着在
OEMPowerOff里调用没有作用,请大侠指点!!!
linchunfu
驱动牛犊
驱动牛犊
  • 注册日期2008-08-22
  • 最后登录2010-01-11
  • 粉丝0
  • 关注0
  • 积分19分
  • 威望125点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-12-10 08:34
没有高人进来看一下吗?!!!
mjf1986
驱动牛犊
驱动牛犊
  • 注册日期2008-10-09
  • 最后登录2009-04-03
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2009-04-01 14:29
我也在做唤醒,我的是mini2440+wince5.0,唤醒后执行到
 /* Recover Process, Load CPU Regs       */
    CPULoadRegs(CPUBackupRegs);
    OEMInitDebugSerial();//bymjf
    RETAILMSG(1,(TEXT("\r\n***CPULoadRegs.***bymjf.\r\n"))); //bymjf
    /* Interrupt Clear                      */
    s2440IOP->rEINTPEND  = s2440IOP->rEINTPEND;
    s2440LCD->rLCDSRCPND = s2440LCD->rLCDSRCPND;
    s2440LCD->rLCDINTPND = s2440LCD->rLCDINTPND;
    s2440INT->rSUBSRCPND = s2440INT->rSUBSRCPND;
//    s2440INT->rSRCPND    = s2440INT->rSRCPND;
//    s2440INT->rINTPND    = s2440INT->rINTPND;

    NANDInit();
    RETAILMSG(1,(TEXT("\r\n***NANDInit.***bymjf.\r\n"))); //bymjf
    
    //InitTimer();//bymjf
    CPUClearCS8900();
    RETAILMSG(1,(TEXT("\r\n***CPUClearCS8900.***bymjf.\r\n")));
    //bymjf for test RTC
    //ADCenable();//bymjf
    LEDbymjf(); //bymjf
    RETAILMSG(1,(TEXT("\r\n***-- Exit  OEMPOWER.***\r\n")));
    RETAILMSG(1,(TEXT("s2440INT->rSRCPND = 0x%x \r\n"), s2440INT->rSRCPND));
    RETAILMSG(1,(TEXT("s2440INT->rINTPND = 0x%x \r\n"), s2440INT->rINTPND));
    RETAILMSG(1,(TEXT("s2440INT->rINTMOD = 0x%x \r\n"), s2440INT->rINTMOD));
    RETAILMSG(1,(TEXT("s2440INT->rINTMSK = 0x%x \r\n"), s2440INT->rINTMSK));
超级终端能打印出信息,但是并没有去调用XXX_powerUp(),郁闷中
tracera
禁止发言
禁止发言
  • 注册日期2006-01-09
  • 最后登录2018-09-25
  • 粉丝8
  • 关注0
  • 积分-5788分
  • 威望135321点
  • 贡献值0点
  • 好评度625点
  • 原创分1分
  • 专家分0分
  • 社区居民
地板#
发布于:2009-04-02 10:23
用户被禁言,该主题自动屏蔽!
游客

返回顶部