lljj462
驱动牛犊
驱动牛犊
  • 注册日期2005-08-08
  • 最后登录2008-08-06
  • 粉丝0
  • 关注0
  • 积分576分
  • 威望83点
  • 贡献值0点
  • 好评度79点
  • 原创分0分
  • 专家分0分
阅读:1817回复:5

如果某个应用程序运行异常,或者出错了,ce系统能够知道吗?怎样知道?

楼主#
更多 发布于:2007-01-04 10:24
  如果某个应用程序运行异常,或者出错了,ce系统能够知道吗?怎样知道?
我该以什么作为依据让系统复位,以便保持ce上的所有应用程序一直都正常运行呢?

谢谢了!
zhengshijie
驱动小牛
驱动小牛
  • 注册日期2003-07-11
  • 最后登录2009-03-18
  • 粉丝1
  • 关注0
  • 积分8分
  • 威望217点
  • 贡献值0点
  • 好评度199点
  • 原创分3分
  • 专家分0分
沙发#
发布于:2007-01-04 11:56
以ARM为例,它有reset,SWI,undefine instruction,prefetch abort,data abort,irq ,firq等向量入口,这些异常向量入口会在WINCE500/private/winceos/coreos/nk/kernel/arm/armtrap.s中注册异常处理函数,所以当某个应用程序出现prefetch abort,data abort,会进入相应的异常向量入口,调用相应的异常处理函数,最终都会调用WINCE500/private/winceos/coreos/nk/kernel/arm/mdarm.c->PTHREAD
HandleException(
    PTHREAD pth,
    int id,
    ulong addr,
    ushort info
    )
你可以在这个函数中添加自己特殊处理。
lljj462
驱动牛犊
驱动牛犊
  • 注册日期2005-08-08
  • 最后登录2008-08-06
  • 粉丝0
  • 关注0
  • 积分576分
  • 威望83点
  • 贡献值0点
  • 好评度79点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-01-04 15:33
to zhengshijie:

  多谢你了

 你的意思是,应用程序运行时有问题了,会产生了某个异常,比如:Data Abort,但有没有应用程序出问题了,但不是产生了异常了,比如应用程序无响应了,这个时候怎么处理呢?

 另外,你以arm为例,当产生了异常时,修改HandleException函数,可该函数在private目录下的文件中,该目录中的文件编译不了啊,也就是说,修改该目录中的文件,却不能编译的。能不能修改public目录下处理异常的函数呢,该函数会在那个文件中呢?
  谢谢了,非常感谢!
zhengshijie
驱动小牛
驱动小牛
  • 注册日期2003-07-11
  • 最后登录2009-03-18
  • 粉丝1
  • 关注0
  • 积分8分
  • 威望217点
  • 贡献值0点
  • 好评度199点
  • 原创分3分
  • 专家分0分
地板#
发布于:2007-01-04 16:29
如果是上层应用程序的话,可以使用try-except来获取异常,添加自己的处理
try
{
    // try block
}
except (FilterFunction(GetExceptionCode())
{
    // exception handler block
}

可以参考帮助文档了解如何使用。
lljj462
驱动牛犊
驱动牛犊
  • 注册日期2005-08-08
  • 最后登录2008-08-06
  • 粉丝0
  • 关注0
  • 积分576分
  • 威望83点
  • 贡献值0点
  • 好评度79点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-01-05 08:18
多谢 zhengshijie !

  如果按 try ... except...方式的话,自己的每个应用程序都要加,很麻烦呀,也不方便管理。比如,最好是有一个监控程序,监控应用程序的执行或者监控wince系统的运行情况。

  应用程序出错了,是不是一定会产生异常,产生的是什么异常呢?怎么去捕捉呢?

  有没有一个标准,或者说,什么情况下,才能判断一个应用程序运行不正常,异常了,出错了呢?

  另外,如何监控wince系统的运行呢?比如:怎么知道wince系统出现了异常?怎么知道wince系统的CPU占用了100%?怎么知道wince系统的memory占用了100%?

  当wince系统出现了异常,在哪里可以捕捉,进行处理呢?
zhengshijie
驱动小牛
驱动小牛
  • 注册日期2003-07-11
  • 最后登录2009-03-18
  • 粉丝1
  • 关注0
  • 积分8分
  • 威望217点
  • 贡献值0点
  • 好评度199点
  • 原创分3分
  • 专家分0分
5楼#
发布于:2007-01-11 16:13
内存使用情况可以参考控制面板的【系统】里的内存,有关性能监控的方面,你查WINCE5.0的帮助文档,remote monitor.
另外,我有个问题想跟你交流一下,昨天我的板子换了NAND FLASH K9F1G08,128M的,因为搜索帖子,发现你曾经做过这个大页面FLASH的驱动,不知你是怎样实现的?
游客

返回顶部