StLink
MultiProg работает с StLink как с проводником интерфейса SWD для работы с ARM/RISC-V.
Подготовка ST-Link к работе
Начиная с MultiProg 2.3.3 драйверы и апдейтер прошивки ST-Link идут в комплекте — качать их с сайта производителя больше не нужно.
При первом запуске MultiProg раскладывает архивы в профиль пользователя:
%USERPROFILE%\KuragaTech\MultiProg\programmer_utils\stlink\
├── en.stsw-link009.zip ← USB-драйверы (~5.3 МБ)
└── en.stsw-link007-v3-14-5.zip ← Firmware Updater v3.14.5 (~2.1 МБ; поддерживает в т.ч. неоригинальные ST-Link)
Папка лежит в %USERPROFILE% (C:\Users\<ваш_пользователь>), права администратора для запуска утилит не нужны.
При типовых ошибках ST-Link («firmware too old», «Programmer not found», «libusb error», «usb communication») в диалоге ошибки появляется кнопка «Open ST-Link Utilities» — она открывает нужную папку в Проводнике одним кликом.
Перед первой работой со ST-Link — два шага:
Шаг 1. Установка USB-драйверов
- Распакуйте
en.stsw-link009.zipв любую удобную папку. - Запустите
stlink_winusb_install.bat— драйверы установятся для USB-классов ST-Link debug / ST-Link bridge / ST-Link VCP. - Подключите ST-Link к компьютеру и убедитесь, что он определился в Диспетчере устройств без «жёлтых треугольников».
Шаг 2. Обновление прошивки ST-Link
На сегодня последняя протестированная версия прошивки — v3.14.5.
Даже если на ST-Link написано, что прошивка актуальная — прошейте заново. Некоторые поставщики (особенно по китайским клонам) подменяют номер прошивки, не обновляя содержимое.
- Распакуйте
en.stsw-link007-v3-14-5.zipв любую удобную папку. - Подключите ST-Link к USB.
- Запустите
stsw-link007/Windows/ST-LinkUpgrade.exe. - В окне утилиты нажмите
Open in update mode→Upgrade. - Дождитесь завершения — утилита покажет новую версию прошивки.
После этого ST-Link готов к работе с MultiProg.
pinout
В оригинальной версии StLink есть выход с управляемым VDD и выход с неуправляемым, постоянным питанием. Для работы c StLink нужно использовать пин с постоянным питанием.
reset
Обязательно проверьте работу reset, он нужен на многих контроллерах для корректного стирания/записи. Можно выбрать любой контроллер в StLink и нажать connect, на reset должен быть короткий импульс.
Serial Wire Debug (SWD)
Очень распространённый интерфейс, изначально альтернатива JTAG работающая по 2 пинам (SWDIO/SWCLK). У ARM это основной интерфейс программирования и отладки.
Программирование
Начиная с MultiProg 2.3.0 ST-Link обслуживается нашим собственным
SWD-бэкендом KT SWD — библиотекой, написанной с нуля в Kuraga Tech
и заменившей сторонний стек. Поверх неё для каждого семейства идут
наши собственные flash-роутины.
Включённые семейства:
- STM32 — F0, F1, F2, F3, F4, F7, G0, G4, H7 (9 семейств)
- Infineon FM3 / FM4 — 2 семейства
- NXP MKE — MKE02Z, MKE04Z, MKE14Z, MKE15Z (4 семейства)
Быстрая запись через SRAM-роутины — для STM32 F0/F1/F2/F3/F4/F7/G0/G4/H7, NXP MKE02/04/06 и Infineon FM4 MB9B560 запись идёт собственной микропрограммой, загружаемой в SRAM цели (раньше — побайтово через DAP). Скорость — на уровне J-Flash / J-Link.
Свой стек целиком — улучшаем и расширяем без оглядки на сторонние библиотеки. Поддержаны Option Bytes, EEPROM, FlexNVM и нюансы каждого семейства.