Dear All,
I met a big problem on my mips32 wince 5.0 tiny kernel platform, please help
me!
1)When load filesys.exe, exception 004 occus. The following is the debug
message:
0x87f72a88: Exception 004 Thread=87f72a88 Proc=07f72c9a 'filesys.exe'
0x87f72a88: AKY=00000003 PC=fffffb98(???+0xfffffb98)
RA=03f71ae4(coredll.dll+0x00021ae4) BVA=fffffb98
0x87f72a88: NKDispatchException: returning failure. Flags=0
0x87f72a88:
Unhandled exception c0000005:
0x87f72a88: Terminating thread 87f72a88
2)And after a while it occus again in nk.exe:
Exception 004 Thread=87f74d30 Proc=07f7f002 'NK.EXE'
0x87f74d30: AKY=00000001 PC=fffffc00(???+0xfffffc00)
RA=8085cd08(NK.EXE+0x0005cd08) BVA=fffffc00
0x87f74d30: NKDispatchException: returning failure. Flags=0
0x87f74d30:
Unhandled exception 80000002:
0x87f74d30: Terminating thread 87f74d30
0x87f74d30: Secondary thread in proc 07f7f002 (NK.EXE) faulted!
0x87f74d30: Terminating process 07f7f002 (NK.EXE)!
0x87f74d30: Invalid handle: Set=1 Method=9
And then I can not see any debug message from kernel or file system. The OS
does not work any more.
But my timer interruupt handler still works because I can see it's debug
message.
The kernel(nk.exe) and file system(filesys.exe) do not work properly.
I looked up in the CEPB help, exception 004 is: An address is unaligned.
How to fighure out what code cause this kind of exception?
How to location the error by the debug message above,such as
(RVA:coredll.dll+0x00021ae4)?
I have no idea about this.
Any anyone help me? Thanks a lot!!!
BTW: the following are the whole debug message:
Windows CE Kernel for MIPS Built on Jun 24 2004 at 18:22:07
+OEMInit
+g_oalCacheInfo.L1ISize=(65536)
+g_oalCacheInfo.L1ILineSize=(32)
+g_oalCacheInfo.L1INumWays=(4)
+g_oalCacheInfo.L1ISetsPerWay=(1024)
+g_oalCacheInfo.L1DSize=(65536)
+g_oalCacheInfo.L1DLineSize=(32)
+g_oalCacheInfo.L1DNumWays=(4)
+g_oalCacheInfo.L1DSetsPerWay=(1024)
+OALTimerInit(1, 100000, 200)
+g_oalTimer.countsPerMSec=(100000)
+g_oalTimer.countsMargin=(200)
+g_oalTimer.msecPerSysTick=(1)
+g_oalTimer.countsPerSysTick=(100000)
+g_oalTimer.actualMSecPerSysTick=(1)
+g_oalTimer.actualCountsPerSysTick=(100000)
+++OALArgsQuery(4)
-OALArgsQuery(pData = 0x00000000)
+++OALTimerInitCount
---OALTimerInitCount
-OEMInit
Error Reporting Memory Reserved, dump size = 00020000
Booting Windows CE version 5.00 for (MIPS32)
MIPS16 Instructions NOT Supported
&pTOC = 8080109c, pTOC = 808a3c4c, pTOC->ulRamFree = 80c8a000, MemForPT =
00000000
Old or invalid version stamp in kernel structures - starting clean!
Configuring: Primary pages: 29421, Secondary pages: 0, Filesystem pages =
14710
++++OEMCacheRangeFlush(0x00000000, 0, 0x00000004)
----OEMCacheRangeFlush(0x00000000, 0, 0x00000004)
Booting kernel with clean memory configuration:
Memory Sections:
[0] : start: 80c8b000, extension: 00008000, length: 072ed000
Windows CE KernelInit
++++OEMCacheRangeFlush(0x00000000, 0, 0x00000001)
----OEMCacheRangeFlush(0x00000000, 0, 0x00000001)
Updated eptr->e32_vsize to = 000a4000
Scheduling the first thread.
0x87f7f028: KernelInit2: pCurThread=87f7f028 hCurThread=07f7f212
hCurProc=07f7f002, KernelInit = 8083370c
0x87f7f028: first = 01fb0000, last = 02000000, SharedDllBase = 03d20000
0x87f7f028: ++++OEMCacheRangeFlush(0x00000000, 0, 0x00000018)
0x87f7f028: ----OEMCacheRangeFlush(0x00000000, 0, 0x00000018)
0x87f7f028: ++++OEMCacheRangeFlush(0x00000000, 0, 0x00000018)
0x87f7f028: ----OEMCacheRangeFlush(0x00000000, 0, 0x00000018)
0x87f7f028: ++++OEMCacheRangeFlush(0x00000000, 0, 0x00000018)
0x87f7f028: ----OEMCacheRangeFlush(0x00000000, 0, 0x00000018)
0x87f7f028: ++++OEMCacheRangeFlush(0x00000000, 0, 0x00000018)
0x87f7f028: ----OEMCacheRangeFlush(0x00000000, 0, 0x00000018)
0x87f7f028: ++++OEMCacheRangeFlush(0x00000000, 0, 0x00000004)
0x87f7f028: ----OEMCacheRangeFlush(0x00000000, 0, 0x00000004)
0x87f7f028: +OALIoCtlHalPostinit Code=(0x10100B4)
0x87f7f028: +OEMGetRealTime
0x87f7f028: lining:: ticks = -2013794264
0x87f7f028: -OEMGetRealTime(rc = 1 2003/1/1 12:0:0.155)
0x87f7f028: +OEMGetRealTime
0x87f7f028: lining:: ticks = -2013794264
0x87f7f028: -OEMGetRealTime(rc = 1 2003/1/1 12:0:0.180)
0x87f7f028: +OEMGetRealTime
0x87f7f028: lining:: ticks = -2013794264
0x87f7f028: -OEMGetRealTime(rc = 1 2003/1/1 12:0:0.204)
0x87f74800: +OEMGetRealTime
0x87f74800: lining:: ticks = -2013837312
0x87f74800: -OEMGetRealTime(rc = 1 2003/1/1 12:0:0.228)
0x87f74800: +OEMGetRealTime
0x87f74800: lining:: ticks = -2013837312
0x87f74800: -OEMGetRealTime(rc = 1 2003/1/1 12:0:0.252)
0x87f74d30: +OEMGetRealTime
0x87f74d30: lining:: ticks = -2013835984
0x87f74d30: -OEMGetRealTime(rc = 1 2003/1/1 12:0:0.276)
0x87f72828: ++++OEMCacheRangeFlush(0x00000000, 0, 0x00000003)
0x87f72828: ----OEMCacheRangeFlush(0x00000000, 0, 0x00000003)
0x87f72828: ++++OEMCacheRangeFlush(0x00000000, 0, 0x00000018)
0x87f72828: ----OEMCacheRangeFlush(0x00000000, 0, 0x00000018)
0x87f72a88: ++++OEMCacheRangeFlush(0x04080000, 4096, 0x00000003)
0x87f72a88: ----OEMCacheRangeFlush(0x04080000, 4096, 0x00000003)
0x87f72a88: ++++OEMCacheRangeFlush(0x00000000, 0, 0x00000018)
0x87f72a88: ----OEMCacheRangeFlush(0x00000000, 0, 0x00000018)
0x87f72a88: ++++OEMCacheRangeFlush(0x00000000, 0, 0x00000018)
0x87f72a88: ----OEMCacheRangeFlush(0x00000000, 0, 0x00000018)
0x87f72a88: ++++OEMCacheRangeFlush(0x00000000, 0, 0x00000018)
0x87f72a88: ----OEMCacheRangeFlush(0x00000000, 0, 0x00000018)
0x87f72a88: ++++OEMCacheRangeFlush(0x00000000, 0, 0x00000018)
0x87f72a88: ----OEMCacheRangeFlush(0x00000000, 0, 0x00000018)
0x87f72a88: ++++OEMCacheRangeFlush(0x00000000, 0, 0x00000018)
0x87f72a88: ----OEMCacheRangeFlush(0x00000000, 0, 0x00000018)
0x87f72a88: +OEMGetRealTime
0x87f72a88: lining:: ticks = -2013844856
0x87f72a88: -OEMGetRealTime(rc = 1 2003/1/1 12:0:0.477)
0x87f72828: ++++OEMCacheRangeFlush(0x00000000, 0, 0x00000003)
0x87f72828: ----OEMCacheRangeFlush(0x00000000, 0, 0x00000003)
0x87f72828: ++++OEMCacheRangeFlush(0x00000000, 0, 0x00000018)
0x87f72828: ----OEMCacheRangeFlush(0x00000000, 0, 0x00000018)
0x87f72a88: CertMod.dll not found, using old OEM Trust Model
0x87f72a88: Exception 004 Thread=87f72a88 Proc=07f72c9a 'filesys.exe'
0x87f72a88: AKY=00000003 PC=fffffb98(???+0xfffffb98)
RA=03f71ae4(coredll.dll+0x00021ae4) BVA=fffffb98
0x87f72a88: NKDispatchException: returning failure. Flags=0
0x87f72a88:
Unhandled exception c0000005:
0x87f72a88: Terminating thread 87f72a88
0x87f72a88: +OEMGetRealTime
0x87f72a88: lining:: ticks = -2013844856
0x87f72a88: -OEMGetRealTime(rc = 1 2003/1/1 12:0:0.612)
0x87f74d30: Exception 004 Thread=87f74d30 Proc=07f7f002 'NK.EXE'
0x87f74d30: AKY=00000001 PC=fffffc00(???+0xfffffc00)
RA=8085cd08(NK.EXE+0x0005cd08) BVA=fffffc00
0x87f74d30: NKDispatchException: returning failure. Flags=0
0x87f74d30:
Unhandled exception 80000002:
0x87f74d30: Terminating thread 87f74d30
0x87f74d30: Secondary thread in proc 07f7f002 (NK.EXE) faulted!
0x87f74d30: Terminating process 07f7f002 (NK.EXE)!
0x87f74d30: Invalid handle: Set=1 Method=9
0x87f74d30: +OEMGetRealTime
0x87f74d30: lining:: ticks = -2013835984
0x87f74d30: -OEMGetRealTime(rc = 1 2003/1/1 12:0:0.716)
0x87f72828: Main thread in proc 07f72c9a faulted, Excpetion code = c0000005,
Exception Address = fffffb98!
0x87f74d30: +OEMGetRealTime
0x87f72828: Main thread in proc 07f72c9a faulted, WMGR not on line!
0x87f74d30: lining:: ticks = -2013835984
0x87f72828: Main thread in proc 07f72c9a faulted - cleaning up!
0x87f74d30: -OEMGetRealTime(rc = 1 2003/1/1 12:0:0.759)
0x87f72828: +OEMGetRealTime
0x87f72828: lining:: ticks = -2013845464
0x87f72828: -OEMGetRealTime(rc = 1 2003/1/1 12:0:0.806)
0x87f72828: +OEMGetRealTime
0x87f72828: lining:: ticks = -2013845464
0x87f72828: -OEMGetRealTime(rc = 1 2003/1/1 12:0:0.830)
0x87f74800: ++++OEMCacheRangeFlush(0x00000000, 0, 0x00000003)
0x87f74800: ----OEMCacheRangeFlush(0x00000000, 0, 0x00000003)
0x87f74800: ++++OEMCacheRangeFlush(0x00000000, 0, 0x00000018)
0x87f74800: ----OEMCacheRangeFlush(0x00000000, 0, 0x00000018)
0x87f6fce0: ++++OEMCacheRangeFlush(0x00000000, 0, 0x00000003)
0x87f6fce0: ----OEMCacheRangeFlush(0x00000000, 0, 0x00000003)
0x87f6fce0: ++++OEMCacheRangeFlush(0x00000000, 0, 0x00000018)
0x87f6fce0: ----OEMCacheRangeFlush(0x00000000, 0, 0x00000018)
+++OALTimerUpdate
---OALTimerUpdate
+++OALTimerUpdate
---OALTimerUpdate
+++OALTimerUpdate
---OALTimerUpdate
+++OALTimerUpdate
---OALTimerUpdate
+++OALTimerUpdate
---OALTimerUpdate
+++OALTimerUpdate
---OALTimerUpdate
+++OALTimerUpdate
---OALTimerUpdate
+++OALTimerUpdate
---OALTimerUpdate
+++OALTimerUpdate
---OALTimerUpdate
+++OALTimerUpdate
---OALTimerUpdate
+++OALTimerUpdate
---OALTimerUpdate