Part Number: AM62A7
Other Parts Discussed in Thread: SYSCONFIG
How to implement C7X.CPU3 MMU safety diagnostic?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
The safety Manual has following description:
The MMU (memory management unit) applies attributes to memory accesses, remaps virtual to physical addresses, and can deny accesses to certain regions based on configuration. If the CPU miscalculates an address due to a fault, and that address accesses a region that is blocked because of MMU programming, then the MMU provides diagnostic coverage by identifying the incorrect address.
To trigger MMU fault, we should perform a memory access to an address not mapped by the C7x MMU regions.
You can check the SysConfig of your project and look for the addresses not mapped by C7x MMU and perform a read operation to trigger an MMU fault.
Below code can be used to trigger MMU fault:
void mmuFaultTrigger(void){
volatile uint32_t *bad_ptr = (volatile uint32_t *)0xD0000000U; //unmapped address
volatile uint32_t dummy = *bad_ptr; }
The code goes to exception handler and following registers gets updated:
IERR= 0x0000000000000001
IEAR= 0x00000000D0000000
IESR= 0x0000000000010845