Hi,
I'm trying to debug a program for a MPC5744P using iSystem's Bluebox and winIDEA. However it seems to crash when it is executing the initialization dissassembly code. Specifically, it seems to crash when it enables the MSR.ME bit:
;#*************************** Enable ME Bit in MSR *****************************
mfmsr r6
e_or2i r6, 0x1000
mtmsr r6
This bit seems to be used to enable Asynchronous Machine Check interrupts. The moment I run this section the program simply jumps to addess 0x0000 0010. I don't know why this happens.
I can skip the execution of this whole section, but I believe this might be causing some other problems with the code I'm trying to debug.
Anyone has had a similar problem before?
已解决! 转到解答。
Hello,
Yes, ME enable machine check interrupts.
So I expect that you have already active and pending machine check interrupt and once you enable ME, it is immediately processed and executed.
Since it is jumping to address 0x10 and there it crash, I expect you do not have any handlers for IVOR1 vector in your code.
Have a look at 15.8 Exceptions chapter of reference manual.
Best regards,
Peter
Hi,
Thanks for the answer. You were right. There was an exception in the code, and it seems it was still pending even after I reflashed the program. So when the program enabled MSR.ME it it jumped to the address 0x10.
Hello,
Yes, ME enable machine check interrupts.
So I expect that you have already active and pending machine check interrupt and once you enable ME, it is immediately processed and executed.
Since it is jumping to address 0x10 and there it crash, I expect you do not have any handlers for IVOR1 vector in your code.
Have a look at 15.8 Exceptions chapter of reference manual.
Best regards,
Peter