ST-LINK возможна ли последовательная связь?

Я использую плату обнаружения STM32F4 и Atollic TrueStudio для ARM Lite 3.

Я хотел бы передать некоторые отладочные данные на ПК с помощью printf, и я не могу найти способ сделать это через STLink. Это вообще возможно? Это кажется важной функцией для любого процесса отладки.

Редактировать: мне нужно использовать Serial Wire Viewer, но все равно не получается заставить его работать.

Если у вас это работает, не могли бы вы опубликовать пример, у меня такая же проблема, и мне не повезло. Я написал свою собственную функцию printf, которая использует функцию _write в базовом файле системного вызова.

Ответы (4)

ОК, способ достижения связи в Atollic TrueStudio для ARM Lite (да, он работает в облегченной версии с версии 3.0):

  1. Включить Serial Wire Viewer в активной конфигурации отладки
  2. Показать консоль SWV (в режиме отладки)
  3. Откройте настройки Serial Wire Viewer (первая кнопка в окне консоли SWV)
  4. Включить порт стимула ITM 0
  5. Включить кнопку запуска/остановки трассировки в консоли SWV (вторая кнопка)
  6. Используйте функцию ITM_SendChar
  7. Наслаждайтесь отладкой строк!
Это также работает на Keil uCVision со всем семейством ulink jtag.

Он использует Crossworks. В crossworks мы используем dbg_printf, но будьте осторожны, он медленный.

Для всех пользователей CrossWorks: полухостинг работает, но тормозит. Это связано с тем, что кросс-работы не передают данные printf через SWO, а скорее через интерфейс JTAG/SWD. Он останавливает uC и считывает данные регистра на дисплей. Имейте в виду, что UC останавливается, когда вы используете функцию printf, а отладчик отключен.

Вот полное руководство по STM32F3-DISCOVERY с использованием отладки SWD:

http://controlsoft.nmmu.ac.za/STM32F3-Discovery-Board/Example-programs/Serial-Wire-Viewer-%28SWV%29

Я проверил это на своем stm32-discovery, и это сработало.