2025-01-14 12:37 AM
Has anyone worked with the Serial Wire Viewer on an STM32H7RS board?
We've been using it on a F7 board, without too much issue, but we are stuck on this new board.
We've followed the usual steps :
- Enable Serial Wire Viewer (SWV) in Debug configuration (using the CPU Core Clock)
- Overwrite the "_write" function to use ITM_SendChar(...) (also tested that it works and calls it for every character we send with printf()
- Open the SWV ITM Data Console, enabling port 0 and start trace.
However, nothing appears in the console :(
We double checked the clock ..
We also tried to enable the debug mode for our application (although, it doesn't seem to change anything in the code)
But so far nothing..
One thing to note is that our application uses ThreadX and NetXDuo (I don't know if it has an impact...)
We are also using a simple STLINK-V3 connector to debug
2025-05-16 6:17 AM - edited 2025-05-16 6:17 AM
hello same issue on the H7S7 DK board
@KDJEM.1 Could you check if there is a bug in the chip for SWO ?
Using the HCLK or CPU Mhz
Thanks
2025-09-30 9:46 AM
We see the same issue using NUCLEO-H7S3L8
2025-09-30 7:21 PM
Please be sure to use a recent version of CubeIDE or CubeProg. IIRC, newer STM32H7 need extra divisor for the core frequency. Older tools are not aware of this (but you can tweak the core frequency in settings).
2025-10-01 8:21 AM
2025-10-01 8:23 AM
2025-10-01 3:39 PM - edited 2025-10-01 3:40 PM
> Can you clarify “newer STM32H7 need extra divisor for the core frequency”
IIRC the newer 'H7 (H72x/73x) have additional divisor for core clock -> ITM that does not exist in older series (H743/753...).
Current versions of CubeIDE and CubeProgrammer detect these MCUs and automatically apply the divisor, so users do not need to change anything in the ITM setup - just put there the core clock as usual.
2025-10-03 7:54 AM
For my part, working on NUCLEO-H7S3L8 and using STM32CubeIDE Version: 1.16.1, I had to configure the SWV clock to a third of my core clock (configured at 600 Mhz):
I wonder if it has anything to do with the Debug peripheral clock divider:
2025-10-03 3:05 PM
Thank you Tahm_A
Fix Serial Wire View issue by setting SWV core clock to 200Mhz and SYSCLOCK to 600Mhz
2025-10-03 11:38 PM
It sounds like the setup is mostly correct, but a few things can cause SWV to not output anything on H7 boards:
Core clock mismatch – make sure the CPU core clock configured in the debug settings exactly matches the running core clock, including any PLL settings. Even small differences can prevent ITM output.
Trace port clock – on H7, the trace system (ETM/ITM) may require enabling Trace Port Interface Unit (TPIU) and configuring the correct prescaler for SWO.
ThreadX/NetXDuo impact – RTOS context switching itself doesn’t prevent SWV, but if your printf/ITM_SendChar calls happen in interrupts or threads very frequently, the ITM FIFO can overflow silently. Try sending very small, simple messages first.
STLINK-V3 settings – ensure SWO is enabled in ST-Link utility or in your IDE, and select NRZ or UART protocol correctly depending on your SWO clock speed.
Start with a simple “Hello world” in main() without RTOS, verify SWV works, then integrate with ThreadX/NetXDuo. This usually isolates whether it’s a board/clock issue or RTOS interaction.