AnsweredAssumed Answered

Getting the fault instruction address using MCSRR0

Question asked by Jaejyn Shin on Oct 5, 2016
Latest reply on Oct 12, 2016 by Jaejyn Shin

Hello experts

I am testing MPU(Memory Protection Unit) using my MPC5777C device.

After accessing the protected memory area, I found that IP was jumped into the Machine Check Exception.

And then, I checked the MCSRR0 to get the instruction address which I coded to inject memory fault, but it was wrong.

The a few steps following address was written at the MCSRR0.


That is,

0x00960000: *(pValue) = 0x12121212; // MPU Error Injection Code

0x00960004: bla bla bla code ;

0x00960008: bla bla bla bla code ;

0x0096000C: bla bla bla bla bla code ;


I hoped that 0x0096000 is in the MCSRR0 after running 0x00960000, but 0x0096000C was written in the MCSRR0.

Someone said that it is due to the pipeline and 10-steps... but I couldn't understand his advice. (I am novice)


Is there someone who know the cause of it and especially can solve this problem ?

I want to get 0x0096000 address in the MCSRR0.


Thank you