A FIFOFULL happens when the trace sources are producing more information than the trace infrastructure of the chip could handle. As a consequence, trace packets are lost.
You search for FIFOFULLs in the trace recording using the following command:
Trace.Find FIFOFULL /ALL
There are two solutions to avoid FIFOFULLs
1. The trace infrastructure needs to run faster to increase the bandwidth. Check that the trace clock is running at the fastest supported rate and use the maximum port speed and width.
2. The trace sources need to send less trace information.
- Disable all trace sources that are not required for the use case e.g. data trace or internal timing information.
- Selective program and/or data trace by using filters (TraceEnable, TraceData, TraceON, TraceOFF)
- Some processor architectures allow to stall the CPU or suppress the output of the data flow information if a FIFO overflow is likely to happen.
HARDERRORs means that the trace data is not valid. Possible reasons are:
- Trace port multiplexed with other IO functions (no valid trace data)
- Trace signal capturing failed (setup/hold time violations)
- Wrong version of PowerTrace module
- Target frequency too high
FLOWERRORs means that the traced data is not consistent with the code in the target memories. Possible reasons are:
- Wrong trace data (as result of HARDERRORs)
- Memory contents have changed (e.g. self modifying code)
You search for FLOWERRORs in the trace recording using the following command:
Trace.Find FLOWERROR /ALL
Refer for more informatio to the following documents: