Могу ли я программировать все виды SWD-программируемых микросхем (ARM-MCU) с помощью ST-Link?
Могу ли я программировать все виды SWD-программируемых микросхем (ARM-MCU) с помощью ST-Link?
Ответы:
Вы также можете прошить 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 долларов).
Добавить к существующему ответу; некоторые чипы известны не работают должным образом с 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. чипы.
Да, я верю, что это возможно, хотя я не пробовал. Скорее всего, вы нарушите условия Лицензионного соглашения 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
Да, это возможно. Я использую stlink v2 (оригинал, а также китайские клоны типа USB-флешки) с Coocox IDE. Coocox также имеет отдельное приложение для программистов - CoFlash , которое можно использовать для программирования большого количества микросхем. У меня есть опыт работы только с двумя сериями: LPC176x и LPC175x, через интерфейс SWD. И у меня нет проблем с этими чипами. Я также не вносил никаких конкретных изменений или обновлений для программистов (за исключением того, что исходная ссылка ST требовала высокого уровня напряжения на TVCC (PIN1), в противном случае она не позволяла программировать микросхему, поэтому я подключил непосредственно контакт 19 (3.3vcc) закрепить 1 на stlink v2).
STLink V2 / V2.1 или V3 с последним программным обеспечением также можно использовать с платформой Blackmagic pc-stlinkv2, размещенной на ПК. Скомпилируйте с «make PROBE_HOST = pc-stlinkv2», запустите сервер отладки с «blackmagic_stlinkv2» и подключитесь к: 2000 в gdb или напрямую загрузите двоичные файлы с «blackmagic_stlinkv2». Это работает со всеми целями, которые знает BMP. Однако V3 активно запрещает работать с не-ST целями, а V2 это не волнует.