3718|5

79

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

WinCE 5.0+2443平台上操作Flash同时挂起(Sleep或叫做Suspend)无法唤醒(Resume或Wakeup) [复制链接]

现象描述:
1. 工作正常情况下
    WinCE 5.0+2443平台上通过在PowerButton Driver里检测到HW Button有按下去的动作,会以PostMessage(HWND_BROADCAST,WM_OEM_POWERBUTTON_PRESSED,0,0)的方式广播一个消息WM_OEM_POWERBUTTON_PRESSED,AP_1.exe接收到该消息后调用SetSystemPowerState(NULL, POWER_STATE_SUSPEND, POWER_FORCE)使系统进入Sleep模式。(注:在Sleep之前会将外部中断0设置为唤醒源,HW Button弹到正常的状态时将会触发一个外部中断0)
    当HW Button有弹回到正常的状态将会触发一个外部中断,进而系统被唤醒。
    正常的连续测试100多次没有问题。
2. 唤醒不成功的情况下
    在一个AP_2.exe里面,以CreateFile的方式创建一个名为PerfTest.DAT的文件,然后向该文件以WriteFile的方式写入8M Byte的数据,分256次,每次写入32K Byte的数据,代码中会重复的运行该过程。
    同时运行AP_1.exe和AP_2.exe,也即向Flash中不停的写入数据的时候测试挂起和唤醒,系统能够正常的挂起,但是有概率的无法唤醒,平均每次测试3次,就有一次无法唤醒。
    从Debug信息上来看,所有Driver的×××_PowerUp都正常的调用起来并正常的退出,而后面就没有任何的信息了,正常情况下后面应该是驱动中建立的一些线程输出的Debug信息。
****************************************
   另外,将系统中所有的Driver,除了PowerManager,PowerButton以及Flash驱动外的其它设备驱动全部拿掉依然会出现这种问题;而且该平台上的Flash Driver和PowerManager与其它项目上的完全一致。
    再附加一点,通过JTAG方式查看并记录PC指针的值,发现虽然系统没有唤醒起来,但是PC指针一直在走,而且是在某一个范围内循环。不知道应该怎么样结合PlatformBuilder的Release目录下的.map文件来判断系统究竟在哪些函数中循环。


    如果有什么地方我没有说清楚的,随时在线等待您的提问。
此帖出自WindowsCE论坛

最新回复

谢谢哥们的回复 原因是这样的: Sleep的时候会向CPU发送Sleep的指令,而在发送指令的时候存储器的一次最小的操作没有完成,导致Resume回来的时候存储器进入了一种不稳定的状态,最终发生了上面看到的情况;   详情 回复 发表于 2009-1-8 19:42
点赞 关注
 

回复
举报

89

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
补充一点:
最新的调试结果,系统是Down在PlatformResumeSystem里面
此帖出自WindowsCE论坛
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
等着看结果。
此帖出自WindowsCE论坛
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

4
 
我也想了解
此帖出自WindowsCE论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

5
 
把你的代码贴出来帮你分析一下
此帖出自WindowsCE论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

6
 
谢谢哥们的回复
原因是这样的:
Sleep的时候会向CPU发送Sleep的指令,而在发送指令的时候存储器的一次最小的操作没有完成,导致Resume回来的时候存储器进入了一种不稳定的状态,最终发生了上面看到的情况;
此帖出自WindowsCE论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表