はじめに
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
0