stm32cube printf

Sep 26, 2018 20:56

Нашёл что код генерируемый 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.

electro, stm32

Previous post Next post
Up