Как известно существуют учебно-тренировочные электронные платы серии Nucleo. Там всегда есть вмонтированный программатор ST-link. Эти платы дешевы и очень удобны для отладки большой прошивки по частям.

В чем проблема?
Родной программатор ST-Link долго прогружается и пошаговая отладка часто срывается прямо из-под Eclipse. Потом нет способа перезагруpить прошивку из-под отладчика ST-link.

В связи с этим возникла потребность отлаживать прошивки на плате Nucleo другим программатором.

Постановка задачи
Научиться программировать и отлаживать прошивки для платы Nucleo отладчиком Segger J-link. Выяснить схему подключения.

Решение

В качестве подопытной платы я выбрал электронную плату NUCLEO-F401RE

Прежде всего надо установить 2 перемычки на вилку CN2. Таким образом вы соедините разъём CN4 и SWD пины на целевом микроконтроллере U5 STM32F401RET6U.

При визуальном рассмотрении платы видно, что перемычки SB3-SB9 припаяны. Это значит, что разъём CN4 соединен с разъёмом CN2.

Далее следует соединить плату NUCLEO-F401RE и программатор Segger J-Link согласно вот такой схеме. Обратите внимание, что надо установить два джампера на разъём CN2.

Теперь открываем программу Segger Ozone и выбираем целевой микроконтроллер STM32F401RE.

Выбираем интерфейс SWD, задаем частоту тактирования SWD шины и выбираем программатор.

Указываем путь к elf файлу.

Указываем параметры загрузки программы: начальный адрес программы и чем инициализировать указатель на верхушку стека.

И вот появился курсор для пошаговой отладки.

Достоинства отладки прошивки в Segger Ozone

1) Отладка через Ozone хороша тем, что J-link отладчик сам видит, что прошивка изменилась и автоматически перезагружает обновленный бинарь.

2) Вы можете из-под Ozone перезагрузить микроконтроллер просто нажав кнопку F4 ; F5 .
3) Через комбинацию Ctrl+M вы можете найти конкретную функцию по имени, чтобы поставить в ней точку останова.
4) Пошаговая отладка в Ozone мгновенно стартует и у нее стабильный SWD link.

Итог

Удалось научиться отлаживать прошивки на учебно-тренировочных электронных платах класса Nucleo отладчиком Segger J-link. Это увеличивает скорость разработки и делает сам процесс пошаговой отладки намного удобнее и эффективнее.

Ссылки

Название

URL

Программатор из обломка платы Nucleo @Karen

https://habr.com/ru/articles/975880/

Отладка STM32 программатором J-LINK по SWD @danil_12345

https://habr.com/ru/articles/995996/

Connecting to STM32 Nucleo boards

https://kb.segger.com/Connecting_to_STM32_Nucleo_boards

ST Nucleo + SEGGER Jlink adapter

https://www.eevblog.com/forum/microcontrollers/st-nucleo-segger-jlink-adapter/

Отладочная плата NRF5340-DK в качестве программатора J-Link

https://habr.com/ru/articles/735422/

Настройка Пошаговой Отладки JLink+Eclipse

https://habr.com/ru/articles/682498/

Пошаговая GDB отладка ARM процессора из консоли в Win10

https://habr.com/ru/articles/694708/

Настройка ToolChain(а) для Win10+GCC+С+Makefile+ARM Cortex-Mx+GDB @aabzel

https://habr.com/ru/articles/673522/

Дайте мне 15 минут, и я изменю ваш взгляд на GDB @Djivs

https://habr.com/ru/articles/824638/

Дебаггинг в реальном времени через JTAG/SWJ-DP для микроконтроллеров на ядре ARM Cortex-M @Indemsys

https://habr.com/ru/articles/259205/

Вопросы

--Можно ли залить прошивку в микроконтроллер STM32 через помощи J-link при помощи одно единственного *.bat скрипта? Буквально запустил скрипт и прошивка сама загрузилась в flash память.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Каким программатором Вы заливаете прошивки в микроконтроллеры STM32?
70%ST-Link7
50%J-link5
30%я загружаю прошивки через заводской UART загрузчик через Boot пины3
30%другое3
Проголосовали 10 пользователей. Воздержавшихся нет.