Как известно существуют учебно-тренировочные электронные платы серии 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/

Обзор платформы для разработчиков ST Nucleo на примере Nucleo-F401RE @Roon_Boh

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

Отладочная плата 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 память.

Комментарии (12)


  1. N1X
    17.07.2026 12:00

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

    Нет, все стабильно работает.

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

    До того стабильно, что я наоборот - использую Nucleo в качестве STLink для отладки своих плат, не парясь с покупкой отдельного

    В общем-то заметка как заметка, "Как подключить JLink к STM32, а вот эти надуманные проблемы - лишнее.


    1. aabzel Автор
      17.07.2026 12:00

      А какой у Вас отладочный клиент? Какой отладочный сервер задействован в связке с St link?


      1. N1X
        17.07.2026 12:00

        Два варианта:

        1. Встроенные средства STM32CubeIDE различных версий и пару раз подключение к его серверу внешним CLI

        2. Open OCD + GDB + VSCode (Cortex Debug).


    1. aabzel Автор
      17.07.2026 12:00

      ST-link программатор уверенно побеждает на голосовании предпочтений разработчиков.
      Кто бы мог подумать...


      1. misha_ruchk0
        17.07.2026 12:00

        ну а для тех кто хоть иногда выходит за пределы мира STM32, наверное, картина будет противоположной.


        1. aabzel Автор
          17.07.2026 12:00

          для тех кто хоть иногда выходит за пределы мира STM32, наверное, картина будет противоположной.

          Да. Так и есть.


      1. x89377
        17.07.2026 12:00

        Потому что 200 руб. уверенно побеждают 1000 руб.


        1. MikeSmith
          17.07.2026 12:00

          Использую J-Link. Скорость работы уверенно побеждает более высокую стоимость (речь естественно про клон). Быстрее загружает, быстрее шагает по сравнению с ST-Link, и тем более, по сравнению с ST-Link через OpenOCD. ST-Link, перепрошитый в J-Link, тоже заметно шустрее


          1. aabzel Автор
            17.07.2026 12:00

            Использую J-Link. Скорость работы уверенно побеждает более высокую стоимость (речь естественно про клон). Быстрее загружает, быстрее шагает по сравнению с ST-Link

            Да. Именно так.


  1. 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


    1. NutsUnderline
      17.07.2026 12:00

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