Mikrokontrolery ARM cz8


K U R S
Mikrokontrolery
z rdzeniem ARM, część 8
Pierwszy projekt
Przechodzimy do pierwszego nie pliki startowe dostosowane do
konkretnego modelu. Inaczej jest
projektu na ARM-y  będą to
w przypadku wykorzystania pakie-
banalne efekty  choinkowe na
tu gnuarm, który jest przeznaczo-
diodach świecących, ale w pełni
ny nie dla konkretnego typu mi-
krokontrolerów jednego producenta,
ilustrujące sposób korzystania
ale dla różnych odmian pochodzą-
z możliwości środowiska Eclipse.
cych od różnych producentów. Je-
dyną ich cechą wspólną jest rdzeń
Pisząc programy dla mikrokon- ARM natomiast sposób inicjalizacji,
trolerów AVR z użyciem kompila- peryferia, mapa pamięci mogą być
tora avr-gcc musieliśmy stworzyć zupełnie odmienne, dlatego pliki
tylko plik makefile określający za- startowe musimy stworzyć samo-
leżności kompilacji pomiędzy pli- dzielnie. Pliki, jakie musimy stwo-
kami, oraz pliki samego projektu. rzyć to: Skrypt linkera, w którym
Pozostałe elementy niezbędne do zawarte są informacje o umiesz- Rys. 21.
prawidłowego przebiegu kompilacji czeniu w pamięci poszczególnych
(plik startowy oraz skrypty linke- sekcji danych oraz kodu programu. Pokaże nam się okno dialogowe,
ra) zawarte były w samym pakie- Plik startowy, w którym zawar- z którego wybieramy opcję: Stan-
cie WinAVR. Na podstawie opcji ty jest startowy kod inicjalizujący dard Make C++ Project. Następnie
 m określającej typ procesora były peryferia mikrokontrolera takie jak klikamy przycisk Next>, pojawi się
