CE6.0 VMProcessPageFault Error: Page fault occurred while in power handler!

hzdysymbol 2008-11-10 10:22:08
在CE6.0进Sleep的时候经常会出现下面的错误,而且这个错误不是每次都会出现,开机后马上进Sleep一般都没有问题,但操作一会儿后就会发生该错误,而且系统Down机。
VMProcessPageFault Error: Page fault occurred while in power handler! Address = 0x40304228
ERROR: Power Handler function yield to low priority thread.
VMProcessPageFault Error: Page fault occurred while in power handler! Address = 0x40493384
VMProcessPageFault Error: Page fault occurred while in power handler! Address = 0x40492338
VMProcessPageFault Error: Page fault occurred while in power handler! Address = 0x404b7408
VMProcessPageFault Error: Page fault occurred while in power handler! Address = 0x40497764
VMProcessPageFault Error: Page fault occurred while in power handler! Address = 0x40495fe4
VMProcessPageFault Error: Page fault occurred while in power handler! Address = 0x4049601c
在网上查了有人说是由于Compress的原因,也有人说是由于在Power Handler里面调用了系统API
我想问一下有人遇到这样的问题吗?
有没有办法知道后面的Address对应的地址是哪一个DLL?
多谢了
...全文
500 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
stone8312 2011-12-12
  • 打赏
  • 举报
回复
补充两句
1.是含“xxx_PowerUp”和“xxx_PowerDown”的dll
2.http://www.cnblogs.com/Torres_fans/archive/2010/04/23/1718700.html中是通过修改common.bib,这种方法不是很好,一般都建议不要修改PUBLIC和PRIVATE下的文件,修改config.bib是较明智的选择...
stone8312 2011-12-12
  • 打赏
  • 举报
回复
用以下批处理,可以检查所有含“Power”函数的dll

@echo off
del PowerDll.txt
for %%i in (*.dll) do (
echo %%i >>PowerDll.txt
dumpbin /exports %%i|find "Power">>PowerDll.txt
)
%COMSPEC% /c start notepad PowerDll.txt

然后对照common.bib,把有“Power”函数的dll加入config.bib中,并加上“M”,最好是把条件一起加上去。
这样做的具体原因见:http://www.cnblogs.com/Torres_fans/archive/2010/04/23/1718700.html
for_young 2009-08-24
  • 打赏
  • 举报
回复
楼主怎么搞定的?
hzdysymbol 2008-11-21
  • 打赏
  • 举报
回复
经过了两周的努力终于把问题找出来了,确实跟BSP没有关系,但跟Binfs有关
而且跟Pageable有关
hzdysymbol 2008-11-17
  • 打赏
  • 举报
回复
谢谢楼上的答复
已经试过清空掉所有Driver中PowerHandler函数,看起来应该是跟PowerHandler不一定有直接关系
线程优先级设为最高倒没有检查过,查查看看。
songtitan 2008-11-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 hzdysymbol 的帖子:]
在CE6.0进Sleep的时候经常会出现下面的错误,而且这个错误不是每次都会出现,开机后马上进Sleep一般都没有问题,但操作一会儿后就会发生该错误,而且系统Down机。
VMProcessPageFault Error: Page fault occurred while in power handler! Address = 0x40304228
ERROR: Power Handler function yield to low priority thread.
VMProcessPageFault Error: Page fault occurred while in power handler! Address = 0x4049338…
[/Quote]
从CE 5的经验来看,是在Power Handler里面调用了系统API。
楼主查一下有没有线程是设置成最高的(0),如果有的话,就肯定出错了。
hzdysymbol 2008-11-16
  • 打赏
  • 举报
回复
再顶顶自己的这个问题,下周准备再花点时间来研究一下
希望大家能提供一些有用的信息,谢谢
hzdysymbol 2008-11-12
  • 打赏
  • 举报
回复
都跑第2页去了,顶起来请大家帮忙解决
hzdysymbol 2008-11-11
  • 打赏
  • 举报
回复
没人遇到这个问题吗?
我用的平台是PXA270的,大家在这平台上跑CE6.0稳定吗?
最近又发现跑了一些应用程序,然后进Suspend,就回不来了,Debug Kernel发现挂在函数NKPowerOffSystem->THRDSetPrio256
但如果不跑别的程序,Suspend/resume都是正常的
gooogleman 2008-11-10
  • 打赏
  • 举报
回复
楼主这个问题比较怪异,
哈哈,楼主以前帮过我好多忙,可惜我用5.0,没有遇到过这种问题,不能帮你忙。只能帮你顶顶了。

不过我想问,以前的NK会这样吗?还是你改动了程序才会变成这个样子的?
hzdysymbol 2008-11-10
  • 打赏
  • 举报
回复
基本上BSP里所有的驱动都已经拿掉了,只剩Display和Touch,而且这两个驱动里的PowerHandler函数为空
而且现在发现跟Binfs有关,只要把整个Image Load到RAM跑的话,就没有问题
yashi 2008-11-10
  • 打赏
  • 举报
回复
错误提示应该已经指明了错误的方向,你应该检查自己的代码。

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