S3C6410+wince6.0睡眠唤醒问题

时间:2022-09-11 14:36:43
各位好,目前遇到一个问题。向大家请教!
使用的是飞凌的“FET6410S”邮票孔核心板+wince6.0系统。
目前的状况是能够睡眠,唤醒后,无显示;按键、触摸屏、音频都正常,操作都有对应的系统声音。
从网上的资料看,显示程序:
睡眠应该调用“S3C6410Disp::DevPowerOff(void)”,我加入提示信息“RETAILMSG(1,(TEXT("[DISPDRV] S3C6410Disp::DevPowerOff() \r\n")));”
  S3C6410+wince6.0睡眠唤醒问题
唤醒应该调用“S3C6410Disp::DevPowerOn(void)”,我加入提示信息“RETAILMSG(1,(TEXT("[DISPDRV] S3C6410Disp::DevPowerOn() \r\n")));”
  S3C6410+wince6.0睡眠唤醒问题
但无论睡眠还是唤醒,都无任何提示信息。这两个程序都未调用。

飞凌提供的BSP源程序是用“S3C6410Disp::DrvEscape(SURFOBJ * pso, ULONG iEsc, ULONG cjIn, void *pvIn, ULONG cjOut, void *pvOut)”调用“S3C6410Disp::SetDisplayPowerState(VIDEO_POWER_STATE PowerState)”,
S3C6410+wince6.0睡眠唤醒问题
S3C6410+wince6.0睡眠唤醒问题
S3C6410+wince6.0睡眠唤醒问题
“S3C6410Disp::SetDisplayPowerState(VIDEO_POWER_STATE PowerState)”再去调用前两个程序。
S3C6410+wince6.0睡眠唤醒问题
S3C6410+wince6.0睡眠唤醒问题
而“DrvEscape”调用“SetDisplayPowerState”的相关参数项却都未定义,所以最终无法调用“DevPowerOff”、“DevPowerOn”。所以显示无法唤醒。
有个现象:1.睡眠时,因为屏幕显示内容消失,但有残影;2.睡眠时(关掉各种电源,包括液晶),电池消耗电流130mA,应该是有些功能没PowerOff。

各位,帮我分析分析。怎么实现睡眠,并成功唤醒。拜托!

7 个解决方案

#1


找飞凌的技术支持吧

#2


引用 1 楼 91program 的回复:
找飞凌的技术支持吧
飞凌技术支持的回答是,他们这个产品的驱动本身就没考虑睡眠唤醒,目前也不打算解决这个问题。

从现象上分析,给我的感觉是唤醒后,没有再加载显示。我能不能自己再加载一遍显示驱动?只是不知道自己怎么去加载。

#3


这种问题比较难解决,曾经做过S5PC100平台的,实现了休眠唤醒,楼主可以去找个S5PC100的BSP参考一下。

#4


看一下休眠唤醒时候的调用位置,一般是调用SetSystemPowerState(NULL, POWER_STATE_SUSPEND,POWER_FORCE) 时会调到OEMPowerOff(),这是固定模式

#5


谢谢各位答复。
目前,睡眠后,唤醒,显示已经正常。主要是参照了@loongembedded 的文章“WINCE6.0+ILI9806E休眠唤醒显示异常问题 ”
http://blog.csdn.net/loongembedded/article/details/19170799。但又有不同:
他是用的“DevPowerOn()”函数;我用的不是SPI串行接口初始化液晶,所有,不能用这个函数。我是并行24位接口,应该用video_driver.c中相关程序,但飞凌在这个文件中未作“PowerDown”、"PowerUp"处理。我自己增加了相关函数,实现了唤醒后正常显示。
S3C6410+wince6.0睡眠唤醒问题

#6


但目前存在两个问题:
1. 这是在没加载USB功能的前提下,加载USB,唤醒后死机。感觉是没有运行USB的上电功能,因为无运行该上电功能的起始输出信息。请问唤醒时如果让系统自动运行上电程序?
S3C6410+wince6.0睡眠唤醒问题
该程序非用户自定义的流驱动,非流驱动标准接口,怎么让系统唤醒时自动调用?
2. 非睡眠时,电池消耗电流380mA;睡眠时,电池消耗电流为130mA,未达到睡眠低功耗的目的。进入睡眠前,不知还有哪些功能未能实现PowerDown处理?

#7


目前最主要是降低睡眠功耗。进入睡眠我用的是这个指令,
SetSystemPowerState(NULL, POWER_STATE_SUSPEND, POWER_FORCE);
是否正确?

#1


找飞凌的技术支持吧

#2


引用 1 楼 91program 的回复:
找飞凌的技术支持吧
飞凌技术支持的回答是,他们这个产品的驱动本身就没考虑睡眠唤醒,目前也不打算解决这个问题。

从现象上分析,给我的感觉是唤醒后,没有再加载显示。我能不能自己再加载一遍显示驱动?只是不知道自己怎么去加载。

#3


这种问题比较难解决,曾经做过S5PC100平台的,实现了休眠唤醒,楼主可以去找个S5PC100的BSP参考一下。

#4


看一下休眠唤醒时候的调用位置,一般是调用SetSystemPowerState(NULL, POWER_STATE_SUSPEND,POWER_FORCE) 时会调到OEMPowerOff(),这是固定模式

#5


谢谢各位答复。
目前,睡眠后,唤醒,显示已经正常。主要是参照了@loongembedded 的文章“WINCE6.0+ILI9806E休眠唤醒显示异常问题 ”
http://blog.csdn.net/loongembedded/article/details/19170799。但又有不同:
他是用的“DevPowerOn()”函数;我用的不是SPI串行接口初始化液晶,所有,不能用这个函数。我是并行24位接口,应该用video_driver.c中相关程序,但飞凌在这个文件中未作“PowerDown”、"PowerUp"处理。我自己增加了相关函数,实现了唤醒后正常显示。
S3C6410+wince6.0睡眠唤醒问题

#6


但目前存在两个问题:
1. 这是在没加载USB功能的前提下,加载USB,唤醒后死机。感觉是没有运行USB的上电功能,因为无运行该上电功能的起始输出信息。请问唤醒时如果让系统自动运行上电程序?
S3C6410+wince6.0睡眠唤醒问题
该程序非用户自定义的流驱动,非流驱动标准接口,怎么让系统唤醒时自动调用?
2. 非睡眠时,电池消耗电流380mA;睡眠时,电池消耗电流为130mA,未达到睡眠低功耗的目的。进入睡眠前,不知还有哪些功能未能实现PowerDown处理?

#7


目前最主要是降低睡眠功耗。进入睡眠我用的是这个指令,
SetSystemPowerState(NULL, POWER_STATE_SUSPEND, POWER_FORCE);
是否正确?