はじめに
SWV/SWV(Serial Wire Output/Serial Wire Output Viewer)は、デバッグの際にSTM32CubeIDEのコンソールにデータを表示することでいざとプロセスやデータを確認したいときに大変便利なツールである。
確認環境
・NUCLEO-F446RE(MB1136)
・STM32CubeIDE 1.12.0 @UBUNTU 22.04
確認手順
1・NUCLEO-F446RE CN2などのジャンパー接続は、以下写真のとおりとなっている。

2・SYS/Mode/Debug/Trace Asynchronous SWにするとSWOピンが設定される。

3・Generate Codeして、main.cへコードを追加する。
/* USER CODE BEGIN Includes */
#include "stdio.h"
/* USER CODE END Includes */
/* USER CODE BEGIN 0 */
int __io_putchar(uint8_t ch) {
return ITM_SendChar(ch);
}
/* USER CODE END 0 */
/* USER CODE BEGIN WHILE */
while (1)
{
printf("Hello, SWO/SWV\r\n");
HAL_Delay(1000);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
4・Debug実行する。

5・Debugger ConfigurationにSWVをEnableにする。

6・SWV ITM Data Consoleを表示させる。

7・SWV設定を行う。


8・Start Traceをプッシュして、押し込んだ状態にする。

9・Debugを再開させる。

10・SWV ITM Data Consoleでprintfの内容を確認する。

プロジェクト
STM32CubeIDEプロジェクトは、github.com/soarbear(ROBOSHO)に預かっておく。
参考資料
・「UM2609 User manual STM32CubeIDE user guide」、STMicroelectronics
