Консольный программатор ST-Link_Utility-CLI

В комплекте поставки программатора ST-Link есть не только графическая утилита ST-Link Utility, но и консольная программа ST-LINK_CLI.exe. Она даёт возможность автоматизировать процесс прошивки МК, что крайне полезно если плат много (десятки или сотни).

Я написал простейший скрипт. Он принимает путь к файлу прошивки (в параметрах командной строки) и прошивает его в микроконтроллер STM32. После этого он ждёт нажатия любой клавиши чтобы запустить процесс заново — нажимаете любую клавишу чтобы прошить следующий девайс, либо закрываете консоль чтобы закончить.

:start
"C:\Program Files (x86)\STMicroelectronics\STM32 ST-LINK Utility\ST-LINK Utility\ST-LINK_CLI.exe" -P %1 0x08000000
pause
goto start

Только проверьте правильность пути до вашего ST-Link Utility.

  1. Подключаете первую плату с STM32 к программатору ST-Link.
  2. Копируете текст в любой текстовый редактор (лучше в Блокнот), сохраняете его как файл с расширением .bat (например programmer.bat), перетаскиваете на этот файл свой файл прошивки (.bin), и всё — он записывается внутрь микроконтроллера.
  3. После завершения записи подключаете следующую плату, нажимаете любую клавишу — она тоже прошивается, и так далее.

programmer

Это простейший вариант, но его можно расширить, например, до полностью автоматического программатора с обратной связью — с «железной» кнопкой начала программирования и светодиодами статуса.

При желании можно добавить команду подключения к STM32 с определёнными параметрами:

"C:\Program Files (x86)\STMicroelectronics\STM32 ST-LINK Utility\ST-LINK Utility\ST-LINK_CLI.exe" -c SWD SWCLK=0 UR LPM -p %1 0x08000000

В этом примере я увеличил скорость SWD до 4МГц, но эффективность этого способа мала — очень много времени (несколько секунд) уходит на подключение. Первый вариант был быстрее — около 1-2 секунд на плату.