Debugger-programator dla STM32 i STM8(1).pdf

(1406 KB) Pobierz
Elektronika Praktyczna
sprzęt
dla STM32 i STM8
ST-Link: nowe
oprogramowanie,
nowe możliwości
Dodatkowe materiały
na CD i FTP
Krajowa wersja programatora-debuggera ST-Link, znana pod nazwą
ZL30PRG, zdominowała krajowy rynek narzędzi uruchomieniowych
dla mikrokontrolerów STM32. Do niedawna atutem tego interfejsu –
poza dużymi możliwościami funkcjonalnymi – były przede wszystkim
przystępna cena i  możliwość pracy w  środowiskach M Vision irmy
Keil (ARM) oraz Workbench (IAR). Od kilku tygodni liczba atutów
znacznie wzrosła: dostępne są bowiem kolejne programy potraiące
obsłużyć ST-Linka, jest on także jedynym programatorem-debuggerem
obsługiwanym przez bezpłatną wersję pakietu TrueStudio irmy Atollic.
Opracowany przez irmę STMicroelec-
tronics interfejs ST-Link jest sprzętowym de-
buggerem zintegrowanym z programatorem,
przystosowanym do współpracy z mikrokon-
trolerami z rodzin STM32 (obsługuje je po-
przez JTAG lub SWD) oraz STM8 (obsługuje
je poprzez interfejs SWIM) – rys. 1 . Polska
wersja ST-Linka pojawiła się w sprzedaży
na jesieni ubiegłego roku, stając się pod-
stawowym narzędziem stosowanym przez
uczestników dwóch edycji warsztatów tech-
nicznych STM32TechDays, które odbyły się
w drugiej połowie 2009 roku oraz w pierw-
szym kwartale 2010.
Firmware interfejsu ST-Link (ZL30PRG)
jest nieustannie rozwijane, dzięki czemu są
usuwane błędy wykrywane podczas uży-
wania interfejsu, zwiększana jest także jego
funkcjonalność. Wymiana irmware’u  nie
wymaga od użytkownika specjalnych za-
biegów, do tego celu jest bowiem wykorzy-
stywana procedura DFU ( Device Firmware
Upgrade ) w całości realizowana przez opro-
gramowanie udostępnione przez producen-
ta. Informacje o nowych wersjach irmware
są publikowane na stronie www.stm32.eu .
Nowe linie mikrokontrolerów stM32
Firma STMicroelectronics
wprowadziła do produkcji nową
podrodzinę mikrokontrolerów
STM32, w skład której wchodzi 10
typów mikrokontrolerów w ramach
nowej linii Value , oznaczonych
symbolami STM32F100xx.
Wyposażono je w rdzeń Cortex-M3
taktowany sygnałem zegarowym
o maksymalnej częstotliwości
wynoszącej 24 MHz, pamięć Flash
o pojemności 16/32/64/128 kB
oraz SRAM o pojemności 4 lub 8 kB, w zależności od typu.
Mikrokontrolery STM32F100 są standardowo wyposażone w 2 lub 3 USART-y, 1 lub 2 kanały
SPI, 1 lub kanały I 2 C, 2 kanały C/A z wyjściami napięciowymi, przetwornik A/C z multiplekserem
analogowym oraz – po raz pierwszy w mikrokontrolerach – interfejs CEC ( Consumer Electronic
Control ), stosowany w sprzęcie audio-wideo jako uzupełnienie interfejsu HDMI.
Nowe mikrokontrolery są przeznaczone do aplikacji, które dotychczas okupowane były przez
mikrokontrolery 8-bitowe. Producent oferuje je w obudowach LQFP48/64/100 oraz BGA64.
Rodzinę mikrokontrolerów STM32F powiększono także
„w górę”, wprowadzając do produkcji dwie nowe
podrodziny:
– XL-Density Access (STM32F101xG i STM32F101xF) i 
– XL-Density Performance (STM32F103xG i STM32F103xF),
charakteryzujące się wbudowaną pamięcią Flash
o pojemności do 1 MB i pamięcią SRAM o pojemności
zwiększonej do 80 kB ( XL-Density Access ) lub 96 kB ( XL-
Density Performance ).
Standardowym wyposażeniem podrodzin XL-Density Access XL-Density Performance jest także
(odpowiednio): 15/17 uniwersalnych timerów i 10/13 interfejsów komunikacyjnych. Nowe
mikrokontrolery wyposażono także w jednostkę MPU (Memory Protection Unit) odpowiedzialną
za ochronę danych przechowywanych w pamięci SRAM przed uszkodzeniem wywołanym
nieprawidłowym działaniem programów, co ma szczególne znaczenie w aplikacjach bazujących
na systemach operacyjnych. Podobnie jak „klasyczne” wersje mikrokontrolerów F101 i F103,
także mikrokontrolery XL różnią się maksymalnymi częstotliwościami taktowania rdzeni,
które wynoszą 36 lub 72 MHz. Mikrokontrolery STM32F XL są kompatybilne pod względem
rozmieszczenia wyprowadzeń ze starszymi podrodzinami i są oferowane w obudowach o liczbie
wyprowadzeń 64, 100 lub 144.
ST-Link jako sprzętowy debugger
Docenianą przez konstruktorów cechą
interfejsu ST-Link jest możliwość jego pracy
w trybie debugowania pracy mikrokontro-
lerów STM32 i STM8. Dzięki zastosowaniu
ST-Linka użytkownik może „podglądać” sta-
ny rejestrów CPU, wartości zapisane w po-
94
ELEKTRONIKA PRAKTYCZNA 5/2010
Debugger-programator
652390068.024.png 652390068.025.png 652390068.026.png 652390068.027.png 652390068.001.png
ST-Link: nowe oprogramowanie, nowe możliwości
rys. 1. Interfejs st-Link można wykorzystać do debugowania i programowania pamięci mikrokontrolerów stM32 i stM8 za pomocą
różnych programów narzędziowych
buggera w środowisku STVP irmy STMicro-
electronics.
Od kilku miesięcy coraz większą po-
pularność wśród programistów piszących
aplikacje dla mikrokontrolerów z  rodziny
STM32 zdobywa bezpłatna wersja pakietu
TrueStudio (wersja Lite dla STM32) irmy
Atollic, w której ST-Link (ZL30PRG) jest je-
dynym obsługiwanym sprzętowym debug-
gerem.
Każdy z  wymienionych pakietów –
poza debugowaniem – umożliwia także
programowanie pamięci Flash mikrokon-
trolerów. Korzystanie z tej funkcji wymaga
zazwyczaj zakładania kompletnego projek-
tu (jest to szczególnie dokuczliwe w MVi-
sion), co w wielu przypadkach skutecznie
zniechęca, czasami wręcz uniemożliwia
szybkie zaprogramowanie pamięci mikro-
kontrolera. Poważnym problemem było
także programowanie mikrokontrolerów
w  działających urządzeniach (wymiana
irmware), konieczne bowiem było uży-
wanie w  warunkach polowych kompu-
tera z  zainstalowanym kompletnym śro-
dowiskiem 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 pro-
gramowania ich pamięci Flash.
rys. 2. Okno wyboru interfejsu progra-
mującego, typu interfejsu do komunikacji
z mikrokontrolerem i typu mikrokontro-
lera w stVD
ST-Link jako programator
Niewygody związane z  programowa-
niem pamięci mikrokontrolerów STM32 za
pomocą interfejsu ST-Link i  kompletnych
środowisk programistycznych rozwiązują
trzy programy, które przedstawiamy w arty-
kule.
szczególnych komórkach pamięci, może tak-
że ustawiać pułapki i miejsca oraz warunki
zatrzymania pracy programu, sterować prze-
biegiem pracy krokowej itp.
Korzystanie z wymienionych możliwości
interfejsu wymaga zastosowania oprogramo-
wania sterującego jego pracą i umożliwiają-
cego wygodny podgląd działania CPU. Inter-
fejs ST-Link jest standardowym narzędziem
w zintegrowanych środowiskach programi-
stycznych dla mikrokontrolerów STM32:
MVision (Keil/ARM) oraz Workbench (IAR).
Konstruktorzy stosujący mikrokontrolery
STM8 mogą korzystać z ST-Linka jako de-
problemy z truestudio
Programiści korzystający z pakietu
TrueStudio Lite dla STM32 (aktualną wersję
publikujemy na CD) mogą spotkać się
z nieprawidłową współpracą gdbservera ,
który odpowiada za obsługę debuggera ST-
Link. Z tego powodu zalecane jest dołączanie
interfejsu w sekwencji: instalacja ST-Lnik
w uruchamianym urządzeniu, zasilenie
mikrokontrolera, dołączenie ST-Linka do USB
w PC, uruchomienie gdbservera , inicjalizacja
sesji debugowania w TrueStudio.
Firma Atollic obiecuje usunąć ten błąd
w kolejnej wersji oprogramowania.
ELEKTRONIKA PRAKTYCZNA 5/2010
95
652390068.002.png 652390068.003.png 652390068.004.png 652390068.005.png 652390068.006.png 652390068.007.png 652390068.008.png 652390068.009.png 652390068.010.png 652390068.011.png 652390068.012.png 652390068.013.png 652390068.014.png 652390068.015.png 652390068.016.png 652390068.017.png 652390068.018.png 652390068.019.png
sprzęt
rys. 6. Okno debuggera w st-Link Utility
mowania są obiecujące. Program ST-Link Utili-
ty obsługuje w obecnie dostępnej wersji wyłącz-
nie pliki *.bin .
Rozrywkową alternatywą dla przedstawio-
nych programów jest prezentowany już w EP
program o nazwie STM32PRoGrammer, charak-
teryzujący się efektownym oknem w kształcie
motyla ( rys.   7 ). Program ten przygotował i udo-
stępnił producent polskiej wersji interfejsu ST-
Link – ZL30PRG. STM32PRoGrammer obsługu-
je pliki *.hex , nie został wyposażony w edytory
bajtów opcji i konigurujących.
rys. 3. Okno zmodyikowanego stVp umożliwiające dostęp do bajtów opcji i bitów
koniguracyjnych
Podsumowanie
Konstruktorzy i programiści z oczywistych
powodów chętnie wybierają do swoich aplika-
cji mikrokontrolery, dla których są łatwo do-
stępne tanie narzędzia uruchomieniowe, cze-
go dowodem jest ogromna, aczkolwiek powoli
gasnąca, popularność mikrokontrolerów z ro-
dziny AVR. Podobną drogą – opracowując tani
debugger-programator – poszła irma STMi-
croelectronics, dzięki czemu konstruktorzy
mogą korzystać z pełni możliwości środowisk
programistycznych i sprzętu wspierającego de-
bugowanie, wbudowanego w mikrokontrolery
z rdzeniem Cortex-M3. Na razie tylko fani ro-
dzin STM32 i STM8 mają tak poważne wspar-
cie ze strony producenta. Awangardowe po-
mysły polegające na wykorzystaniu narzędzi
programistycznych dostępnych w sieci (jak np.
mbed dla mikrokontrolerów NXP) zbyt mocno
– jak sądzę – wiążą konstruktorów z dostępem
do sieci i nie gwarantują bezpieczeństwa reali-
zowanych projektów. Interfejs ST-Link przybli-
ża świat 32-bitowych aplikacji także począt-
kującym konstruktorom i to bez konieczności
inwestowania znacznych środków.
Ciekawe, czy któryś z pozostałych produ-
centów mikrokontrolerów z rdzeniem Cortex
-M3 pójdzie tą samą drogą.
Andrzej Gawryluk
rys. 4. Okno zmodyikowanego stVp
umożliwiające zabezpieczenie pamięci
Flash przed modyikacjami i nieuprawnio-
nym odczytem
stycznego STVD ( ST Visual Develop ). Oprogra-
mowanie 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 (publikuje-
my go na płycie CD), dzięki któremu program
ten można wykorzystać – poza standardowymi
możliwościami związanymi z mikrokontrolera-
mi STM8 - także do programowania mikrokon-
trolerów STM32 ( rys.   2 ). Zmodyikowany STVP
zapewnia także dostęp do bajtów opcji i bitów
koniguracyjnych mikrokontrolerów ( rys.   3 ),
umożliwia także zabezpieczenie pamięci Flash
przed modyikacjami i nieuprawnionym odczy-
tem ( rys.   4 ).
Program STVP obsługuje pliki w formacie
*.hex , dostęp do pamięci mikrokontrolera odby-
wa się za pomocą jednego z dwóch interfejsów,
obsługiwanych przez ZL30PRG – SWD i JTAG.
„Gorącą” alternatywą dla zmodyikowanego
STVP jest przeznaczony specjalnie dla mikro-
kontroleró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 inter-
fejsu ZL30PRG i po-
chodnych – rys.   5 ),
ale także podglądać
zawartość jej oraz re-
jestrów CPU oraz ste-
rować pracą krokową
jednostki centralnej
( rys.   6 ). W obecnie do-
stępnej wersji trudno
to narzędzie trakto-
wać jako pełnowarto-
ściowy debugger, ale
zapowiedzi ze strony
producenta dalszego
rozwoju tego oprogra-
Pierwszy z nich to zmodyikowany STVP
( ST Visual Programmer ), opracowany przez
irmę STMicroelectronics, wchodzący w skład
dostępnego bezpłatnie środowiska programi-
rys. 5. Okno programatora w st-Link Utility
rys. 7. Okno programu stM32proGram-
mer
96
ELEKTRONIKA PRAKTYCZNA 5/2010
652390068.020.png 652390068.021.png 652390068.022.png 652390068.023.png
Zgłoś jeśli naruszono regulamin