Превращаем ST-Link в J-Link и дружим его с Миландром.
Превращаем ST-Link в J-Link и учим его работать с микроконтроллерами Миландр.

Уже около года прошло с момента публикации вот этой новости (SEG-JLINK. Segger J-Link debug probe for STM32) на сайте STMicroelectronics, но её я только недавно заметил.
Забегая вперед скажу, что удалось прошить ссылка мой программатор под J-Link, правда без танцев не обошлось. И пока единственное что могу сказать, так это то, что шиться контроллеры стали быстрее (а может это самовнушение).
Интересно? Тогда читайте дальше.
И так, что же там обещают после обновления до J-Link
With unparalleled performance, extensive feature set, large number of supported MCUs, and compatibility with all popular development environments, the J-Link (SEG-JLINK) debug probes optimize user debugging and flash programming experience.
Хорошую производительность, поддержку большого количества микроконтроллеров и совместимость со всеми популярными средами разработки и много много всего.. Прям то, что нужно
Скажу сразу лицензионное соглашение предполагает обновление ПО на отладочных платах Nucleo и Discovery.
Вот список поддерживаемых плат:
- 32F0308DISCOVERY (STM32F0308-DISCO)
- 32F3348DISCOVERY (STM32F3348-DISCO)
- 32F411EDISCOVERY (STM32F411E-DISCO)
- 32F429IDISCOVERY (STM32F429I-DISC1)
- 32F429IDISCOVERY (STM32F429I-DISCO)
- 32F469IDISCOVERY (STM32F469I-DISCO)
- 32F746GDISCOVERY (STM32F746G-DISCO)
- 32L0538DISCOVERY (STM32L0538-DISCO)
- 32L100CDISCOVERY (STM32L100C-DISCO)
- 32L476GDISCOVERY (STM32L476-DISCO)
- NUCLEO-F030R8
- NUCLEO-F031K6
- NUCLEO-F042K6
- NUCLEO-F070RB
- NUCLEO-F072RB
- NUCLEO-F091RC
- NUCLEO-F103RB
- NUCLEO-F207ZG
- NUCLEO-F302R8
- NUCLEO-F303K8
- NUCLEO-F303RE
- NUCLEO-F303ZE
- NUCLEO-F334R8
- NUCLEO-F401RE
- NUCLEO-F410RB
- NUCLEO-F411RE
- NUCLEO-F429ZI
- NUCLEO-F446RE
- NUCLEO-F446ZE
- NUCLEO-F746ZG
- NUCLEO-F767ZI (Nucleo-144)
- NUCLEO-L011K4
- NUCLEO-L031K6
- NUCLEO-L053R8
- NUCLEO-L073RZ
- NUCLEO-L152RE
- NUCLEO-L476RG
- STM32F0DISCOVERY
- STM32F3DISCOVERY
- STM32F4DISCOVERY (STM32F407G-DISC1)
Если вашей платы нет в списке, не расстраивайтесь, скорее всего и её можно прошить.
Из основных плюсов после хирургического вмешательства можно выделить:
- Загрузка в RAM со скоростью до 3 МБайт/с
- Неограниченное количество точек останова
- Ну и конечно же кросплатформенность
Для того, что бы обновиться необходимо скачать с сайта Segger утилитку ST-Link Reflash Utility и распаковать в удобное для вас место. Эта же утилита позволит и откатиться обратно на стандартную прошивку ST-Link.
Что именно нужно делать. Желающие могут почитать оригинальную статью на официальном сайте, ну а остальные милости прошу:
-
Отключаем ST-Link если он подключен к ПК (Иначе он не определяется утилитой, хотя может мне просто не повезло)
-
Запускаем утилиту
-
Принимаем лицензионное соглашение

- И ещё раз

-
Подключаем наш ST-Link
-
Выбираем [1] Upgrade to J-Link и ждем окончания обновления прошивки. Пункт [3] возвращает родной ST-Link.

Должно получиться что-то похожее на это.
Прошиваться будут только те программаторы которые изначально запрограммированы только для отладки STM32, если как у меня прошивка стояла STM32+STM8 - то придется сначала прошить чистую, а затем уже J-Link.
Теперь осталось только настроить нашу любимую среду разработки (я про Keil) для работы с микроконтроллерами Миландр, так как изначально J-Link поддерживает российский ARM чуть меньше чем никак.
Решение максимально простое (решение найдено на форуме Миландр) - нужно показать J-Link как и куда шить. Для этого качаем файл MilandrDBforSegger.zip. И распаковываем в папку ..\Keil_v5\ARM\Segger\
Теперь можно шить и отлаживать микроконтроллеры Миландр. Я проверял только на 1986ВЕ92, прошивка и отладка работают отлично.
Интерфейс программирования выбран SWD, а скорость 3 МГц (выше ставить бессмысленно - отладка просто отваливается, аналогично и с JTAG).

Желаю хорошего и приятного кодинга.