System: Pending Misaligned Reads in the Pipeline After CPU Goes to Fault State
Preventing NMI Vector Fetch
Details
The NMI handler fails to execute when
three or more back-to-back C29 CPU faults caused by misaligned reads occur. When
more than two faults are in the CPU pipeline, the CPU does not fetch the NMI vector
as expected.
Workaround
Use ERAD-SEC counter:
- Choose ESM_GEN_EVENT as input to EPWMXBAR.
- Configure the ERAD-SEC1 counter in start-stop mode: start event as EPWMXBAR
event, stop event as SEC1 event itself. This counter will be counting SYSCLK
cycles.
- Configure the ERAD-SEC reference
register to generate a match event and trigger an NMI (INT_EN and NMI_EN bits in
SEC_CNTL register) on a count of 50.
- Configure ESM CPU1 to generate an NMI on the ERAD_CPU1_NMI event.