81_83.pdf

(116 KB) Pobierz
Realizacja projektów na 8051 przy pomocy oprogramowania firmy IAR Systems
K U R S
Realizacja projektów
na 8051 przy pomocy
oprogramowania firmy
Rozpoczynamy cykl
artyku³ów przybli¿aj¹cych
Czytelnikom kompilator jêzyka
C dla procesorów rodziny
MCS-51. Oprogramowanie
wykorzystywane przez nas do
opracowania cyklu publikacji
opracowa³a firma IAR-Systems,
jeden z najbardziej licz¹cych
siê na wiecie producentów
zaawansowanych narzêdzi dla
programistów.
Rozpoczynamy od krótkiej
prezentacji wymagañ
i mo¿liwoci systemu.
W kolejnych odcinkach cyklu
dok³adnie omówimy jego
poszczególne modu³y i zasady
tworzenia programów dla '51
w jêzyku wysokiego poziomu.
Wród wielu dostêpnych na
rynku narzêdzi do projektowania
systemów opartych na mikrokon-
trolerach MCS-51 na czo³owe
miejsce wysuwa siê kompilator
jêzyka C opracowany przez ame-
rykañsk¹ firmê IAR-Systems. Pro-
gram pracuj¹cy w rodowisku
Windows stanowi zintegrowane
rodowisko do tworzenia zaró-
wno prostych, jak i bardzo z³o-
¿onych projektów.
Pakiet sk³ada siê z kilku za-
sadniczych czêci:
3
programu typu shell o nazwie
Workbench, który udostêpnia
wszystkie opcje kompilatora
oraz dodatkowe programy pa-
kietu;
sprzêtowego Hasp, bez którego
system dzia³a jedynie w wersji
demo (bez mo¿liwoci zapisu na
dysk, kompilacji oraz pozosta-
³ych strategicznych funkcji pa-
kietu).
Pomimo tego, ¿e producent
pakietu zaleca u¿ytkowanie sys-
temu pod opiek¹ Windows 95,
redakcyjne testy odby³y siê g³ów-
nie na komputerze wyposa¿onym
w Windows 3.1x, 32 MB RAM
i procesor AMD-5X86/133. Kolej-
ne próby prowadzilimy na kom-
puterze z procesorem Pen-
tium166 z 32 MB RAM i Win-
dows 95.
Jedyn¹ zauwa¿aln¹ ró¿nic¹
w dzia³aniu programu na tych
dwóch platformach by³a mo¿li-
woæ kontynuowania edycji pro-
gramów ród³owych lub ledze-
nia kodu z jednoczesn¹ kompi-
lacj¹ programów ród³owych
(praca wielozadaniowa).
W przypadku instalacji pakie-
tu pod MS-Windows 3.1x pro-
gram automatycznie instaluje 32-
bitow¹ nak³adkê zapewniaj¹c¹
32-bitowy dostêp do zasobów
oraz prawid³ow¹ pracê progra-
mu.
Oto krótka charakterystyka
podstawowych programów pa-
kietu.
3
kompilatora C-ANSI na 8051
z wieloma dodatkowymi funk-
cjami zorientowanymi na 8051;
3
asembler 8051 oraz linker;
3
program do obs³ugi relokowal-
nych modu³ów typu object,
wykorzystywanych zarówno
przez asembler jak i kompila-
tor C (Xlib Librarian);
narzêdzie do symulacji i le-
dzenia programów C-Spy de-
bugger.
Firma IAR oferuje 3 podstawo-
we wersje tego oprogramowania,
przeznaczone dla trzech ró¿nych
rodowisk: DOS, Windows oraz
Unix. My mielimy okazjê zapoz-
naæ siê z wersj¹ pracuj¹c¹ pod
nadzorem programów Windows.
Wymagania sprzêtowe pakietu
w wersji Windows Workbench s¹
nastêpuj¹ce:
-Windows 95, Windows NT 3.51
(lub póniejsze) lub MS-Win-
dows 3.1x;
-min. 15 MB wolnego miejsca na
dysku twardym;
-min. 4 MB RAM dla aplikacji
IAR;
-1 port drukarkowy Centronics.
Ten ostatni element jest nie-
zbêdny do zainstalowania klucza
EMBEDDED WORKBENCH
- uniwersalny shell
Umo¿liwia on:
-tworzenie projektów o struktu-
rze hierarchicznej;
-pe³ne zintegrowanie wszystkich
narzêdzi z edytorem tekstowym;
-dziêki wbudowanej funkcji
Make mo¿liwa jest komplek-
sowa kompilacja i asemblacja
zbiorów;
-ma wbudowan¹ funkcjê Help
w postaci hypertekstu;
-jest wyposa¿ony w wiele u¿yt-
kowych funkcji wyszukiwania;
Elektronika Praktyczna 3/97
81
3
30450344.007.png 30450344.008.png
K U R S
-bezporednie wskazanie róde³
b³êdów powsta³ych w czasie
kompilacji;
-mo¿liwoæ oddzielnego ustawia-
nia opcji programowych dla
ca³ego projektu, wybranych jego
czêci lub pojedynczych zbio-
rów ród³owych;
-jest wyposa¿ony w edytor tek-
stowy z barwn¹ i stylow¹ syg-
nalizacj¹ wyra¿eñ stanowi¹cymi
sk³adniê jêzyka C.
Wygl¹d okna shella wraz
z opisami przedstawia rys.1 .
identyfikatorów do max. 255
znaków;
-mo¿liwoæ definiowania max.
32 000 symboli;
-szybka kompilacja programów
ród³owych, dziêki tworzeniu
bufora dla kompilatora w pa-
miêci RAM;
-mo¿liwoæ ³¹czenia kodu u¿yt-
kownika z procedurami asemb-
lerowymi;
-rygorystyczna kontrola deklara-
cji typów w czasie kompilacji
oraz parametrów poszczegól-
nych modu³ów u¿ytych w trak-
cie linkowania;
-mo¿liwoæ wyboru sposobu op-
tymalizacji kodu (pod wzglê-
dem szybkoci lub rozmiaru);
-mo¿liwoci generowania kodu
wyjciowego w wielu formatach,
w tym relokacyjny format bi-
narny, format asemblera ASM,
³¹czony: ASM+C, XREF i wiele
innych;
-przejrzyste komunikaty o b³ê-
dach i ostrze¿eniach;
-pe³na kompatybilnoæ z debug-
gerem C-SPY na wysokim po-
ziomie (tzn. mo¿liwoæ symula-
cji na poziomie ród³owym ko-
du, poziomie C lub ³¹czonym);
-generacja w pe³ni relokowal-
nych kodów wynikowych bez
¿adnych ograniczeñ na pozio-
mie jêzyka ród³owego;
-mo¿liwoæ wyboru modelu pa-
miêci przy generacji kodu: tiny,
small, compact, medium large
i banked;
-elastycznoæ w umieszczaniu
sta³ych i zmiennych programu,
w³¹czaj¹c w to typy SFR i BIT
(ma to znaczenie przy tworze-
niu np. aplikacji wykorzystuj¹-
cych wewnêtrzn¹ i zewnêtrzna
pamiêæ programu jednoczenie);
-obs³uga przerwañ bez potrzeby
stosowania jawnych instrukcji
asemblera.
XLINK - linker
Zawarty w pakiecie linker ³¹-
czy modu³y relokacyjne tworzo-
ne za pomoc¹ kompilatora
C i asemblera firmy IAR, dosto-
sowuj¹c kod wynikowy do kon-
kretnego typu mikrokontrolera.
Program ten pozwala na wybór
szerokiej gamy powszechnie sto-
sowanych formatów, ³¹cznie
z formatem akceptowanym przez
debugger C-Spy.
Mo¿liwoæ wyboru niezbêd-
nych do pracy programu modu-
³ów, czas linkowania jest skró-
cony do minimum. Finalny zbiór
wynikowy mo¿na bezporednio
zaprogramowaæ w pamiêci EEP-
ROM w kontrolerze, za³adowaæ
do emulatora sprzêtowego kon-
kretnego procesora, lub wyko-
rzystaæ podczas analizy progra-
mu w programie debuggera. Pro-
gram Xlink umo¿liwia:
-³¹czenie nieograniczonej liczby
zbiorów wejciowych;
-wywo³ywanie programu za po-
moc¹ bezporednio podanej ko-
mendy, poprzez czytanie zada-
nego zbioru komend lub po-
przez po³¹czenie tych dwóch
metod;
-definiowanie symboli o d³ugo-
ci do 255 znaków, z rozró¿nia-
niem ma³ych i du¿ych liter;
-definiowanie symboli global-
nych na poziomie linkera;
-mo¿liwoæ deklarowania adre-
sów segmentów: kodu i danych;
-obs³ugê ponad 30 formatów ko-
du wynikowego.
C-COMPILER
Jest to kompilator ANSI C,
który obs³uguje standardow¹
sk³adniê jêzyka C oraz dodatko-
wo wiele rozszerzeñ opracowa-
nych specjalnie dla procesora
8051. Kompilator zawiera tak¿e
asembler dla rodziny MCS-51.
Taka integracja zapewnia równo-
uprawniony podzia³ zasobów po-
miêdzy linker i program obs³ugi
bibliotek procedur standardo-
wych.
Cechy charakterystyczne kom-
pilatora:
-zgodnoæ sk³adni jêzyka z zale-
ceniami standardu ANSI;
-jest on wyposa¿ony w standar-
dowe biblioteki funkcji jêzyka
C;
-jest on wyposa¿ony w pe³en
zestaw funkcji arytmetyki
zmiennoprzecinkowej (zgodny
z IEEE);
-ma rozbudowane rozszerzenia
i funkcje dedykowane systemom
opartym na 8051, w³¹czaj¹c
w to efektywn¹ obs³ugê portów
I/O;
-mo¿liwoæ u¿ywania d³ugich
Rys. 1.
XLIB - manager
bibliotek
Program ten umo¿liwia spraw-
ne zarz¹dzanie relokowalnymi
modu³ami w postaci bibliotek
funkcji i procedur standardo-
wych, tworzonych przez kompi-
latora C lub asemblera.
Cechy charakterystyczne pro-
gramu:
- mo¿liwoæ edycji modu³ów,
dodawania nowych, zamiany,
usuwania lub zmiany ich na-
zwy;
-mo¿liwoæ edycji i zmiany nazw
segmentów oraz symboli;
82
Elektronika Praktyczna 3/97
30450344.009.png 30450344.010.png 30450344.001.png 30450344.002.png 30450344.003.png
K U R S
Rys. 2.
2. Emulator Version - w tej wer-
sji mo¿liwa jest wspó³praca
z emulatorem uk³adowym kon-
kretnego procesora. Po³¹czenie
z komputerem odbywa siê,
w zale¿noci od zastosowa-
nego uk³adu emulacyjnego,
poprzez port szeregowy lub
równoleg³y.
3. ROM-Monitor Version - ta wer-
sja umo¿liwia pracê w trybie
rzeczywistym procesora przy
wykorzystaniu standardowych
systemów uruchomieniowych
pracuj¹cych z zewnêtrzn¹ pa-
miêci¹ programu. Ze wzglêdu
na pewne ograniczenia oraz
mniej skomplikowany interfejs
jest to rozwi¹zanie tañsze od
wersji 2.
Prezentowany pakiet progra-
mów firmy IAR jest doskona³ym
narzêdziem dla wszystkich pro-
gramistów systemów opartych na
popularnych kontrolerach 8051.
Przejcie z typowego asemblero-
wego sposobu projektowania do
programowania wy¿szego pozio-
mu nie zajmuje wiele czasu.
Dziêki dobrze opracowanej do-
kumentacji technicznej oraz wie-
lu przyk³adom wprowadzaj¹cym
u¿ytkownika w system, mo¿na
przyswoiæ sobie obs³ugê pakietu
w kilka dni.
Ogromn¹ zalet¹ jest opcja bu-
dowania bibliotek relokowalnych
modu³ów tak na poziomie asem-
blera, jak i jêzyka C. W efekcie
programista stopniowo obudo-
wuje siê baz¹ gotowych proce-
dur i funkcji, dziêki którym czas
uruchomienia dowolnego syste-
mu zostaje ograniczony do mi-
nimum. W tym miejscu niema³e
znaczenie ma pomoc silnego na-
rzêdzia, jakim jest wspomniany
debugger C-Spy.
S³awomir Surowiñski, AVT
-interaktywna lub wsadowa ob-
s³uga programu.
nych obszarach pamiêci, mo¿e
tak¿e zmieniaæ ich wartoci tak,
jak ma to miejsce w innych
debuggerach.
W skrócie wszystkie mo¿li-
woci programu C-SPY charakte-
ryzuj¹:
-w pe³ni przyjazna, intuicyjna
praca w rodowisku Windows;
-ledzenie programu z poziomu
jêzyka C i asemblera;
-szybki symulator programowy;
-rozbudowany jêzyk makropole-
ceñ;
-kompleksowa obs³uga przerwañ
debuggera;
-mo¿liwoæ przerwania (zatrzy-
mania) programu w ka¿dej
chwili;
-opcjonalnie: mo¿liwoæ pracy
w czasie rzeczywistym (w wer-
sji z emulatorem).
Przy analizie na poziomie C de-
bugger oferuje dodatkowo:
-analizator wyra¿eñ jêzyka C;
-korzystanie z pamiêci ladu
(trace);
-pe³ne rozpoznawanie i interpre-
tacja zmiennych;
Je¿eli korzystamy ze ledzenia
na poziomie asemblera, to mo-
¿emy skorzystaæ z:
-pe³nego podgl¹du zmiennych,
rejestrów specjalnych i pamiêci
danych;
-wbudowanego disasemblera.
Program C-Spy jest dostêpny
w 3 wersjach:
1. Simulator Version - pozwala
ona na kompleksow¹ progra-
mow¹ symulacjê programu
u¿ytkownika. Jest to najtañsze
rozwi¹zanie, aczkolwiek w wie-
lu przypadkach w zupe³noci
wystarczaj¹ce.
C-SPY - debugger
Program ten wymaga oddziel-
nej instalacji. W przypadku pra-
cy w systemie Windows staje siê
on integraln¹ czêci¹ shella Wor-
kbench. Mo¿e byæ on tak¿e wy-
wo³any oddzielnie z poziomu
Mened¿era programów. Wygl¹d
okna dzia³aj¹cego programu
przedstawi rys.2 .
C-SPY zosta³ zaprojektowany
specjalnie do u¿ytku wraz z kom-
pilatorem C, asemblerem, progra-
mem XLINK, XLIB firmy IAR.
Dziêki niemu mo¿liwe jest ko-
rzystanie z technik ledzenia nis-
kiego (asembler) i wysokiego po-
ziomu (jêzyk C). W ka¿dej chwili
u¿ytkownik ma mo¿liwoæ prze-
³¹czania ledzenia na jeden z wy-
branych poziomów.
ledzenie programu na pozio-
mie jêzyka C jest metod¹ szybk¹,
czêsto stosowan¹ w praktyce
przy analizie mniej krytycznych
czêci kodu, kiedy to nie zale¿y
nam na sposobie w jaki kompi-
lator przekoduje nasz program
do postaci asemblera 8051. Pod-
czas pracy w tym trybie, pro-
gram na bie¿¹co umo¿liwia pod-
gl¹d wartoci wszystkich zmien-
nych oraz struktury danych wy-
korzystanych w danej aplikacji.
Gdy niezbêdna jest dok³adna
analiza krytycznych fragmentów
programu warto skorzystaæ ze
ledzenia na poziomie asemble-
ra. W tym trybie u¿ytkownik ma
mo¿liwoæ podgl¹du wszystkich
rejestrów procesora, zmiennych,
struktur danych w predefiniowa-
Oprogramowanie udostêpni³a
redakcji firma RK-System.
Elektronika Praktyczna 3/97
83
30450344.004.png 30450344.005.png 30450344.006.png
Zgłoś jeśli naruszono regulamin