Нашёл что код генерируемый stm32cube можно отлаживать с помощью printf. Все наверно знали, но я нет, так что оставляю себе на память.
Я пользуюсь ST-LINK/V2 и openocd. Чтобы ловить строки в openocd надо:
1. Отредактировать Makefile и вынуть оттуда -lnosys" из LIBS
2. Сменить "-specs=nano.specs" на "-specs=rdimon.specs" в LDFLAGS
3. Создать новый конфиг для OpenOCD, следущего вида:
=====
source /path/to/stlink-v2.cfg
source /path/to/target/stm32f4x.cfg
init
arm semihosting enable
reset
====
4. Запускаем openocd -f ./debug.cfg, прошиваем
5. Перегружаем DUT
Созерцаем строки выводимые printf в консоли openocd.
Из нетривиальных моментов:
Если забыть поставить \n в конце отладочной строки внутри printf, то они будут долго буферизироваться, пока не покажутся все вместе.
С включенным printf и изменёнными LDFLAGS, появились проблемы с запуском без подключённого отладчика. В итоге, я просто включил все printf внутрь дефайна #ifdef DBG_PRINT и сделал второй Makefile, где в C_DEFS добавлен -DDBG_PRINT.