Открывание ларчиков (electrodyssey) wrote,
Открывание ларчиков
electrodyssey

stm32cube printf

Нашёл что код генерируемый 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.
Tags: electro, stm32
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 2 comments