Crash when debugging with iSystem BlueBox and enabling MSR.ME

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

Crash when debugging with iSystem BlueBox and enabling MSR.ME

跳至解决方案
491 次查看
mikel1
Contributor II

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?

0 项奖励
回复
1 解答
482 次查看
petervlna
NXP TechSupport
NXP TechSupport

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

在原帖中查看解决方案

0 项奖励
回复
2 回复数
476 次查看
mikel1
Contributor II

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.

0 项奖励
回复
483 次查看
petervlna
NXP TechSupport
NXP TechSupport

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

0 项奖励
回复