Как настроить трассировку отладочных сообщений через SWO в True Studio?
Для начала делаем это на минимальном проекте , подготовленном в CubeMX для контроллера STM32F407VET6.
Имеем только два светодиода и больше ничего.
Так в любой настройке SWO есть нюансы , которые влияют на результат приведу сначала картинки из CubeMX:
CubeMX
TrueStudio
Кратко без расшифровки , только картинки :
Из запущенного режима отладки, становится активна одна кнопка ,которая открывает настройку SWO:
в файле 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;
}
И вот главный нюанс , чтобы увидеть сообщения надо еще щелкнуть на незаметном красном кружке, так сказать запустить трассировку:
У сожалению красный кружок надо будет кликать каждый раз при очередном запуске контроллера.
Трассировка по SWO работает!