Как известно существуют учебно-тренировочные электронные платы серии 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 | |
Отладка STM32 программатором J-LINK по SWD @danil_12345 | |
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 | |
Настройка Пошаговой Отладки JLink+Eclipse | |
Пошаговая GDB отладка ARM процессора из консоли в Win10 | |
Настройка ToolChain(а) для Win10+GCC+С+Makefile+ARM Cortex-Mx+GDB @aabzel | |
Дайте мне 15 минут, и я изменю ваш взгляд на GDB @Djivs | |
Дебаггинг в реальном времени через JTAG/SWJ-DP для микроконтроллеров на ядре ARM Cortex-M @Indemsys |
Вопросы
--Можно ли залить прошивку в микроконтроллер STM32 через помощи J-link при помощи одно единственного *.bat скрипта? Буквально запустил скрипт и прошивка сама загрузилась в flash память.
