SWO

Как настроить трассировку отладочных сообщений через SWO в True Studio?

Для начала делаем это на минимальном проекте , подготовленном в CubeMX для контроллера STM32F407VET6.

Имеем только два светодиода и больше ничего.

Так в любой настройке SWO есть нюансы , которые влияют на результат приведу сначала картинки из CubeMX:

CubeMX

фотка 1
фотка 2
фотка 3

TrueStudio

Кратко без расшифровки , только картинки :

Из запущенного режима отладки, становится активна одна кнопка ,которая открывает настройку SWO:

фотка 4
фотка 5

в файле syscalls.c надо переопределить вывод сообщений :

#include "stm32f4xx.h"  // не забудьте добавить

__attribute__((weak)) int _write(int file, char *ptr, int len)
{
	int DataIdx;

	for (DataIdx = 0; DataIdx < len; DataIdx  )
	{
		//__io_putchar(*ptr  );
		ITM_SendChar ( *ptr   );
	}
	return len;
} 

И вот главный нюанс , чтобы увидеть сообщения надо еще щелкнуть на незаметном красном кружке, так сказать запустить трассировку:

фотка 6

У сожалению красный кружок надо будет кликать каждый раз при очередном запуске контроллера.

Трассировка по SWO работает!