77_78.pdf

(96 KB) Pobierz
Kodowy wojownik
P R O G R A M Y
Czy znamy mikrokontrolery firmy Mo-
torola? Zapewne ka¿dy, kto ma jakiekol-
wiek zwi¹zki z technik¹ mikroprocesorow¹
s³ysza³ o nich. Z sonda¿y nie wynika, ¿e-
by produkty Motoroli cieszy³y siê szcze-
góln¹ popularnoci¹ wród polskich kon-
struktorów, nie mniej jednak ci, którzy je
stosuj¹ s¹ do nich na pewno bardzo przy-
wi¹zani. To dla nich wspó³pracuj¹ca
z Motorol¹ firma Metrowerks stworzy³a
bardzo wydajne narzêdzie do pisania
i uruchamiania programów. To prawdziwy
kodowy wojownik, który z ca³¹ swoj¹
niema³¹ moc¹ bêdzie zwalcza³ b³êdy po-
pe³nione przez programistê. Pe³na
nazwa produktu to CodeWarrior In-
tegrated Development Environment
(IDE) . Mamy wiêc do czynienia
z kompletnym, zintegrowanym ro-
dowiskiem, do którego nale¿¹:
- Mened¿er projektu ( Project Ma-
nager ) - to segment zbieraj¹cy
wszystkie elementy sk³adowe
projektu, czyli pliki ród³owe
poszczególnych modu³ów, pliki
nag³ówkowe, inicjuj¹ce i konfi-
guracyjne dla kompilatora i lin-
kera. Wszystkie s¹ widoczne w jednym
oknie, mog¹ wiêc byæ ³atwo tworzone
i poprawiane.
- Edytor kodu ród³owego ( Source Code
Editor ) - specjalny edytor, w którym
mo¿na wykonywaæ wymienione wy¿ej
prace edycyjne z ka¿dym plikiem ród-
³owym wchodz¹cym w sk³ad projektu.
Dysponuje oczywicie takimi mechaniz-
mami jak wyszukiwanie i zamiana
okrelonych fragmentów tekstu w jed-
nym lub wielu plikach. Wygodn¹ opcj¹
podczas koniecznoci jednoczesnego
kontrolowania wielu miejsc programu
jest podzia³ okna na kilka czêci.
W ka¿dej z nich mog¹ byæ umieszczone
¿¹dane fragmenty tekstu. Edytor umo¿-
liwia ³atwe przechodzenie pomiêdzy pli-
kiem ród³owym i zwi¹zanymi z nim
plikami interfejsowymi ( rys. 1 ), wsta-
Tylko ten, kto kiedykolwiek
napisa³ choæby niewielki
programik wie, ¿e aby z kilku
tajemniczych znaczków, symboli
i skrótów przemieni³ siê
w funkcjonalny program
dzia³aj¹cy w jakim
mikroprocesorze, trzeba z nim
stoczyæ czêsto ciê¿k¹
i zazwyczaj nierówn¹ walkê.
Nierówn¹, bo przeciwnik jest
bezwzglêdny i w dodatku
wirtualny. To kod pisanego
programu, który wydaje siê
drwiæ z ka¿dego, nawet
najmniejszego b³êdu
programisty. Jednak cz³owiek
zawsze d¹¿y³ do panowania
nad wiatem. W pracowniach
Metrowerks stworzono do tej
walki specjalnego wojownika.
ona umieszczona w innym pliku ród-
³owym. Tekst jest wywietlany w oknie
edytora w kolorach, z wyró¿nia-
niem s³ów kluczowych. Najlepiej
wygl¹da, gdy zastosuje siê propor-
cjonaln¹ czcionkê np. Courier
New. Dostêpne opcje konfiguracji
edytora zadowol¹ nawet najbar-
dziej wybrednych.
- Przegl¹darka ( Browser ) - to ok-
no, w którym dokonuje siê uru-
chamiania programu. Widoczne
s¹ zarówno niskopoziomowe roz-
kazy mikrokontrolera jak i in-
strukcje jêzyka wysokiego pozio-
mu (np. C). Równie¿ wykonanie pro-
gramu mo¿e przebiegaæ na niskim lub
wysokim poziomie. W ka¿dej chwili
widoczne s¹ aktualne wartoci zmien-
nych programu i rejestrów mikrokont-
rolera.
Nie musisz p³aciæ!
Motorola wspólnie z firm¹ Metrowerks
udostêpnia bezp³atn¹ wersjê CodeWarrio-
ra, która umo¿liwia kompilacjê progra-
mów pisanych w asemblerze oraz
w C (wy³¹cznie w przypadku kompilacji na
mikrokontrolery z rodziny Nitron - czyli
najnowsze wersje HC08).
wianie zak³adek jednoczenie w wielu
miejscach tekstu. Programici, którzy
tworz¹ programy modu³owe, doceni¹ za-
pewne mo¿liwoæ wykonania natych-
miastowego skoku do tekstu ród³owego
wskazanej procedury, nawet jeli jest
Rys. 1
Rys. 2
Elektronika Praktyczna 2/2003
77
32568614.001.png 32568614.002.png 32568614.003.png
P R O G R A M Y
Ju¿ z powy¿szych charakterystyk wyni-
ka, ¿e CodeWarrior umo¿liwia komforto-
w¹ pracê na profesjonalnym poziomie.
Dodajmy do tego, ¿e programista ma do
dyspozycji kompilator jêzyka C/C++ gene-
ruj¹cego bardzo efektywny kod. Gdyby
jednak zachodzi³a potrzeba jego
rêcznego optymalizowania np. pod
wzglêdem szybkoci dzia³ania lub zajêto-
ci pamiêci programu, to z pomoc¹ przy-
chodzi Macro Asembler. Program mo¿e
byæ przy tym napisany w ca³oci w asem-
blerze, mog¹ byæ tak¿e dokonywa-
ne tylko wstawki asemblerowe
w programie pisanym w jêzyku C.
Jeli mówimy ju¿ o optymalizacji,
to nie bez znaczenia bêdzie pod-
krelenie umiejêtnoci linkowa-
nia tylko niezbêdnych (faktycznie
u¿ywanych) obiektów do koñcowe-
go programu wykonywalnego. Jest
on generowany w formatach: Mo-
torola S-Records, Intel Hex lub binarnym.
Ci¹g³¹ rozbudowê w³asnego zaplecza pro-
gramowego u³atwi na pewno Libmaker -
narzêdzie do tworzenia w³asnych biblio-
tek. Uruchamianie programu na etapie sy-
mulacji przebiega w czasie rzeczywistym
z uwzglêdnieniem urz¹dzeñ peryferyjnych
i bez wzglêdu na jêzyk w którym jest na-
pisany program (asembler, C, C++).
konkretnego procesora lub systemu ope-
racyjnego. Jest to doæ zaawansowana
technika, stwarzaj¹ca jednak bardzo sze-
rokie mo¿liwoci dla pojedynczego pro-
gramisty lub ich zespo³ów. W projekcie
mo¿na umieszczaæ równie¿ pliki doku-
mentuj¹ce, które zazwyczaj s¹ plikami
tekstowymi, ale nie tylko. Dopuszczalne
jest równie¿ stosowanie np. popularnego
formatu PDF. Techniki manipulowania
plikami - tworzenie nowych, kopiowanie,
grupowanie w folderach, kasowanie, itp.
na ¿ywym organizmie. Po uruchomie-
niu debugera ukazuj¹ nam siê liczne ok-
na przydatne do wykrywania b³êdów lo-
gicznych programu ( rys. 2 ). Widzimy
wiêc wersjê ród³ow¹ (najczêciej bêdzie
to jêzyk C) oraz aktualnie wykonywany
fragment programu na poziomie asemble-
ra. Mamy przegl¹d pamiêci, rejestrów,
stanu urz¹dzeñ peryferyjnych wykorzysty-
wanych w systemie, historiê wykonanych
operacji, liczne okna inspekcyjne. Na tym
etapie uruchamiamy program krokowo
lub w sposób ci¹g³y, zarówno na
poziomie jêzyka C, jak i kodu pro-
cesora. Proces debugowania prze-
biega w bardzo precyzyjnie okre-
lonym rodowisku. Jest to na
pewno zaleta, ale i wada jedno-
czenie, gdy¿ niedowiadczonemu
programicie odpowiednie skonfi-
gurowanie programu mo¿e przy-
sporzyæ sporo problemów. Nieste-
ty w artykule nie ma miejsca na dok³ad-
ne przedstawienie wszystkich zagadnieñ.
Bez problemów
Aby otrzymaæ bezp³atn¹ wersjê
CodeWarriora wystarczy wype³niæ kupon
zg³oszeniowy znajduj¹cy siê na stronie
internetowej firmy Motorola pod adresem:
www.motorola.com.
s¹ bardzo intuicyjne. S³u¿¹ do tego spe-
cjalne okna (rys. 1). Utworzenie projektu
przebiega w trzech etapach:
- Budowanie projektu ( Building a Project ).
- Wykonanie projektu ( Making a Project ).
- Symulacja i debugowanie projektu ( Si-
mulating and Debugging a Project ).
Pierwszy etap polega na podaniu nazw
projektu, okreleniu lokalizacji plików,
ustaleniu wykorzystywanych jêzyków
programowania, przygotowaniu wersji
ród³owych poszczególnych modu³ów.
W drugim etapie dokonuje siê kompila-
cji i linkowania. Podczas tworzenia roz-
budowanych projektów programista naj-
czêciej koncentruje siê na kolejnym
uruchamianiu poszczególnych modu³ów.
CodeWarrior pozwala mu na kompilowa-
nie jedynie wybranych, dziêki czemu nie
marnuje siê czasu na wielokrotne powta-
rzanie tych samych operacji. Doæ cieka-
w¹ mo¿liwoci¹, o której warto wspo-
mnieæ jest disasemblowanie bibliotek.
Po wstêpnym wyczyszczeniu programu
z b³êdów formalnych mo¿na przyst¹piæ
do nastêpnej fazy walki z programem,
w której kodowy wojownik znowu odda
nam nieocenion¹ przys³ugê. Ten etap jest
najprzyjemniejszy dla programisty, bo po-
woli, krok po kroku, pozwala weryfiko-
waæ przyjête za³o¿enia ogólne, zastosowa-
ne algorytmy, sztuczki programowe, itp.
Dzia³ania te mog¹ ju¿ byæ wykonywane
Wszyscy s¹ zadowoleni
Najró¿niejsi malkontenci trafiaj¹ siê
doæ czêsto. Wydaje mi siê jednak, ¿e
trudno bêdzie znaleæ kogo, kto by³by
niezadowolony z CodeWarrior a. Nie jest
to narzêdzie ³atwe do opanowania, co po-
cz¹tkowo mo¿e zniechêcaæ u¿ytkowników
do jego stosowania, ale te¿ nie s³u¿y ono
do tworzenia kolejnych wersji mikroproce-
sorowych pipków-drêczycieli lecz bardzo
wyrafinowanego oprogramowania. Jest to
narzêdzie w pe³ni profesjonalne, dzia³aj¹-
ce na ró¿norodnych platformach sprzêto-
wych i systemach operacyjnych, obs³ugu-
j¹ce bogat¹ listê mikrokontrolerów, a tak¿e
procesorów sygna³owych Motoroli.
Wszystko jest znakomicie udokumento-
wane (sam podrêcznik jêzyka C/C++, to
blisko 700-stronicowa ksi¹¿ka w wersji
elektronicznej). Zaznajamianiu siê
wojownikiem bêd¹ pomagaæ animowa-
ne tutoriale, a zagubiony u¿ytkownik
w ka¿dej chwili mo¿e liczyæ na wsparcie
techniczne dostêpne poprzez wszystkie
powszechnie stosowane rodki komunika-
cji. Najwie¿sze informacje o produktach
firmy Metrowerks mo¿na znaleæ na stro-
nie firmowej: http://www.metrowerks.com .
Jaros³aw Doliñski, AVT
jaroslaw.dolinski@ep.com.pl
Piszemy program
Tworzenie w³asnego projektu za pomo-
c¹ CodeWarrior a w zasadzie nie ró¿ni
siê niczym specjalnym od podobnych
programów wielokrotnie ju¿ opisywa-
nych na ³amach EP. Nie bêdziemy wiêc
zbyt g³êboko wchodziæ w szczegó³y.
Tworzenie koñcowego programu u¿ytko-
wego dla wybranego mikrokontrolera
przebiega w kilku etapach. Na wstêpie
programista musi zorganizowaæ sobie
warsztat pracy, czyli okreliæ projekty
( projects ) i podprojekty - tzw. cele ( tar-
gets ). Dziêki temu CodeWarrior zadba
o prawid³ow¹ organizacjê plików i usta-
wieñ wykorzystywanych do kreowania
programu. Projekt, to plik zawieraj¹cy je-
den lub wiêcej podprojektów. Podprojekt
natomiast to kolekcja plików z kodami
ród³owymi wykorzystywanych modu-
³ów, bibliotek, ustawieñ, a tak¿e inne
projekty. Elementy podprojektów okrela-
j¹, jak ma byæ utworzony program dla
78
Elektronika Praktyczna 2/2003
32568614.004.png
Zgłoś jeśli naruszono regulamin