SWO/SWV with STM32CubeIDE

はじめに

SWV/SWV(Serial Wire Output/Serial Wire Output Viewer)は、デバッグの際にSTM32CubeIDEのコンソールにデータを表示することでいざとプロセスやデータを確認したいときに大変便利なツールである。

確認環境

・NUCLEO-F446RE(MB1136)
・STM32CubeIDE 1.12.0 @UBUNTU 22.04

確認手順

1・NUCLEO-F446RE CN2などのジャンパー接続は、以下写真のとおりとなっている。

NUCLEO-F446RE-JUMPER
NUCLEO-F446RE-JUMPER

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

stm32cubeide_ioc
stm32cubeide_ioc

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実行する。

stm32cubeide_start_debug
stm32cubeide_start_debug

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

stm32cubeide_debug_cofigutration
stm32cubeide_debug_cofigutration

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

stm32cubeide_open_tm_data_console
stm32cubeide_open_tm_data_console

7・SWV設定を行う。

stm32cubeide_config_trace
stm32cubeide_config_trace

stm32cubeide_swv_setting
stm32cubeide_swv_setting

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

stm32cubeide_start_trace
stm32cubeide_start_trace

9・Debugを再開させる。

stm32cubeode_f8_resume
stm32cubeode_f8_resume

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

stm32cubeide_data_view
stm32cubeide_data_view

プロジェクト

STM32CubeIDEプロジェクトは、github.com/soarbear(ROBOSHO)に預かっておく。

参考資料

・「UM2609 User manual STM32CubeIDE user guide」、STMicroelectronics

ロボット・ドローン部品お探しなら
ROBOT翔・電子部品ストア