I'm having a problem using my PEMicro Tracelink with CodeWarrior, attempting to trace the execution of firmware on a Cortex-M0+. The trace ends prematurely, well before the 128Mb of configured trace buffer is filled. Oddly, each trace seems to stop after a different number of trace records, sometimes in the 3k range, sometime in the 5k range. When the trace stops, it halts the processor and drops me into the debugger at a return from a function, in code that I was expecting to be running.
I have the "Trace Max Buffer Size" option set to 128 Mb in the target settings, and in the Trace and Profile settings I have the "Trace Buffer Size" set to 0x2000, with "Continuous" selected.
I'm tracing third-party code, so I'm stuck without source, but I can set a breakpoint where I want to begin trace and that works well. The problem is that the assembly should clearly be looping for a very long time but something is happening that exits the loop and I want to know what. Interrupts are disabled, but I was hoping a trace would catch an interrupt if that was the culprit and I was simply misunderstanding the assembly.
Thanks in advance for the assistance.