Как известно существуют учебно-тренировочные электронные платы серии 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/ |
Обзор платформы для разработчиков ST Nucleo на примере Nucleo-F401RE @Roon_Boh |
|
Отладочная плата 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 память.
Комментарии (12)

NutsUnderline
17.07.2026 12:00и как это я подключаю два проводка swd и все работает сразу и без этого всего :) и stm и не только - .frm только найти.
связка elcipse_gdb_openocd довольно громоздкая и не всегда работает стабильно, похоже от ПК зависит. раньше че то глючновато было, а позже на фирменной сборке для esp32 - вроде без вопросов
для отладки в ozon стоит еще указать .svd файл - очень удобно регистры смотреть. хотя в microchip studio еще круче сделали
Можно ли залить прошивку в микроконтроллер STM32 через помощи J-link при помощи одно единственного *.bat скрипта
как раз сегодня озадачился. руки не дошли но там есть jflash и вроде даже jflashcli
для stlink есть STM32CubeProgrammer CLI
для загрузки через встроенный загрузчик: по usb есть dfu-util (есть в составе arduino для stm32 но старая версия ), а также Dfu File Manager и DfuSeDemo, плюс есть stm32flash для UART and I2C

NutsUnderline
17.07.2026 12:00dfu много разных контроллеров предлагает шить. этот протокол встраивают прямо в софт как функцию обновления прошивки

NutsUnderline
17.07.2026 12:00до кучи менее изветные утилиты https://github.com/dfu-programmer/dfu-programmer https://github.com/andrewpono/Stm32.UsbDfu
N1X
Нет, все стабильно работает.
До того стабильно, что я наоборот - использую Nucleo в качестве STLink для отладки своих плат, не парясь с покупкой отдельного
В общем-то заметка как заметка, "Как подключить JLink к STM32, а вот эти надуманные проблемы - лишнее.
aabzel Автор
А какой у Вас отладочный клиент? Какой отладочный сервер задействован в связке с St link?
N1X
Два варианта:
Встроенные средства STM32CubeIDE различных версий и пару раз подключение к его серверу внешним CLI
Open OCD + GDB + VSCode (Cortex Debug).
aabzel Автор
ST-link программатор уверенно побеждает на голосовании предпочтений разработчиков.
Кто бы мог подумать...
misha_ruchk0
ну а для тех кто хоть иногда выходит за пределы мира STM32, наверное, картина будет противоположной.
aabzel Автор
Да. Так и есть.
x89377
Потому что 200 руб. уверенно побеждают 1000 руб.
MikeSmith
Использую J-Link. Скорость работы уверенно побеждает более высокую стоимость (речь естественно про клон). Быстрее загружает, быстрее шагает по сравнению с ST-Link, и тем более, по сравнению с ST-Link через OpenOCD. ST-Link, перепрошитый в J-Link, тоже заметно шустрее
aabzel Автор
Да. Именно так.