Oprogramowanie sterujące pracą interfejsu ST-Link

ST-Link jako sprzętowy debugger

Docenianą przez konstruktorów cechą interfejsu ST-Link jest możliwość jego pracy w trybie debugowania pracy mikrokontrolerów STM32 i STM8. Dzięki zastosowaniu ST-Linka użytkownik może „podglądać” stany rejestrów CPU, wartości zapisane w poszczególnych komórkach pamięci, może także ustawiać pułapki i miejsca oraz warunki zatrzymania pracy programu, sterować przebiegiem pracy krokowej itp.
Korzystanie z wymienionych możliwości interfejsu wymaga zastosowania oprogramowania sterującego jego pracą i umożliwiającego wygodny podgląd działania CPU. Interfejs ST-Link jest standardowym narzędziem w zintegrowanych środowiskach programistycznych dla mikrokontrolerów STM32: µVision (Keil/ARM) oraz Workbench (IAR). Konstruktorzy stosujący mikrokontrolery STM8 mogą korzystać z ST-Linka jako debuggera w środowisku STVP firmy STMicroelectronics.
Od kilku miesięcy coraz większą popularność wśród programistów piszących aplikacje dla mikrokontrolerów z rodziny STM32 zdobywa bezpłatna wersja pakietu TrueStudio (wersja Lite dla STM32) firmy Atollic, w której ST-Link (ZL30PRG) jest jedynym obsługiwanym sprzętowym debuggerem.
Każdy z wymienionych pakietów – poza debugowaniem – umożliwia także programowanie pamięci Flash mikrokontrolerów. Korzystanie z tej funkcji wymaga zazwyczaj zakładania kompletnego projektu (jest to szczególnie dokuczliwe w µVision), co w wielu przypadkach skutecznie zniechęca, czasami wręcz uniemożliwia szybkie zaprogramowanie pamięci mikrokontrolera. Poważnym problemem było także programowanie mikrokontrolerów w działających urządzeniach (wymiana firmware), konieczne bowiem było używanie w warunkach polowych komputera z zainstalowanym kompletnym środowiskiem programistycznym. Problemy te zostały dostrzeżone i od kilku tygodni użytkownicy mikrokontrolerów z rodziny STM32 mogą korzystać z kilku programów przeznaczonych przede wszystkim do programowania ich pamięci Flash.

 

ST-Link jako programator

Niewygody związane z programowaniem pamięci mikrokontrolerów STM32 za pomocą interfejsu ST-Link i kompletnych środowisk programistycznych rozwiązują trzy programy, które przedstawiamy w artykule.
Pierwszy z nich to zmodyfikowany STVP (ST Visual Programmer), opracowany przez firmę STMicroelectronics, wchodzący w skład dostępnego bezpłatnie środowiska programistycznego STVD (ST Visual Develop). Oprogramowanie to począwszy od wersji 3.1.4 może być “doposażone” w patch o nazwie ST toolset pack 20 ST toolset pack 20 patch 1 (publikujemy go na płycie CD), dzięki któremu program ten można wykorzystać – poza standardowymi możliwościami związanymi z mikrokontrolerami STM8 – także do programowania mikrokontrolerów STM32 (rys. 2). Zmodyfikowany STVP zapewnia także dostęp do bajtów opcji i bitów konfiguracyjnych mikrokontrolerów (rys. 3), umożliwia także zabezpieczenie pamięci Flash przed modyfikacjami i nieuprawnionym odczytem (rys. 4).
Program STVP obsługuje pliki w formacie *.hex, dostęp do pamięci mikrokontrolera odbywa się za pomocą jednego z dwóch interfejsów, obsługiwanych przez ZL30PRG – SWD i JTAG.
„Gorącą” alternatywą dla zmodyfikowanego STVP jest przeznaczony specjalnie dla mikrokontrolerów STM32 program ST-Link Utility, za pomocą którego można nie tylko wykonywać operacje na pamięci Flash mikrokontrolerów STM32 (wyłącznie za pośrednictwem interfejsu ZL30PRG i pochodnych – rys. 5), ale także podglądać zawartość jej oraz rejestrów CPU oraz sterować pracą krokową jednostki centralnej (rys. 6). W obecnie dostępnej wersji trudno to narzędzie traktować jako pełnowartościowy debugger, ale zapowiedzi ze strony producenta dalszego rozwoju tego oprogramowania są obiecujące. Program ST-Link Utility obsługuje w obecnie dostępnej wersji wyłącznie pliki *.bin.
Rozrywkową alternatywą dla przedstawionych programów jest program o nazwie STM32PRoGrammer, charakteryzujący się efektownym oknem w kształcie motyla (rys. 7). Program ten przygotował i udostępnił producent polskiej wersji interfejsu ST-Link – ZL30PRG. STM32PRoGrammer obsługuje pliki *.hex, nie został wyposażony w edytory bajtów opcji i konfigurujących.

O autorze