При использовании keil и программатор на swd — можно без остановки программы следить за изменениями переменных и выводить отладочные сообщения в debug printf viewer — это все делается через pin SWO, поэтому не забываем его при разводке платы. Для этого нужно иметь последнюю версию драйверов st-link и правильно настроить keil.
Настраиваем keil:
- Открываем проект
- Открываем target options для проекта
- Щелкаем на вкладку Debug
- Выбираем ST-Link Debugger и щелкаем Settings
- Во вкладке Debug, в меню Debug Adapter выбираем порт SW (если у вас swd, а не jtag)
- На вкладке Trace, выбираем частоту core clock — на которой у вас работает контроллер (в программе), выбираем trace enable, и выбираем порт
- На вкладке Flash Download, если у вас раньше уже не было настроено, выбираем микроконтроллер и прошиваемые адреса
- В программе, в том месте где вы хотите получить отладочное сообщение пишем код, не забыв перед этим включить <stdio.h>
#include <stdio.h>
ITM_SendChar('a');
- Теперь, после запуска отладчика keil, открываем view->Serial windows->debug (prinf) viewer и запускаем программу. Сообщения будут выводиться в окно debug (prinf) viewer. Кроме того, если добавить какие-либо переменные в Watch или Memory, то они тоже будут изменяться во время работы программы, а если настройки(выше) не выполнены или SWO нету, то они изменяются только при остановке программы в точке останова.