阅读:2099回复:2
Debug下编译的NK.bin正常,但是Release下出现异常
异常如下:
* Exception (user) : TLB (load or instruction fetch) * CAUSE = 0x00008008 STATUS = 0x00000002 EPC = 0x811222f8 ERROREPC = 0x00982500 BADVADDR = 0x00000010 |
|
沙发#
发布于:2010-02-06 11:15
请高手指点下,觉得应该是在运行.s汇编程序的时候,因为没有打印出任何消息。
|
|
板凳#
发布于:2010-02-10 14:58
终于搞定了,原来又是小问题引发的血案。
以前想搞清楚NK.exe的启动顺序,将KernelInit()中的 void KernelInit (void) { #ifdef DEBUG g_pNKGlobal->pfnWriteDebugString (TEXT("Windows CE KernelInit\r\n")); #endif APICallInit (); // setup API set HeapInit (); // setup kernel heap InitMemoryPool (); // setup physical memory PROCInit (); // initialize process VMInit (g_pprcNK); // setup VM for kernel THRDInit (); // initialize threads MapfileInit (); #ifdef DEBUG g_pNKGlobal->pfnWriteDebugString (TEXT("Scheduling the first thread.\r\n")); #endif } 的#ifdef DEBUG去掉了,后来觉得是无所谓的就没有改回去。 但是Release版本下,估计是g_pNKGlobal这个变量没有初始化,所以导致出错了,将其改回去就可以了。 |
|