How to debug with Serial Wire Viewer tracing on STM32MP15

Revision as of 08:23, 19 April 2021 by Registered User
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This article provides some setup information for STM32MP15 serie, debugging Cortex-M in Production Mode. It does not intend to cover all STM32CubeIDE Serial Wire Viewer (SWV) capabilities; complete information is available in (UM2609), chapter 4.

In that mode, the available console on the board (UART4) is used by Cortex-A Linux. The clock tree is managed by Linux and 'Trace clock' needed to setup SWO is available from Linux console with command:
awk '/ck_trace/{print $5}' /sys/kernel/debug/clk/clk_summary

In order to test, let's modify main.c file from a generated project with a looping variable 'i', as depicted hereafter.

File:Swv-traceclk-linux-main.png
Trace clock from Linux console



Then, setup debug configuration, enabling SWV and setting the clock: 133.25MHz here.

File:Swv-dbg-cfg.png
Debug Configuration with SWV enabled



Stopping Debug session, open Serial Wire Views: Window > Show View > Other... > SWV > SWV Trace Log & SWV Data Trace.
In SWV Trace Log > Configure Trace menu, setup Comparator 0 in order to spy variable 'i'.


Then start the trace

Resuming debug session gives inside SWV Data Trace view the corresponding graphic.

File:Swv-data-trace.png
SWV Data Trace Output