On Fri, Dec 12, 2025 at 04:50:52PM +0200, James Clark wrote:
[...]
quoted
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.