Keil Logo


Information in this article applies to:

  • Serial-Wire Debug and Realtime Trace on Cortex-M3 based devices


The Logic Analyzer does not update variables properly when using Serial-Wire Realtime Trace on a Cortex-M3 based device.


Logic Analyzer shows data values graphically based on the captured Trace Records and presents another visualization of part of the Trace data. Defined variables in Logic Analyzer also directly control the Trace setup for Data Read/Write events.

Serial-Wire Realtime Trace has some restrictions on the traced variables:

  • Traced variable must be updated via explicit write/read access.

    It is not possible to trace variables which are changed via DMA. Variables must be read or written explicitly to generate a Trace Record.

  • Traced variable changes too often.

    For each change of the variable a Trace Record is created. If the Trace Records are sent too fast to ULINK2, then Trace: HW Buffer Overrun is displayed in the µVision Status Bar.


A possible solution to overcome the Trace restrictions is to use dedicated global variables for trace. For example:

  • Store the value of a variable used for DMA in a global variable used for Trace at a reasonable rate.
  • Store the value of a variable which change frequently in a global variable, then Trace that global variable at a more reasonable rate. For example, it may be enough to trace every 10th change.


Last Reviewed: Monday, October 13, 2008

Did this article provide the answer you needed?
Not Sure
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.