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()"
[解决办法]
这种问题,一般都是操作越界导致的