On Fri, Dec 12, 2025 at 04:50:52PM +0200, James Clark wrote:
[...]
The trace can be stopped on Fill mode (stop on wrap) or Stop on trigger, so it is not (only) about buffer error. In these cases, even though the trace unit is stopped, the buffer may still have space available, tracing can be directly re-enabled in interrupt handler, thus the COLLISION/PARTIAL flags are better choices.
I suppose this is the bit that I don't understand. If there is space left then why is the stop hit at all?
For instance, the buffer becomes empty in the middle:
+----------------------------+ |$$$$$$$| |$$$$$$$| +----------------------------+ ` base `wptr `limit
In this case, the trace unit stops when it reaches the limit. Meanwhile, the tool might have already read out the old trace data so we will get some free space, thus no need to set TRUNCATED flag.