当前位置: 代码迷 >> WinCE >> wince6.0 下“Undefined Instruction”,是什么有关问题
  详细解决方案

wince6.0 下“Undefined Instruction”,是什么有关问题

热度:442   发布时间:2016-04-28 13:55:13.0
wince6.0 下“Undefined Instruction”,是什么问题
wince6.0运行一个晚上后出现,以前没有遇到过,cpu:6410


Exception 'Undefined Instruction'(1) Thread-Id=01ec0002(pth=85c6b1a4) PC=8012e9c4 BVA=d2c4efe8, dwInfo = 00000807
 R0=00000000 R1=0000fffc R2=6000001f R3=ffffc800
 R4=d07efc44 R5=85c6b1a4 R6=00000000 R7=00000000
 R8=00000002 R9=00000000 R10=00000000 R11=d07efe2c
R12=8012e9c4 SP=d07efc2c Lr=8012e9c4 Psr=6000001f
Exception 'Undefined Instruction'(1) Thread-Id=01ec0002(pth=ffffc638) PC=80107028 BVA=d2c4efe8, dwInfo = 00000807
 R0=00000065 R1=b2b06000 R2=b2a0f800 R3=00000021
 R4=817671a4 R5=00003e46 R6=817671c4 R7=00000000
 R8=00000001 R9=00000000 R10=00000000 R11=d07efe2c
R12=80113ea8 SP=ffffc788 Lr=8010ba88 Psr=80000093
Exception 'Undefined Instruction' (1): Thread-Id=01ec0002(pth=85c6b1a4), Proc-Id=00400002(pprc=81769308) 'NK.EXE', VM-active=05e00002(pprc=823c3840) 'servicesd.exe'
PC=80107028(NK.EXE+0x00007028) RA=8010ba88(NK.EXE+0x0000ba88) SP=ffffc788, BVA=00000000
Exception 'Data Abort'(4) Thread-Id=01ec0002(pth=85c6b1a4) PC=80116280 BVA=00000000, dwInfo = 00000007
 R0=00000000 R1=ffffc57c R2=00000000 R3=ffffffe3
 R4=c000001d R5=80000000 R6=00000000 R7=ffffc5b4
 R8=8010ba84 R9=00000438 R10=0000f000 R11=8010ba88
R12=ffffc5ac SP=ffffc51c Lr=c0037a54 Psr=2000001f
Exception 'Data Abort'(4) Thread-Id=01ec0002(pth=85c6b1a4) PC=80116280 BVA=00000000, dwInfo = 00000007
 R0=00000000 R1=ffffc57c R2=00000000 R3=ffffffe3
 R4=c000001d R5=80000000 R6=00000000 R7=ffffc5b4
 R8=8010ba84 R9=00000438 R10=0000f000 R11=8010ba88
R12=ffffc5ac SP=ffffc51c Lr=c0037a54 Psr=2000001f
Exception 'Data Abort' (4): Thread-Id=01ec0002(pth=85c6b1a4), Proc-Id=00400002(pprc=81769308) 'NK.EXE', VM-active=05e00002(pprc=823c3840) 'servicesd.exe'
PC=80116280(kernel.dll+0x00006280) RA=c0037a54(k.coredll.dll+0x00017a54) SP=ffffc51c, BVA=00000000

------解决方案--------------------
启动过程中么?还是运行过程中
------解决方案--------------------
都是cpu的异常,一个是'Undefined Instruction',未定义指令异常

一个是'Data Abort'数据终止异常

我的想法是:

楼主运行一个晚上,有没有运行什么APP?如果运行了某个APP,就重点查这个APP。

肯定存在指针,或者错误的内存操作等问题。

如果没有运行APP,光运行系统。

那就是驱动程序里面的代码有问题。

出现这个不用怀疑别的,就是自己添加的代码有问题。

挨个去掉驱动,看看去掉哪个驱动之后,不出现异常了,那就是它的问题了。再细查它的代码。


------解决方案--------------------
上面是一种方法。

还有就是像Windows的这种崩溃,可以结合串口信息,和Build程序时生成的MAP,PDB等文件查找问题的来源。不过要有一定的经验。

贴几篇文章,楼主参考下。我还是倾向于像3楼那样查。再看看大侠们的解答。

如何诊断Windows CE的应用程序崩溃 
http://www.cnblogs.com/singlerace/archive/2008/10/16/1311842.html

如何诊断Windows CE的应用程序崩溃(续) 
http://www.cnblogs.com/singlerace/archive/2009/02/26/1396366.html

Process Explorer for WinCE:揭示Windows CE系统运行时状态的强力工具 
http://www.cnblogs.com/singlerace/archive/2008/10/16/1311801.html
------解决方案--------------------
解决引导内核遇到undefined instruction的错误

2.8.14. Undefined instruction

Undefined Instruction in "_fp_init()"
------解决方案--------------------
这种问题,一般都是操作越界导致的
  相关解决方案