How much RAM does the trace recorder need?

Oct 19, 2013 |

(This answer is only applicable for Percepio’s own recorder library, used for e.g. FreeRTOS, OpenRTOS, SafeRTOS and Micrium µC/OS)

It depends if you are using snapshot or streaming mode. Snapshot mode requires a decent RAM buffer if you want a long trace. A RAM buffer of 5-10 KB can give a trace of 50-200 ms, depending on the rate of events in you system. If you have more RAM available, you can get traces of a few seconds. For example, in a demo project we were able to record about 7 seconds using 70 KB of RAM (17,500 events and 2500 events/second, a fairly normal rate). Note that snapshot recording can use a ring-buffer configuration, so you are not limited to the first recorded events, but can monitor the system continuously and get the last events leading up to the current point.

In streaming mode, some stream ports (like for SEGGER J-Link) uses a small RAM buffer for temporary storage. The size of this buffer depends on streaming interface speed and the amount of trace data that is produced, but 1-2 KB is often sufficient.

Some additional RAM is required in both cases to store symbol information and object states, usually another kilobyte.