Programowanie pamięci Flash mikrokontrolerów STM32 – Flash Loader.pdf

(873 KB) Pobierz
089-090_stm32_loader.indd
PODZESPOŁY
Programowanie pamięci
Flash mikrokontrolerów
STM32 – Flash Loader
Demonstrator
Pamięć Flash mikrokontrolerów STM32 może być programowana za
pomocą bootloadera zapisanego w pamięci systemowej programu,
który do ładowania programu wykorzystuje interfejs RS232.
Dzięki temu jest możliwe zaprogramowanie mikrokontrolera bez
konieczności posiadania dodatkowego sprzętu, poza zwykłym kablem
RS232 i układem konwertera napięć, który zazwyczaj jest elementem
większości systemów mikroprocesorowych. Jeśli natomiast obwody
służące do komunikacji za pomocą interfejsu RS232 nie zostały
umieszczone w systemie wystarczy podłączyć zewnętrzny konwerter
poziomów napięć, by móc niskim kosztem zaprogramować pamięć
mikrokontrolera przygotowanym programem.
We wspomniany bootloader wy-
posażono wszystkie aktualnie pro-
dukowane mikrokontrolery z rodziny
STM32F101xx oraz STM32F103xx.
Aby mikrokontroler wykonał program
bootloadera należy wymusić odpo-
wiedni dla pamięci systemowej stan
na wyprowadzeniach BOOT0 i BOOT1
( rys. 1 ) oraz wyzerować mikrokontro-
ler. Zależność pomiędzy stanem na
wyprowadzeniach BOOT0 i BOOT1
a rodzajem pamięci, z której wykony-
wany będzie program przedstawiono
w tab. 1 .
Tab. 1.
BOOT0 BOOT1 Obszar pamięci
0 x Pamięć Flash
1 0 Pamięć systemowa
1 1 Pamięć RAM
Z tabeli wynika,
iż bootloader zostanie
uruchomiony, gdy wy-
prowadzenie BOOT0
będzie się znajdo-
wało w stanie wyso-
kim, a wyprowadzenie
BOOT1 w stanie ni-
skim. Stan tych wy-
prowadzeń jest odczy-
tywany przy czwar-
tym narastającym
zboczu sygnału SYS
CLK po wyzerowa-
niu mikrokontrolera.
Bootloader komuni-
kuje się za pomocą
interfejsu USART1,
przy czym wykorzy-
stywane są tylko linie
USART1_RX (PA10)
oraz USART1_TX
(PA9). Pozostałe wy-
prowadzenia ukła-
du USART1 nie są
wykorzystywane przez bootloader.
Sygnał zegarowy jest otrzymywany
z wewnętrznego generatora RC wy-
sokiej częstotliwości, tak więc do
pracy bootloadera nie jest wymaga-
ny zewnętrzny oscylator kwarcowy.
Prędkość transmisji jest ustalana au-
tomatycznie przez bootloader, który
Rys. 1.
Rys. 2.
Elektronika Praktyczna 7/2008
89
652389101.038.png 652389101.039.png 652389101.040.png 652389101.041.png 652389101.001.png 652389101.002.png 652389101.003.png 652389101.004.png 652389101.005.png 652389101.006.png 652389101.007.png 652389101.008.png 652389101.009.png 652389101.010.png 652389101.011.png 652389101.012.png 652389101.013.png 652389101.014.png 652389101.015.png 652389101.016.png 652389101.017.png 652389101.018.png 652389101.019.png 652389101.020.png 652389101.021.png 652389101.022.png 652389101.023.png 652389101.024.png 652389101.025.png 652389101.026.png 652389101.027.png 652389101.028.png 652389101.029.png
PODZESPOŁY
gram ma postać kreatora, który krok
po kroku przeprowadza użytkownika
przez proces programowania pamięci
Flash.
Jako pierwsze jest wyświetlane
okno powitalne ( rys. 2 ). Po kliknięciu
przycisku Next wyświetlone zostanie
okno pokazane na rys. 3 , służące do
określenia numeru portu COM oraz
parametrów transmisji, przy czym je-
dyną opcją mogącą wymagać zmiany
przez użytkownika jest numer portu
COM. Pozostałe parametry nie wy-
magają zmian. Na tym etapie należy
ustawić na wyprowadzeniach BOOT0
i BOOT1 odpowiedni stan oraz wy-
zerować mikrokontroler. Po kliknię-
ciu przycisku Next zostanie podjęta
próba nawiązania łączności z mikro-
kontrolerem. W przypadku jej niepo-
wodzenia zostanie wyświetlone okno
z komunikatem jak na rys. 4 . Przyczy-
ną braku komunikacji może być źle
wybrany numer portu COM lub nie-
poprawny stan na wyprowadzeniach
BOOT0 i BOOT1. Kolejne okno służy
do wyboru grupy, do której należy
programowany mikrokontroler ( rys. 5 ).
W polu Flash Mapping zostaną wy-
świetlone wszystkie dostępne dla da-
nej grupy sektory pamięci Flash wraz
z ich adresami oraz atrybutami. Ko-
lejne okno ( rys. 6 ) służy do wyboru
operacji, jaka ma zostać wykonana
na pamięci Flash programowanego
mikrokontrolera. Do wyboru mamy
kasowanie (opcja Erase ) całego obsza-
ru pamięci lub tez wybranych sekto-
rów pamięci ( rys. 7 ). Opcja Downlo-
ad służy do przesłania programu do
mikrokontrolera. Plik z kodem pro-
gramu może być zapisany w trzech
formatach: binarnym ( *.bin ), Intel–
HEX ( *.hex ) oraz Motorola S–Record
( *.s19 ). W przypadku pliku binarnego
możemy określić adres, pod którym
zostanie umieszczony ładowany pro-
gram. W przypadku pozostałych forma-
tów adres ten jest określony w pliku,
a opcja określenia adresu jest nieak-
tywna. Opcja Upload służy do odczy-
tu zawartości pamięci Flash. Podobnie
jak w przypadku kasowania pamięci,
możliwy jest wybór poszczególnych
sektorów pamięci Flash, których za-
wartość ma zostać odczytana. Program
Flash Loader Demostrator w obecnej
wersji posiada drobne niedociągnięcie.
Mianowicie odczytywane dane muszą
być zapisane do już istniejącego pli-
ku – program nie jest w stanie samo-
dzielnie utworzyć pliku, do którego
trafią odczytane dane. Spowodowane
jest to faktem, iż wyświetlone zosta-
Rys. 7.
Rys. 3.
dostosowuje ją na podstawie danych
odebranych z komputera PC.
Flash Loader Demonstrator
Firma STMicroelectronics dostarcza
aplikację dla systemu Windows prze-
znaczoną do programowania pamięci
Flash mikrokontrolerów STM32 z wy-
korzystaniem umieszczonego w pamięci
systemowej bootloadera i portu COM
komputera PC. Program Flash Loader
Demostrator jest dostępny pod adre-
sem http://www.st.com/stonline/products/
support/micro/files/um0462.zip (publi-
kujemy go także na CD–EP7/2008B).
Po rozpakowaniu archiwum należy
uruchomić znajdujący się wewnątrz
plik UM0462.exe i zainstalować pro-
gram Flash Loader Demostrator. Pro-
Rys. 8.
Rys. 9.
Rys. 4.
nie okno dialogowe Otwórz w sytuacji,
gdy właściwe byłoby okno dialogowe
Zapisz jako… . Po określeniu rodza-
ju operacji wykonywanej na pamięci
Flash oraz wybraniu odpowiednich
plików i sektorów w pamięci, należy
kliknąć przycisk Next . Nastąpi przej-
ście do kolejnego okna ( rys. 8 ) oraz
zostanie wykonana wybrana operacja.
W oknie będą wyświetlone szczegóły
na temat aktualnie wykonywanej ope-
racji oraz pasek postępu operacji. Po-
myślne zakończenie operacji zostanie
zasygnalizowane odpowiednim komu-
nikatem wyświetlonym na pasku po-
stępu ( rys. 9 ). Po kliknięciu przycisku
Finish program zostanie zamknięty.
Teraz pozostaje nam tylko przywró-
cić na liniach BOOT0 i BOOT1 stan
właściwy dla wykonywania programu
z pamięci Flash (BOOT0 = 0; BOOT1
= 0) oraz wyzerowanie mikrokontro-
lera. Załadowany program powinien
zostać wykonany.
Radosław Kwiecień, EP
radoslaw.kwiecien@ep.com.pl
Rys. 5.
Rys. 6.
90
Elektronika Praktyczna 7/2008
652389101.030.png 652389101.031.png 652389101.032.png 652389101.033.png 652389101.034.png 652389101.035.png 652389101.036.png 652389101.037.png
Zgłoś jeśli naruszono regulamin