Могу ли я использовать программатор ST-Link для не-ST чипов?


12

Могу ли я программировать все виды SWD-программируемых микросхем (ARM-MCU) с помощью ST-Link?


«ST-LINK / V2 является внутрисхемным отладчиком и программистом для семейств микроконтроллеров STM8 и STM32». Я не думаю, что вы можете сразу, но это должно быть достижимо в теории. Кто-то сумел подключить его к микроконтроллеру LPC здесь: lpcware.com/content/forum/…
— Пушистый

1
Возможно, в некоторых случаях, если вы используете что-то вроде openocd, а не программное обеспечение ST. Если вы столкнетесь с трудностями, есть реализации CMSIS-DAP с открытым исходным кодом, которые вы можете перенастроить, которые являются более универсальными, предоставляя программному обеспечению хоста более точный контроль над деталями.
— Крис Страттон

Это не то, что вы спросили, но есть также отладчики, которые охватывают несколько целей, таких как PE микро отладчики.
— mkeith

2
Я использую ссылку ST на программу lpc1549, она работает.
— user2425240

Ответы:


6

Вы также можете прошить st-link и преобразовать ее в Black Magic Probe . Это же изображение также преобразует Синюю Таблетку в BMP.

Я сделал оба. Преимущество Blue Pill заключается в том, что usb-rs232, который соединяет экспорт BMP, легко доступен.

BMP поддерживает ряд микросхем, включая, но не ограничиваясь:
ST Microelectronics STM32F0, STM32F1, STM32F3, STM32F2, STM32F4, STM32F7, STM32L0, STM32L1, STM32L4
Atmel SAM3N, SAM3X, SAM3S, SAM3U, SAM21 D, SAM4S, SAM4S, 4
Nordic nRF51, nRF52 (Вот почему я использую BMP)

BMP имеет открытый исходный код, может использоваться для коммерческого программирования, а аппаратное обеспечение может быть дешевым («настоящий» BMP стоит около 60 долларов, голубая таблетка в 5 упаковках от Amazon была отправлена ​​менее чем за 20 долларов).


4

Добавить к существующему ответу; некоторые чипы известны не работают должным образом с ST-LINK и OpenOCD.

В частности, если ваша цель относится к семейству микроконтроллеров семейства Atmel SAMD21, вы, скорее всего, столкнетесь со странными проблемами, когда обнаружен процессор, но любые попытки стереть флэш-секторы не будут выполнены с ошибкой.

Причина довольно сложная , чтобы процитировать:

AFAIK проблема заключается в записи полуслова (16-битной) в регистр NVMCTRL-> CTRLA. STLink не реализует доступ к памяти из половины слов, а OpenOCD эмулирует как двухбайтовые операции. К сожалению, регистр CTRLA состоит из ключа и команды и должен быть написан атомарно. Если STLink записывает два байта, контроллер NVM устанавливает бит PROGE в STATUS: «В регистр команд NVM была / была записана недопустимая команда и / или неверное ключевое слово»

Обходной путь включает перекомпиляцию OpenOCD с исправлениями кода. Не смешно.

Однако, если вы не против перепрограммировать свой ST-Link (через другой ST-Link), вы можете преобразовать его в адаптер CMSIS-DAP , который прекрасно работает с SAMD, а также должен работать с STM32 и другим Cortex-M. чипы.


1

Да, я верю, что это возможно, хотя я не пробовал. Скорее всего, вы нарушите условия Лицензионного соглашения ST, если вы пробовали программировать устройства, отличные от ST.

Например, Segger (один из лидеров на рынке отладчиков и программистов) поддерживает преобразование ST-Link в J-link (по существу, перезаписывая чип ST-Link кодом Segger). Это также обратимо, поэтому, если вы хотите восстановить ваше устройство ST-link обратно в его первоначальную форму, вы можете.

Однако существует несколько версий ST-Link. Взгляните на следующие ссылки, которые предоставляют дополнительную информацию и руководство о том, как это сделать.

https://www.segger.com/jlink-st-link.html
https://www.segger.com/jlink-ob.html


1
Я использовал заголовок stlink на ядрах и платах обнаружения на большинстве основных брендов cortex-m ... и те, с которыми я не мог заставить его работать, были проблемы с настройкой openocd, а не stlink.
— old_timer

1
Перепрошивка ST-Link на J-Link будет работать (и будет законной) только на плате Nucleo или Discovery и только для использования с целевым MCU. Прочитайте условия лицензии Seggar, они довольно ограничительны. Насколько я знаю, флешер Seggar не будет работать даже на отдельном ST-Link.
— GB - AE7OO

1

Да, это возможно. Я использую stlink v2 (оригинал, а также китайские клоны типа USB-флешки) с Coocox IDE. Coocox также имеет отдельное приложение для программистов - CoFlash , которое можно использовать для программирования большого количества микросхем. У меня есть опыт работы только с двумя сериями: LPC176x и LPC175x, через интерфейс SWD. И у меня нет проблем с этими чипами. Я также не вносил никаких конкретных изменений или обновлений для программистов (за исключением того, что исходная ссылка ST требовала высокого уровня напряжения на TVCC (PIN1), в противном случае она не позволяла программировать микросхему, поэтому я подключил непосредственно контакт 19 (3.3vcc) закрепить 1 на stlink v2).


0

STLink V2 / V2.1 или V3 с последним программным обеспечением также можно использовать с платформой Blackmagic pc-stlinkv2, размещенной на ПК. Скомпилируйте с «make PROBE_HOST = pc-stlinkv2», запустите сервер отладки с «blackmagic_stlinkv2» и подключитесь к: 2000 в gdb или напрямую загрузите двоичные файлы с «blackmagic_stlinkv2». Это работает со всеми целями, которые знает BMP. Однако V3 активно запрещает работать с не-ST целями, а V2 это не волнует.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.