kursC_czesc001.pdf
(
830 KB
)
Pobierz
koppelC01.qxd
Programowanie
P r o g r a m o w a n i e p r o c e s o r ó w
w j ę z y k u C
Część 1
Panuje powszechna opinia, że C jest języ−
kiem bardzo trudnym. Mam nadzieję, że
szybko przekonam Cię, że wcale tak być
nie musi. Kurs ten ma ambicje stać prze−
dłużeniem i uzupełnieniem zakończonego
właśnie kursu mikroprocesorowej Oślej
łączki, gdzie wykorzystany był BASCOM
– dialekt języka BASIC. Czasami będę się
odwoływał do Twojej wiedzy na temat tego
właśnie języka. Chcę zaznaczyć jednak,
że wiedza ze wspomnianego kursu może
być pomocna w zrozumieniu tego, co chcę
przekazać, nie jest jednak bezwzględnie
konieczna.
Z zawartych tutaj informacji możesz
skorzystać, także jeśli znasz biegle język C,
ale nie programowałeś jeszcze w nim
mikrokontrolera. Także jeśli posługiwałeś
się do tej pory BASCOM−em lub asemble−
rem, możesz poznać zupełnie nowy, cieka−
wy sposób pracy. Nawet jeżeli masz już za
sobą napisanie niejednej aplikacji w C
działającej na mikrokontrolerze, możesz
znaleźć tutaj coś dla siebie. Przedstawię
bowiem trochę informacji o tym „jak to
działa od środka”, co pomoże w lepszym
zrozumieniu tego, co się dzieje z Twoim
programem.
Na początek pokażę Ci, jak zdobyć
i skonfigurować całkowicie za darmo i le−
galnie bardzo przyzwoite narzędzie pracy.
Następnie chwilkę poświęcimy temu,
z jakiego sprzętu będziemy korzystać
w najbliższym czasie. Po takim wstępie
spróbujemy napisać pierwszą, prostą apli−
kację.
Kursów C jest mnóstwo zarówno w Inter−
necie, jak i w różnego typu publikacjach.
Ja jednak nie chcę się skupiać na C jako
takim. Przede wszystkim chcę pokazać,
w jaki sposób można w tym języku zapro−
gramować mikrokontroler.
Zajmiemy się mikrokontrolerem
AV R
i kompilatorem
GCC.
Mimo iż C jest już
pewnym standardem, nie wszystko, o czym
będzie tutaj mowa, możesz przenieść bezpo−
średnio na inny kompilator. Musisz liczyć się
z tym, że poszczególne kompilatory od czy−
stego C muszą się troszkę zdystansować. Jest
to związane z występowaniem w mikrokon−
trolerach elementów nieujętych w standar−
dzie, jak na przykład układ przerwań. Na
wszelkie niestandardowe fragmenty postaram
się zwrócić Twoją uwagę.
Na początku może wydać się to trudne,
może nie wszystko z pierwszego kodu zro−
zumiesz... Umówmy się, że w chwili, gdy
trafisz na niezrozumiały fragment − po prostu
go przepiszesz... wyjaśnienie zapewne pojawi
się wcześniej czy później, a ja z doświadcze−
nia wiem, że nic bardziej nie cieszy, jak dzia−
łający układ... i nic lepiej nie uczy niż prak−
tyka.
Pewne podstawowe informację jak i cie−
kawostki oraz „rodzynki” będę umieszczał
w ramkach, tak że będziesz mógł do nich zaj−
rzeć, jeśli coś wyda się niejasne. Łatwo
będzie Ci także sięgnąć do tych informacji
w przyszłości, gdy zaczniesz pisać już
całkowicie samodzielne programy.
Zacznijmy więc... na trzy! Trzy kroki.
większej ilości języków niż tylko C. Jednak
część z nich w wersji dla procesorów AVR
nie została do końca zaimplementowana, co
sprawia, że pisanie w nich programu wymaga
wiedzy nie tylko o danym języku, ale także
o istniejących ograniczeniach. Aby dłużej już
nie zaciemniać sprawy, umówmy się, że w tej
chwili będziemy korzystać tylko z kompilato−
ra C, pozwalając sobie czasami na niewielkie
ustępstwa pozwalające prościej zapisać jakąś
funkcję. w takim przypadku będę jednak
zaznaczał, że dana składnia nie jest zgodna ze
standardem ANSI C.
Pakiet zawierający
AVR−GCC
w wersji
dla Windows uzyskał nazwę
WinAvr –
warto
wiedzieć o tym przy poszukiwaniu odpowied−
nich plików. Cały pakiet
jest udostępniany na
licencji typu
Open Sour−
ce.
Oznacza to, że osoba
czuwająca nad projektem
udostępnia cały jego kod
źródłowy. Praktycznie
każdy może wnieść do
programu coś nowego.
Nas jednakże w tej chwili
interesuje to, że kompila−
tor ten można ściągnąć
całkowicie za darmo. Nie
spotkasz się tutaj z ja−
kimikolwiek ogranicze−
niami, na przykład długo−
ści kodu wynikowego.
Pobieranie programu mo−
żesz rozpocząć od strony
domowej projektu:
http://winavr.sourcefor−
ge.net/
Strona jest dość przej−
rzysta. Warto zapamiętać
ten adres ze względu na
mnogość przydatnych
odnośników w dziale „Links”. Aktualnie jed−
nak proponuję przejście na stronę:
http://sourceforge.net/projects/winavr/
Jeśli nie widzisz linku na stronie domowej,
możesz także wpisać podany adres bezpo−
średnio w okienko przeglądarki. Powinieneś
ujrzeć teraz stronę podobną do tej na
rysun−
ku 1.
Także na wspomnianym rysunku
w skrócie opisałem jak postępować dalej.
W chwili pisania tego kursu dysponowa−
łem wersją programu
20050214.
Okazuje się,
że między kolejnymi wersjami pojawiają się
czasami różnice sprawiające, że poprzednio
napisany program nie zostanie skompilowany
Rys. 1 Strona ściągania kompilatora
WinAVR
Krok pierwszy
− zbieranie narzędzi
a/. Pakiet WinAVR
. Do kompilacji naszych
programów skorzystamy ze znakomitego
kompilatora
AVR−GCC.
Kompilator ten co
prawda potrafi „przełknąć” kod napisany w
36
Elektronika dla Wszystkich
Programowanie
bez pewnych drobnych zmian. Jeśli pojawi
się jakikolwiek problem z kompilacją przed−
stawionych programów, proponuję Ci na
początek pobranie tej samej wersji kompilato−
ra. Po dokonaniu wyboru, zgodnie z
rysun−
kiem 1,
pojawi się jedno z okienek przedsta−
wionych na
rysunku 2.
Wybieramy pasującą
nam opcję. Zostaniemy przekierowani do
strony z zapytaniem, z jakiego serwera chce−
my skorzystać. Wybieramy dowolny, najle−
piej w Europie. Po chwili powinno rozpocząć
się pobieranie pliku. Jak widać na przedsta−
wionych ilustracjach, najnowsza w chwili
pisania tego tekstu wersja miała rozmiar
14MB. Pobieranie może więc chwilę potrwać.
b/. AVRStudio4
. Drugim pakietem, z któ−
rego będziemy korzystać, jest znakomite
AVRStudio. Dokładniej – skorzystamy z mo−
żliwości emulacji programu. Najnowszą wer−
sję AVRStudio udostępnia nieodpłatnie firma
ATMEL na swojej stronie domowej. Przy
odrobinie szczęścia program ten znajdziesz
na jakimś krążku w czasopiśmie, ważne jed−
nak, aby była to wersja minimum 4.10.
Dopiero ta wersja akceptuje format pliku,
z którego będziemy korzystać w celu emulo−
wania programu.
Mimo iż AVRStudio4 nie umożliwia
pisania programów w C, pozwala na bar−
dzo wygodną ich symulację. Uważam, że
dużo wygodniejszą niż miało to miejsce
w poprzedniku, który z kolei znakomicie
integrował się z dowolnym kompilatorem
C... o ironio...
Jeśli nie przeraża Cię pobranie z sieci
41MB danych – gorąco zachęcam Cię do
zassania najnowszej wersji oprogramowania
ATMEL−a. Ja w chwili pisania tego kursu
dysponowałem wersją
4.11
i dokładnie tej
wersji dotyczyć będzie dalszy opis. Poniżej
przedstawiam krok po kroku, jak pobrać
wspomniane oprogramowanie. Wejdź na stro−
nę główną firmy ATMEL:
www.atmel.com
Spójrz na
rysunek 3.
Pokazałem na nim
kolejne przejścia od strony głównej do strony
zawierającej informacje o procesorach AVR.
Poczekaj chwilę, aż nowa strona zostanie
władowana, następnie z pomarańczowego
menu po lewej stronie wybierz pozycję
„Tools & Software”.
Po chwili pojawią się
dostępne narzędzia dla procesorów AVR. Bez
problemu powinieneś znaleźć tutaj AVR Stu−
dio 4. Nie przytaczam kolejnego
obrazka – przejście jest bardzo proste.
Znajdziesz się na stronie umożliwiają−
cej pobranie dokumentacji opisującej
interesujący nas program, dodatko−
wych wtyczek do niego oraz oczywi−
ście samego programu. Dla naszego
kursu znaczenie ma odnośnik w stylu:
AVR Studio 4.11 (build 401).
Za krót−
ką lub też dłuższą chwilę – zależnie od
możliwości Twojego łącza oraz chwi−
lowego obciążenia sieci – powinieneś
dysponować już wszystkimi potrzeb−
nymi nam programami. Następnym
krokiem będzie ich instalacja oraz
konfiguracja.
polecam Ci odznaczenie opcji
„Add Directo−
ries to PATH”.
Proponowane ustawienie
opcji przedstawiłem na
rysunku 4.
Osobiście
jestem przeciwnikiem dodawania czegokol−
wiek do PATH−a. Informację o tym dlaczego
mam takie obiekcje, znajdziesz w
ramce
„PATH – co to takiego?”
. Przy sposobie,
w jaki będziemy używać kompilatora, dodat−
kowe utrudnienie będzie polegało tylko na
dodaniu jednej linijki do skryptu kompilacji.
Rys. 4 Zmiany podczas instalacji
WinAVR
Krok drugi
− instalacja i konfiguracja
Programy, których użyjemy, mają własne
instalatory, więc nie powinno być z nimi pro−
blemów. Przy
AVRStudiu
przyjmijmy zasa−
dę, aby nie przeszkadzać instalatorowi i zga−
dzać się na wszystkie jego domyślne propo−
zycje. Instalator
WinAVR
zaraz po pytaniu
o folder docelowy wyświetli okienko
„Wybór komponentów”.
W okienku tym
Zmienna systemowa PATH zawiera ścież−
ki, w jakich system ma szukać żądanego
programu. Jeśli chcesz się przekonać, jak to
działa, uruchom
„Wiersz polecenia”
(
w starszych systemach będzie to
„Tryb
MS−DOS”).
Wpisz teraz polecenie
edit
i naciśnij ENTER. Pojawi się znany niektó−
rym edytor tekstowy. Możesz spróbować
także innych komend, na przykład
mspa−
int, notepad.
Możesz próbować z poziomu
innego katalogu – zmień katalog polece−
niem cd.
Skąd system wie, gdzie ma
szukać informacji? Wyjdź z uru−
chomionego programu i wydaj
inną komendę:
path
. Dostaniesz
informację na temat co „siedzi”
we wspomnianej zmiennej.
Okazuje się, że w chwili gdy
wydajesz komendę
edit
, system
szuka wszelkich plików urucha−
mialnych o podanej nazwie
(edit.exe, edit.com, edit.bat).
Najpierw przeszukuje aktualny
folder. Jeśli nie znajdzie odpo−
wiedniego pliku, sięga do kolej−
nych ścieżek znajdujących się
w zmiennej PATH. Wpisy prze−
twarzane są w kolejności od
pierwszego do ostatniego.
WinAVR korzysta z tego udo−
godnienia, umożliwiając urucho−
mienie swojego programu o na−
zwie
make.exe
z poziomu folderu
Rys. 2 Wybór konkretnego pliku
do pobrania
Rys. 3 Strona firmy
ATMEL
Elektronika dla Wszystkich
37
Programowanie
zawierającego pliki naszego programu. Czy
teraz widzisz niebezpieczeństwo? Zastanów
się przez chwilę, co się stanie, jeśli w po−
dobny sposób zechcesz zainstalować kom−
pilator C dla procesorów 51, może ARM?
Zapewniam Cię, że nazwa
make.exe
wśród
kompilatorów nie jest wcale rzadka. Myślę,
że już zaczynasz rozumieć – w takim przy−
padku przy próbie kompilacji zostanie uru−
chomiony ten kompilator, który jako pierw−
szy wpisze swoje dane do PATH−a. Do
pozostałych będziesz mógł się dostać tylko
przez bezpośrednie podanie pełnej ścieżki.
Jak rozwiązać przedstawiony problem?
Dalej napiszemy banalne pliki wsadowe
które ustawią odpowiednio wspomnianą
zmienną tylko w chwili kompilacji i tylko
dla jej wątku. Nie tylko dodadzą odpowied−
nie katalogi. Po prostu ustawimy perma−
nentnie katalogi takie, jakie są nam potrzeb−
ne, zupełnie nie przejmując się poprzednią
zawartością zmiennej. W ten prosty sposób
ominiemy przedstawiony wyżej problem,
jednocześnie nie zmniejszając komfortu
obsługi naszych narzędzi. Ważne jest to, że
w systemie Windows takie przypisanie nie
przybiera formy stałej. Obowiązuje tylko
dla aktualnie działającego programu.
wyjaśnień wpisz podobnie jak poprzednio
skrypt z
listingu 2.
Zapisz go jako
C:\WinAVR\clean.bat.
„Programmers Notepad”.
Jeśli tak jest, uru−
chamiamy go. W przeciwnym przypadku uru−
chamiamy bezpośrednio plik
C:\WinAVR\pn\pn.exe.
Po pierwszym uruchomie−
niu program powinien wyglą−
dać mniej więcej tak jak na
rysunku 5.
Ja pomniejszyłem okienko spe−
cjalnie, tak aby widoczne były wszystkie ele−
menty kontrolne, a jednocześnie obrazek nie
zajmował wiele miejsca. W celu „zbratania”
kompilatora z uruchomionym właśnie edyto−
rem wydajemy następujący ciąg komend:
Tools−>Options.
W okienku, które się ukaza−
ło, wybieramy z listy po lewej stronie opcję
Tools.
Upewniamy się, że w rozwijalnej liście
„scheme”
podświetlone jest pole
„(None –
Global Tools)”.
Na
rysunku 6
umieściłem
okienko, jakie powinno się pojawić oraz spo−
sób jego wywołania. Zauważysz teraz, że in−
stalator domyślnie dodał do zestawu naszych
narzędzi trzy dotyczące naszego kompilatora.
Okazuje się jednak, że domyślne ustawienia
nie działają, jeśli podczas instalacji nie
zezwoliliśmy na dodanie wpisów do PATH−a.
Poza tym, narzędzia te można skonfigurować
troszkę wygodniej. Bez większego żalu
Listing 2
Gratuluję – właśnie stworzyłeś coś, co
nazwiemy skryptami kompilacji. Pierwszy z
nich spowoduje skompilowanie Twojego pro−
gramu. Drugi umożliwi automatyczne usunię−
cie wszystkich plików tworzonych przez
kompilator – czasami okazuje się to bardzo
wygodne. Jeśli będziesz chciał na przykład
zapisać na dyskietkę kopię swojego progra−
mu, nie musisz dodawać wszystkich plików
powstałych podczas kompilacji. Jedna
komenda i masz tylko to co najważniejsze.
Działanie powyższych skryptów jest tak
samo proste, jak ich napisanie. W pierwszej
linii obu z nich pojawia się ustawienie ścieżek,
których potrzebuje kompilator
AVR−GCC.
Pamiętasz? Wspomniałem już o tym, że bę−
dziemy musieli to zrobić ręcznie. Następnie
wywoływane jest polecenie
make.exe
kompi−
latora. Plik, do którego się odwołujemy, znaj−
duje się w katalogu
C:\WinAVR\utils\bin
. Zależ−
nie od tego, z jakimi zostanie wywołany
parametrami, wywoła on inne programy
z pakietu kompilatora. Wydanie komendy
make.exe
bez parametru, jest równoważ−
ne z komendą
make.exe all.
Powoduje
uruchomienie wszystkich procesów
koniecznych do kompilacji programu.
Automatycznie utworzone zostaną pliki,
które będziemy mogli wpisać do pamięci
docelowego urządzenia, oraz specjalny
plik umożliwiający symulację programu.
Z kolei, jak się łatwo domyślić, parametr
clean
spowoduje usunięcie wszystkich
plików poza tymi, które utworzyliśmy
sami. Skrypty te należy uruchomić z kata−
logu zawierającego pliki programu.
Można to zrobić nawet bezpośrednio za
pomocą konsoli, a same pliki pisać w no−
tatniku... ale my mieliśmy stworzyć sobie
przyjemniejszy zestaw narzędzi. W celu
pisania kodu, jego kompilacji, wreszcie
zarządzania ca−
łym projektem,
wykorzystamy
bardzo wygodny
i uniwersalny program o nazwie
„Programmers Notepad”.
Korzy−
stam z tego narzędzia już od
dwóch lat i w tym czasie program
przeszedł wiele zmian. O ile na
początku praca była dość kłopotli−
wa, w tej chwili śmiało mogę
powiedzieć, że narzędzie jest
rewelacyjne – mam nadzieję, że
w najbliższym czasie uda mi się
przekonać Ciebie, że tak jest w is−
tocie. Na pulpicie powinien się
znajdować teraz skrót o nazwie
Na resztę warunków instalacji zgadzamy
się bez sprzeciwów. Na początkowym etapie
przygody z GCC dotyczy to także ścieżki
docelowej instalacji. Dalszy opis dotyczy
standardowo zainstalowanego kompilatora do
katalogu
C:\WinAVR.
Katalog instalacyjny
AVRStudio
nie ma znaczenia. W tym miej−
scu oba programy powinny już być zainstalo−
wane. Zajmijmy się więc ich konfiguracją.
Na początek proponuję stworzenie pro−
ściutkiego skryptu, który przeprowadzi
wszystkie czynności mające na celu kompila−
cję dowolnego programu. Dalej opisane pliki
teoretycznie możesz umieścić gdziekolwiek.
Aby nie czynić zamieszania, proponuję Ci
zapisać je w katalogu
C:\WinAVR.
Uruchom
dowolny edytor tekstowy, najlepiej niech
będzie to prosty windowsowy Notatnik.
Wpisz w nim kod widoczny na
listingu 1.
Rys. 5 Programmers Notepad
Rys. 6 Wejście w konfigurację narzędzi
(Tools)
Listing 1
Uważaj: Bardzo ważny w pierwszej linii jest
brak spacji pomiędzy poszczególnymi ścież−
kami oraz naokoło znaku równości! Przy
zignorowaniu tego faktu skrypt może w ogóle
nie działać.
Po przepisaniu podanego listingu
zapisz plik w wybranym folderze – dla ujed−
nolicenia naszej sytuacji umówmy się, że
przynajmniej na początku zapiszesz plik tak
jak ja – w folderze
C:\WinAVR,
pod nazwą
make.bat.
Pamiętaj o wpisaniu rozszerzenia
podczas zapisywania. Jeśli o tym zapomnisz,
plik zostanie zapisany z domyślnym rozsze−
rzeniem jako
make.txt.
Chwilowo jeszcze bez
38
Elektronika dla Wszystkich
Programowanie
zaznaczamy więc kolejno wszystkie wpisy,
przyciskając za każdym razem przycisk
Remove.
Gdy mamy już puste pole, wybiera−
my, znajdujący się nieco wyżej, przycisk
Add.
Pojawi się okienko „Właściwości: New
Tool”. Zakładkę
„Properties”
wypełnij tak,
jak to pokazałem na
rysunku 7.
Przy polu
Command
znajduje się przycisk z trzema
kropkami. Możesz użyć go w celu znalezienia
naszego pliku
make.bat.
Pole
Shortcut
wypełniamy w troszkę nietypowy sposób:
kliknij myszą na polu do wprowadzania
danych, a następnie – uwaga – przyciśnij
przycisk F7. I już. Możesz oczywiście spró−
bować innej kombinacji klawiszy.
Na kolejnej zakładce nie powinno być
potrzeby wprowadzania jakichkolwiek
zmian. Na wszelki wypadek jednak upewnij
się, że ustawienia są zgodne z tymi przedsta−
wionymi na
rysunku 8.
Jeśli wszystko się
zgadza, zatwierdzamy utworzenie nowego
narzędzia, klikając
OK.
Aktualnie mamy już
możliwość wygodnej kompilacji programu
z poziomu naszego „Notatnika”. Dodajmy
jeszcze możliwość wywołania drugiej z utwo−
rzonych przez nas komend.
W identyczny sposób jak poprzednio
dodaj nowe narzędzie. Edytuj ustawienia tak,
aby zgadzały się z tymi na
rysunku 9.
Za−
kładka
„Console I/O”
powinna być wypeł−
niona identycznie jak poprzednio. W okienku
tworzenia narzędzi całą naszą pracę potwier−
dzamy przyciskiem
OK.
W tej chwili nasz
„notatnik” jest już skonfigurowany i gotowy
do pracy.
stowe wypróbowanie nowej wiedzy. Jeśli do
tego zapoznałeś się z treścią artykułu „Progra−
mator BASCOM−a pomocą przy programo−
waniu w C, asemblerze, itd...” (EdW 1/2005)
– wierzę, że znakomicie poradzisz sobie
z dalszą częścią kursu.
Na
rysunku 10
przedstawiam schema−
tycznie przyporządkowanie funkcji wypro−
wadzeniom procesora w płytce, której będzie−
my już za chwilę używać. Uprości to zrozu−
mienie (oraz pisanie ;]) kodów programów.
Natomiast na
fotografii 1
możesz zobaczyć
sprzęt, z jakiego korzystałem przy wykony−
waniu pierwszego ćwiczenia. Przy okazji
Mikroprocesorowej Oślej łączki, w numerze
2/2003 wykonany był identyczny układ
– 5 diod z rezystorami ograniczającymi
(około 200
Krok trzeci
− przygotowanie
części sprzętowej
Myślę, że wielu z Was ucieszy fakt, że dziś
skorzystamy z dokładnie tego samego sprzę−
tu, na jakim opierał się kurs BASCOM−a.
Osobom uczestniczącym do tej pory aktywnie
w poprzednim kursie umożliwi to natychmia−
) podłączonych anodami w stro−
nę wyjść Q2−Q6, a katodami w stronę wypro−
wadzenia GND. Przy odrobinie wprawy
układ można zmontować „na pająku” w 10
minut.
Rys. 7 Narzędzie „make”
Rys. 8 Zakładka „Console I/O”
Rys. 9 Narzędzie „clean”
GCC – idea pracy
Jeśli używałeś do tej pory kompilatora
BASCOM, prawdopodobnie przyzwyczaiłeś
się już do przyjemnego interfejsu użytkowni−
ka oraz przycisku „Compile current file...”.
GCC jest inny – chcę, abyś zrozumiał, że sam
kompilator praktycznie może działać bez
jakiegokolwiek środowiska programisty.
Przy odrobinie wprawy można uruchomić go
bezpośrednio z linii komend i w ten sposób
przeprowadzić kompilacje. Z drugiej jednak
strony możliwe jest wykorzystanie jakiego−
kolwiek zewnętrznego środowiska programi−
sty. Jednym z powodów tej swoistej uniwer−
salności GCC jest idea plików
makefile
. Plik
taki zawiera informacje, jakie narzędzia
powinny zostać uruchomione, jakie pliki
kompilować, w jaki sposób połączyć skompi−
lowane pliki w program (linkowanie), w ja−
kim formacie program powinien zostać
wygenerowany. W pliku
makefile
mogą zna−
leźć się także inne informacje – skorzystali−
śmy z jednej z nich, umożliwiającej nam
czyszczenie projektu. Wywoływana przez nas
komenda
make
jest w zasadzie interpreterem
plików
makefile.
Komenda ta poszukuje
w aktualnym katalogu pliku o nazwie
makefi−
le
(brak rozszerzenia). Gdy go odnajdzie,
wykonuje zapisany w nim program.
Spodziewasz się prawdopodobnie, że
skoro taki plik zawiera tak dużą ilość infor−
macji, zapewne jest (po)tworem dość skom−
plikowanym. Jeśli tak myślisz... masz rację.
Nie przerażaj się jednak w tym momencie.
Twórcy
WinAVR
zadbali o to, aby ułatwić
nam zadanie. Stworzyli specjalny szablon,
bardzo łatwy i intuicyjny do modyfikacji.
W praktyce okazuje się, że nie będziemy
musieli modyfikować nic więcej niż kilka
pierwszych linii. Już za chwilę przekonasz
się, że po kilku praktycznych próbach pliki
makefile
wydają się całkowicie naturalne.
*Przy pisaniu tekstu tej ramki korzysta−
lem z artykulu “Downloading, Installing and
Configuring WinAVR”, którego autorem
jest: Colin O’Flynn, edytorem: Eric Wed−
dington. Artykuł dostępny w dokumentacji
na stronie domowej projektu:
http://winavr.sourceforge.net/download/instal
l_config_WinAVR.pdf
Elektronika dla Wszystkich
39
Ω
Programowanie
Start!
− pierwszy program:
Nasz pierwszy programik, jak tradycja na−
kazuje, będzie banalny w swym działaniu.
Jego przeznaczeniem jest umożliwienie zapo−
znania się z najbardziej podstawowymi zagad−
nieniami C oraz z zasadami pracy z nowymi
narzędziami. Aby ułatwić Ci zadanie, na
rysunku 11 umieściłem opis krok po kroku, co
powinieneś zrobić żeby móc rozpocząć pisa−
nie nowego programu. W ramce „Plik make−
file” znajdziesz natomiast dokładny opis,
jakie zmiany powinieneś wprowadzić w tytu−
łowym pliku.
Obrazek opisujący kolejne kroki do rozpo−
częcia programu jednoznacznie przedstawia,
jak okiełznać Programmers Notepada w połą−
czeniu z WinAVR. Postaram się więc wyja−
śnić jedynie sens oraz celowość tych działań.
Przyzwyczaj się do tego, aby każdy nowy
program umieszczać w osobnym folderze.
Zauważ, że program kompilowany przez
GCC
musi
posiadać plik o nazwie
makefile
.
Bez tego nie jest możliwa jego kompilacja.
Ponieważ dla każdego programu plik ten
będzie miał różną formę, umieszczanie kilku
programów w tym samym katalogu wydaje
się nierealne. Nie jest to jednak żadnym ogra−
niczeniem. W praktyce umieszczanie więk−
szej ilości kodów w jednym folderze powo−
duje tylko bałagan na dysku. Tematowi pliku
makefile
poświęciłem już dwie ramki. Na
rysunku 11
pokazuję jedynie, skąd skopio−
wać go do folderu naszego programu. Nie−
wiele natomiast wspominałem o projektach.
Jest to bardzo wygodne rozwiązanie od nie−
dawna dostępne w Programmers Notepadzie.
Plik projektu zawiera w zasadzie tylko opis,
Rys. 10 Przyporządkowanie
wyprowadzeń
Plik makefile
Przygotowany przez twórców AVR−GCC
plik – szkielet zawiera wszystko co potrzeb−
ne, aby skompilować własną aplikację.
Powinien się on znajdować w katalogu
C:\WinAVR\sample. Zawiera bogate komen−
tarze, tak że nie ma problemu ze zrozu−
mieniem jego działania. W najprostszych
aplikacjach musisz znać jedynie jego pierw−
sze linie, które są przedstawione na rysunku
obok. Jeśli zmodyfikujesz je zgodnie z przy−
toczonym opisem, będziesz gotowy już do
tworzenia kodu aplikacji. Jeśli do tej pory
pisałeś programy za pomocą środowiska
BASCOM – zauważ, że za pomocą dość
wygodnego pliku tekstowego robisz właśnie
to, co do tej pory robiłeś za pomocą menu
okienkowego lub dodając odpowiednie
komendy sterujące w programie. Pamiętasz
komendy takie jak
$crystal, $regfile...?
A może korzystałeś zawsze z ustawień
w menu Options−>Compiler−>Chip...? Teraz
robimy dokładnie to samo i jeśli zrozumiałeś
na czym polega konfiguracja kompilatora
BASCOM, teraz też poradzisz sobie bez
trudu.
40
Elektronika dla Wszystkich
Plik z chomika:
tomaszsmaz3
Inne pliki z tego folderu:
kursC_czesc018.pdf
(401 KB)
kursC_czesc017.pdf
(1126 KB)
kursC_czesc016.pdf
(1204 KB)
kursC_czesc015.pdf
(2765 KB)
kursC_czesc014.pdf
(1115 KB)
Inne foldery tego chomika:
Dokumenty
Galeria
inne
Instrukcje Lego
Noty katalogowe
Zgłoś jeśli
naruszono regulamin