Могу ли я использовать программатор 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 долларов).

GB - AE7OO
источник
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. чипы.

minexew
источник
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).

janiso
источник
0

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

UweBonnes
источник