automatycznie pobierane odpowied- pętla PLL czy kontroler pamięci wówczas kolejne okno dialogowe.
MAM oraz inicjalizujÄ…cy obsza- W polu tekstowym Project Name
ry pamięci zgodnie ze standardem wpisujemy nazwę projektu np.
ANSI C/C++. PiszÄ…c nowy projekt Ledy i wciskamy klawisz Finish, co
nie będziemy musieli tworzyć od spowoduje utworzenie nowego pu-
nowa plików startowych, wystarczy, stego projektu. Kolejną czynnością
że stworzymy je jednorazowo dla jest import plików do projektu.
danej rodziny mikrokontrolerów, Możemy tego dokonać klikając pra-
a pózniej będziemy je kopiować do wym przyciskiem myszy na otwar-
nowego projektu. Pierwszym pro- tym projekcie (tak jak przedstawio-
gramem, jakim zajmiemy się na no na rys. 20), a następnie wybrać
łamach niniejszego kursu będzie polecenie Import.
przykładowy program zapalający po Pojawi się okno dialogowe,
kolei diody LED umieszczone w ze- z którego wybieramy opcję Archive
stawie ZL6ARM (www.kamami.pl). File, wówczas zobaczymy kolejne
Będzie on nam mógł pózniej po- okno, w którym klikamy przycisk
służyć jako wzorzec przy tworze- Browse i wybieramy plik ep3.zip
niu własnych projektów. Wykorzy- z przykładowym projektem, któ-
stywać będziemy pliki startowe ry można ściągnąć ze strony EP
oraz plik reguł makefile tak, aby w dziale Download. Po prawej stro-
za każdym razem nie tworzyć ich nie pokaże się lista plików znajdu-
od nowa. Na poczÄ…tek opiszemy, jÄ…cych siÄ™ w archiwum (rys. 21).
w jaki sposób stworzyć najprostszy Ponieważ wykorzystywać będzie-
projekt w Eclipse, a następnie zaim- my gotowy program pozostawiamy
portujemy do niego wszystkie pliki zaznaczone wszystkie pliki i wci-
z przykładowego projektu błyska- skamy klawisz Finish. Gdybyśmy
jącego diodami, skompilujemy go, mieli zamiar tworzyć własny pro-
oraz zaprogramujemy pamięć Flash jekt powinniśmy odznaczyć plik
mikrokontrolera obserwując efekt led.cpp, który jest przykładowym
działania programu. Po urucho- programem mrugającym diodami
mieniu Eclipse wybieramy z me- LED. Pozostałe pliki są plikami
Rys. 20. nu polecenie File->New->Project. niezbędnymi do przeprowadzenia
Elektronika Praktyczna 7/2006
101
K U R S
Tab. 4. Pliki projektu i ich funkcje
Nazwa pliku Przeznaczenie
Plik startowy inicjalizujący układy peryferyjne mikrokontrolerów LPC213x oraz
boot.s
inicjalizujący pamięć RAM zgodnie z wymaganiami standardu ANSI C/C++
Plik dla linkera określający, w jaki sposób rozmieścić poszczególne segmenty
w pamięci. Jest on skonfigurowany tak, aby program i dane stałe były umiesz-
lpc2138-rom.ld
czone w pamięci Flash, natomiast zmienne umieszczone zostaną w pamięci
RAM.
lpc213x.h Plik nagłówkowy, zawierający definicję rejestrów mikrokontrolerów LPC213x
Rys. 22.
Plik konfiguracyjny dla narzędzia make służącego do określenia zależności
makefile
pomiędzy plikami projektu
procesu kompilacji. Po tej czynno-
led.cpp Przykładowy program mrugający diodami (efekt węża świetlnego)
ści możemy przystąpić do kompi-
lacji projektu, czego możemy do-
konać wydając z menu polecenie rys. 23 przedstawiono proponowa- plik wynikowy ledtst.elf., z którego
Project->Build All. Jeżeli wszystko ny sposób konfiguracji programu. za pomocą programu konwertują-
przebiegło poprawnie projekt zosta- Należy wybrać typ mikrokon- cego tworzony jest plik ledtst.hex.
nie skompilowany w wyniku, cze- trolera, wpisać częstotliwość kwar- W pliku makefile będziemy zapisy-
go powstanie plik ledtst.hex. Jeżeli cu mikrokontrolera oraz zaznaczyć wać przebieg procesu kompilacji,
wystąpił błąd podczas kompilacji, opcję używania linii DTR/RTS słu- co przy wykorzystaniu standardo-
w zakładce Problems pojawi się żących do uruchamiania i zerowa- wego szablonu jest bardzo proste.
opis błędu. Po kliknięciu na wy- nia mikrokontrolera. W przypadku Poniżej przedstawiono makefile na-
branym komunikacie zostaniemy zmiany pliku HEX (np. w wyniku szego projektu. Nie będziemy się
przeniesieni linii, w której wystąpił dopisania fragmentu kodu) nie mu- tutaj zagłębiać w szczegółowy opis
błąd. simy po każdej kompilacji ponow- narzędzia make. Zainteresowanych
Bardzo ciekawą i przydatną nie wybierać nazwy pliku, gdyż odsyłam do literatury lub Interne-
funkcją Eclipse są inteligentne przed każdym poleceniem załado- tu. Przedstawimy tylko fragmenty,
podpowiedzi, które podpowiadają wania pamięci Flash jest on od- które będziemy musieli zmieniać
programiście, jakie metody i pola czytywany od nowa, co jest istot- tworząc własne projekty:
#tutaj wpisz nazwe pliku hex
znajdujÄ… siÄ™ w danej klasie/struktu- nÄ… zaletÄ… programu.
TARGET = ledtst
rze. Po prawej stronie umieszczo-
na jest zakładka Outline, w której Pliki projektu W powyższej linii wpisujemy
w sposób graficzny przedstawiono W tab. 4 przedstawiono pliki, nazwę pliku wynikowego HEX, jaki
poszczególne klasy, zmienne, funk- jakie znalazły się w naszym pierw- zostanie wygenerowany w wyniku
cje definicje itp. Pozostało nam szym projekcie oraz funkcje, jakie kompilacji:
CFLAGS = -Os -fpack-struct -mcpu=ar-
teraz zaprogramowanie mikrokon- pełnią.
m7tdmi -Wall  gstabs
trolera, w tym celu za pomocÄ… ka- Przebiegiem kompilacji projek-
bla łączymy port COM0 zestawu tu zarządza narzędzie GNU make, Polu CFL AGS przypisujemy
ZL6ARM z wybranym portem sze- które na podstawie pliku konfigu- opcje kompilatora, jakie będą użyte
regowym komputera. Schemat ka- racyjnego makefile określa na pod- przy tworzeniu projektu.
bla połączeniowego przedstawiono stawie odpowiednich zależności, co Flaga  Os określa stopień opty-
na rys. 22. i w jakiej kolejności ma być kompi- malizacji kompilatora na najmniej-
Po podłączeniu zestawu uru- lowane. Poza tym make kompiluje szy rozmiar pliku wynikowego.
chamiamy program LPC2000 Flash tylko te pliki, które uległy zmia- Inna często wykorzystywana
Utility.W polu tekstowym Filename nie. TworzÄ…c plik makefile musimy opcja to  O3, generujÄ…ca najszyb-
wpisujemy ścieżkę do pliku ledtst. zbudować odpowiednie zależności szy kod wynikowy.
hex a następnie wciskamy przycisk i reguły określające, w jaki sposób Opcja  fpack-struct zakazu-
Upload to Flash. Po chwili pro- powstać ma plik wynikowy. Przed je kompilatorowi wyrównywania
gram zostanie załadowany i urucho- zapoznaniem się z budową makefi- struktur pustymi bajtami, a więc
miony. Na diodach LED (D4& D11) le najpierw przedsta-
zestawu ZL6ARM powinien ukazać wimy przebieg proce-
się efekt punktu świetlnego. Przy su kompilacji naszego
pierwszym uruchomieniu progra- pierwszego projektu
mu należy skonfigurować program (rys. 24).
LPC2000 Flash Utility. Na rysunku Poprzez kompilacjÄ™
plików led.cpp oraz
lpc213x.h powstaje
plik wynikowy led.
o, natomiast z pliku
boot.s tworzony jest
plik wynikowy boot.o.
Z plików led.o boot.o
na podstawie skryp-
t u l p c 2 1 3 8 - r o m . l d
Rys. 23. powstaje ostateczny Rys. 24.
Elektronika Praktyczna 7/2006
102
K U R S
struktura ma dokładnie taką postać
jak jest zadeklarowana.
Opcja  mcpu=arm7tdmi określa
typ procesora.
Opcja  Wall nakazuje kompila-
torowi generowanie szczegółowych
ostrzeżeń kompilacji.
Opcja  gstabs nakazuje genero-
wanie informacji dla debugera.
#pliki zrodlowe
SRC = led.cpp
#pliki assemblerowe
ASRC = boot.s
W polu SRC wpisujemy li-
stę wszystkich plików zródłowych
*.cpp występujących w projekcie
oddzielajÄ…c je spacjami natomiast
w polu ASRC wpisujemy listÄ™ pli-
ków asemblerowych *.s:
#Zaleznosci pomiedzy plikami w C
boot.o: boot.s
Rys. 25.
led.o: led.cpp lpc213x.h
#zaleznosci pomiedzy plikami konco-
wymi
o zależy od plików led.cpp oraz sne konfiguracje na podstawie po-
$(TARGET).elf: boot.o led.o lpc2138-
rom.ld
lpc213x.h. Plik wynikowy $(TAR- wyższego szablonu musimy pamię-
Powyższe linie opisują wcześniej GET).elf zależy od plików boot. tać, aby poprawnie zapisać wszyst-
wspomniane zależności pomiędzy o led.o lpc2138-rom.ld. W ten wła- kie zależności, gdyż w przeciwnym
plikami zródłowymi oraz wyniko- śnie prosty sposób możemy budo- przypadku program wynikowy
wymi. Odczytujemy je w sposób wać nawet bardzo skomplikowane może działać niepoprawnie.
następujący: plik boot.o zależy od projekty bez obawy o prawidłowy Lucjan Bryndza SQ7FGB, EP
(powstaje z) pliku boot.s. Plik led. przebieg kompilacji. Tworząc wła- lucjan.bryndza@ep.com.pl
Wieloletnie doskonalenie uczyniÅ‚o nas najbardziej wszechstronnym producentem czððci i systemów samochodowych.
Zatrudniamy prawie 200 tysiðcy pracowników w prawie 200 zakÅ‚adach produkcyjnych na caÅ‚ym ðwiecie. Nowoczesna
technologia i jakoðð staÅ‚y sið podstawð szerokiej gamy rozwiðzað technicznych. W Polsce dziaÅ‚amy juð od 1995 roku.
Jesteðmy laureatem nagrody dla Najlepszego Inwestora Zagranicznego, a w 2003 roku zostaliðmy uhonorowani
godłem Inwestor w Kapitał Ludzki.
Do pracy w Centrum Technicznym w Krakowie poszukujemy osób na stanowiska:
INðYNIER DS. TESTÓW
OPROGRAMOWANIA (ref. STV)
INðYNIER PROGRAMISTA (ref. SE)
Zakres obowiðzków:
Zakres obowiðzków:
Tworzenie scenariuszy testowych, projektowanie ðrodowiska testowego
Tworzenie oprogramowania dla samochodowych systemów sterowania,
(w tym do testów automatycznych)
multimedialnych lub nawigacji satelitarnej.
i wykonywanie testów oprogramowania.
Wymagania:
Wymagania:
" WyksztaÅ‚cenie wyðsze (informatyka, elektronika, telekomunikacja lub
" WyksztaÅ‚cenie wyðsze (elektronika, informatyka, automatyka,
pokrewne)
telekomunikacja lub pokrewne)
" Znajomoðð jðzyka C lub C++
" Znajomoðð podstaw elektroniki
Dodatkowym atutem bðdzie znajomoðð:
" Znajomoðð zagadnieð z zakresu miernictwa elektronicznego
" Systemów czasu rzeczywistego i systemów wbudowanych
(oscyloskopy, generatory, analizatory itp.)
" Technologii obiektowych oraz jðzyka UML
" Znajomoðð systemów pomiarowych
" Inðynierii oprogramowania
" Znajomoðð podstaw programowania (np. jðzyk C lub C++)
" Cyfrowego przetwarzania sygnałów
Dodatkowym atutem bðdzie znajomoðð:
" Systemów multimedialnych
" Jðzyków skryptowych (Perl, TCL itp.)
" Pakietu Matlab
" Zagadnieð z zakresu testowania systemów
i oprogramowania
Wymagania ogólne: dobra znajomoðð jðzyka angielskiego, mobilnoðð (czðste podróðe sÅ‚uðbowe), umiejðtnoðð pracy w zespole
Zaakceptowanym kandydatom oferujemy: interesujðcð pracð w miðdzynarodowym zespole, w dynamicznie rozwijajðcej sið firmie * kontakt z najnowszymi
technologiami * współpracð z najwiðkszymi producentami samochodów * moðliwoðð rozwoju i doskonalenia zawodowego * konkurencyjne wynagrodzenie
i atrakcyjny pakiet socjalny * przyjaznð atmosferð i bardzo dobre warunki pracy
Osoby zainteresowane prosimy o przesyÅ‚anie CV i listu motywacyjnego w jðzyku polskim i angielskim na adres:
Magda Szyndera, Delphi Poland S.A.  Centrum Techniczne, ul. Podgórki Tynieckie 2, 30-399 Kraków, e-mail: magda.szyndera@delphi.com
Prosimy o podanie w liðcie motywacyjnym symbolu referencyjnego.
PrzesyÅ‚amy potwierdzenie otrzymania aplikacji. W przypadku braku potwierdzenia, prosimy przesÅ‚að dokumenty pocztð tradycyjnð.
Uprzejmie informujemy, ðe kontaktujemy sið tylko z wybranymi kandydatami. Na aplikacji prosimy o zawarcie nastðpujðcej klauzuli: Wyraðam zgodð na przetwarzanie moich danych osobowych
zawartych w mojej ofercie pracy dla potrzeb niezbðdnych do realizacji procesu rekrutacji (zgodnie z ustawð o ochronie danych osobowych z dnia 29.08.97 Dz. U. 133 Poz. 883)
Elektronika Praktyczna 7/2006
103


Wyszukiwarka

Podobne podstrony:
Mikrokontrolery ARM cz1
Mikrokontrolery ARM cz10
Mikrokontrolery ARM cz14
Mikrokontrolery ARM cz12
Mikrokontrolery ARM cz15
Mikrokontrolery ARM cz21
Mikrokontrolery ARM cz19
Mikrokontrolery ARM cz3
Mikrokontrolery ARM cz6
Mikrokontrolery ARM cz22
Mikrokontrolery ARM cz18
Mikrokontrolery ARM cz18
Mikrokontrolery ARM cz11
Mikrokontrolery ARM cz13
Mikrokontrolery ARM cz17
Mikrokontrolery ARM cz5
Mikrokontrolery ARM cz20
Mikrokontrolery ARM cz7
Mikrokontrolery ARM cz9

więcej podobnych podstron