02_Avrasm -Aavrstudio.pdf

(507 KB) Pobierz
82410840 UNPDF
http://www.easy-soft.tsnet.pl/
AVR Asembler: Podstawy
posługiwania się AVR Studio 4.
Pierwszym krokiem nauki programowania będzie instalacja programu AVR Studio. Osobiście używam wersji
3.55 ... i 4.05. Niestety – nowa wersja AVR Studio nie nadaje się do pracy z kompilatorem GCC jest natomiast
dużo lepsza od swojej poprzedniczki. Być może jest to celowa polityka firmy Atmel a być może następna wersja
AVR Studio będzie również akceptować składnię języka C? Trudno powiedzieć – w tym momencie radzę sobie
tak, jak mogę. Poszczególne wersje AVR Studio różnią się nieco między sobą. Metody opisane dla AVR Studio 4
niestety nie dadzą wprost przenieść się do 3.55.
Tworzenie nowego zbioru projektu.
Uruchom AVR Studio wskazując skrót START Programy Atmel AVR
Tools AVR Studio 4. Tworzony będzie nowy zbiór projektu, tak więc na
okienku, które się pokaże wybierz przycisk Create New Project .
Następnie wpisz nazwę zbioru projektu (dla potrzeb
tego przykładu programowania użyłem flashing-
leds ), zaznacz Atmel AVR Assembler , wpisz lub
wybierz lokalizację zbiorów na dysku i naciśnij
Next .
Otworzy się okienko umożliwiające nastawę
parametrów tak zwanej platformy
uruchomieniowej. Po lewej stronie wybierz AVR
Simulator (AVR Studio współpracuje z szeroką
gamą emulatorów sprzętowych, są one
wymienione na liście po lewej stronie ekranu)
natomiast po prawej AT90S8515 :
prawdopodobnie znajdziesz go na końcu listy.
Naciśnij klawisz Finish.
Zbiór projektu jest gotowy. Teraz można już
napisać pierwszy program w języku asembler
mikrokontrolera z rodziny AVR, to jest
AT90S8515.
Pierwszy program.
Po tym jak przyciśniesz klawisz Finish otworzy się okno zawierające graficzny interfejs użytkownika. Pierwsza
linia na górze ekranu to menu. Można tu znaleźć pewne standardowe funkcje Windows takie jak: zapis i
otwarcie zbioru, Kopiuj - Wytnij i Wklej oraz inne specyficzne dla AVR Studio jak menu nastaw parametrów
emulacji. Następna linia to paski narzędzi zawierające skróty do najczęściej używanych funkcji. Pod nią znajduje
się obszar roboczy (okno opisane jako Workspace) wyświetlający informacje na temat zbiorów projektu, stanu
portów I/O oraz wybranego modelu mikrokontrolera.
Okno po prawej stronie nosi nazwę okna edycji: możesz to niego wpisać źródło programu, który następnie
skompilujesz. Podczas pisania edytor rozróżnia słowa kluczowe zmieniając ich kolory. Na przykład komentarze
oznaczane są na zielono, polecenia asemblera na niebiesko, etykiety są czarne itd. Pasek tytułowy okna zawiera
nazwę aktualnie edytowanego zbioru. Jeśli zbiór został zmieniony i nie został zapisany na dysku – obok jego
nazwy wyświetla się symbol gwiazdki (*). Na samym dole ekranu umieszczono tzw. okno wyjściowe (Output
Window) wyświetlające wszystkie ważne komunikaty w czasie kompilacji czy też symulacji pracy programu.
J.Bogusz „Podstawy użytkowania AVR Studio 4”
STRONA 1/5
82410840.014.png 82410840.015.png 82410840.016.png 82410840.017.png 82410840.001.png
http://www.easy-soft.tsnet.pl/
Interfejs graficzny użytkownika jest bardzo dobrze opisany w zbiorach pomocy dostępnych po wybraniu
polecenia Help z menu. Niestety - jak większość materiałów przeznaczonych dla programistów i techników - jest
on w języku angielskim. Na stronie firmy Atmel można również znaleźć instrukcję do AVR Studio w formacie
Acrobat Reader (pdf). Wróćmy do pierwszego programu. Ponieważ jeszcze w tym momencie pewnie nie znasz
języka asemblera AVR pozwól, że zaproponuję wpisanie poniższych linii programu:
;mój pierwszy program dla AVR
.include "8515def.inc"
.def Temp = R16
.org 0x0000
rjmp Reset
Reset: ldi Temp, 0xFF
out DDRB, Temp
Loop:
out PORTB, Temp
dec Temp
rjmp Loop
Przy jego pomocy pokażę Ci w jaki sposób skompilować program – to znaczy przetłumaczyć z postaci
zrozumiałej dla człowieka do postaci zrozumiałej dla mikrokontrolera oraz przeprowadzić symulację jego pracy.
J.Bogusz „Podstawy użytkowania AVR Studio 4”
STRONA 2/5
82410840.002.png
http://www.easy-soft.tsnet.pl/
Kompilacja programu, symulacja jego pracy.
Z menu Project wybierz Build and Run lub naciśnij
Ctrl+F7. Na dole ekranu, w okienku wyjściowym,
powinien pojawić się komunikat „ Assembly complete
with no errors.” oznaczający bezbłędny przebieg
kompilatora. Przeglądając zawartość okienka
wyjściowego możemy również dowiedzieć się, że nasz
program:
·
polecenia zajmują 12 bajtów w pamięci
FLASH (Code : 6 words),
·
nie używa żadnych stałych (Constants
(dw/db): 0 words),
·
wykorzystuje całość swojego kodu
(Unused : 0 words),
·
całość, wliczając w to stałe i nie używane
fragmenty kodu, zajmuje 12 bajtów w
pamięci FLASH. (Total : 6 words).
AVR Studio może pracować w różnych trybach. Dla
pewnej systematyki nazwijmy ten poprzednio
wykorzystywany trybem edycji a ten, który
wykorzystujemy w tym momencie trybem symulacji
lub uruchomieniowym. Zwróć uwagę, że okienko
Workspace z lewej strony ekranu zmieniło zawartość
z Project na IO (wejście – wyjście). Umożliwi to nam
edycję zmiennych oraz oglądanie i modyfikację stanu
portów mikrokontrolera. Powinno się również ukazać
okno o nazwie Dissasembly a w nim żółta strzałka
przy linii programu wykonywanej po reset . Strzałka
ta ukaże się również w okienku programu
źródłowego. Wskazuje ona aktualną pozycję licznika
rozkazów. Jej położenie zmienia się podczas
wykonywania programu wskazując aktualną linię kodu.
Na dole, po prawej stronie ekranu
znajdziemy linię statusu. Dobrym
nawykiem jest sprawdzenie, czy
wybraliśmy właściwy typ
mikrokontrolera oraz parametry
środowiska jego pracy (np. narzędzie
emulacji).
J.Bogusz „Podstawy użytkowania AVR Studio 4”
STRONA 3/5
82410840.003.png 82410840.004.png 82410840.005.png 82410840.006.png 82410840.007.png 82410840.008.png
http://www.easy-soft.tsnet.pl/
Przyjrzyjmy się teraz bliżej okienku I/O . Jako, że
nasz program głównie operuje na rejestrze
PORTB oraz wykorzystuje R16 jako komórkę dla
zmiennej Temp , rozwińmy właśnie te gałęzie
wyświetlanego drzewa (wskazując znak +
umieszczony obok nazwy danej gałęzi). Na
początek zajmijmy się rejestrem R16.
Znajdziemy go na samym szczycie drzewa po
rozwinięciu gałęzi R16-31.
Po lewej stronie znajduje się nazwa rejestru, po prawej jego wartość.
Dwukrotne kliknięcie myszką na wartości umożliwia zmianę
zawartości rejestru. Można wybrać, czy wartość wyświetlona w
okienku oraz wpisywana przez nas podana będzie w kodzie
szesnastkowym (Hex), dziesiętnym (Dec), ósemkowym (Oct) czy
binarnym (Bin).
Nasz program operuje
głównie na rejestrze
PORTB: obejrzyjmy jego
stan w okienku I/O . Aby
tego dokonać należy
rozwinąć gałąź I/O
AT90S8515 – PORTB .
Pozostawmy ten widok na
ekranie, będzie nam
potrzebny w czasie
symulacji programu.
AVR Studio umożliwia pracę programu z pełną prędkością aż do podanego punktu zatrzymania. Punkt
zatrzymania można zaznaczyć ustawiając kursor w określonej linii kodu a następnie wybierając z menu Debug
polecenie Toggle breakpoint lub naciskając klawisz F9 . Teraz po wybraniu Run program zatrzyma się w
wybranym przez nas miejscu. Można sobie wyobrazić sytuację, gdy symulowana jest praca urządzenia
wymagającego podania pewnych sygnałów zewnętrznych. Wówczas „pułapka” może zatrzymać mikrokontroler
po rozkazie odczytu stanu portu a my korzystając z okienka I/O podajemy ręcznie pożądaną wartość
wymuszenia i dalej uruchamiamy program obserwując jego reakcję.
Inną metodą jest ustawienie kursora w miejscu, do którego mają zostać wykonane instrukcje i wybranie z menu
Debug polecenia Run to cursor lub naciśnięciu kombinacji klawiszy Ctrl + F10 . Zostaną wykonane wszystkie
instrukcje do pozycji kursora a następnie symulator zatrzyma się tak, jakby w tym miejscu ustawiona została
pułapka. Obie omówione wyżej metody są bardzo przydatne i warto je zapamiętać. Osobiście jednak najczęściej
w praktyce używam tzw. pracy krokowej, gdy instrukcje programu wykonywane są jedna po drugiej po
naciśnięciu klawisza lub wskazaniu myszką opcję Step into . Często również łączę wszystkie metody, ponieważ
na początku programu zwykle umieszczam funkcje ustawiające wskaźnik stosu, wartości rejestrów itp.
Wielokrotne przeglądanie pracy w tych momentach jest raczej stratą czasu. Wówczas to znakomicie pomaga
kombinacja Ctrl + F10. Podobnie jest z funkcjami obsługi przerwań: są one wywoływane np. co 500 impulsów
zegara – doskonale pomaga tu „pułapka” (breakpoint) umieszczona wewnątrz funkcji obsługi przerwania.
Wróćmy jednak do zagadnień związanych z krokową pracą programu – ta wymaga bowiem najwięcej
wyjaśnienia.
Jednokrotne naciśnięcie klawisza F11 odpowiada wykonaniu polecenia Debug – Step into. Polega ono na
wykonaniu pojedynczej instrukcji programu. Symbol żółtej strzałki przesuwa się na następną pozycję w
programie – oznacza to inkrementację licznika rozkazów a zawartość okienka I/O zmienia się w zależności od
stanu mikrokontrolera. Spójrzmy jak zmienił się stan rejestru DDRB po wykonaniu instrukcji LDI DDRB,0xFF
J.Bogusz „Podstawy użytkowania AVR Studio 4”
STRONA 4/5
82410840.009.png 82410840.010.png 82410840.011.png 82410840.012.png
http://www.easy-soft.tsnet.pl/
Zamalowane na czarno kwadraciki oznaczają stan wysoki danego bitu portu. Podobnie prześledzić można stan
rejestru PORTB modyfikowanego w dalszej części pętli programu.
Tak samo obejrzeć można stan zmiennej Temp znajdującej się w rejestrze R16 oraz inne zmienne
mikrokontrolera AVR. W czasie symulacji pracy programu (widać to również na zdjęciach) zauważymy, że
rejestr PINB zmienia swój stan o 1 cykl później niż rejestr DDRB. Jest to cecha mikrokontrolera AT90S8515
opisywana również w jego danych katalogowych. Budzi uznanie fakt, że twórcy AVR Studio zadbali również o
tak drobny szczegół.
Artykuł ten to tylko króciutkie wprowadzenie do tematyki tworzenia aplikacji z wykorzystaniem AVR Studio 4.
Jest to jednak program o bardzo dużych możliwościach, nie sposób ich tu wszystkich opisać. Mam jednak
nadzieję, że dalsze odcinki kursu programowania w asemblerze mikrokontrolerów AVR oraz przede wszystkim
własna praktyka wyjaśnią różne niuanse a ten artykuł pomoże po prostu zacząć.
Jacek Bogusz
jacek.bogusz@easy-soft.tsnet.pl
literatura:
http://www.avrfreaks.net
http://www.atmel.com/atmel/acrobat/doc0856.pdf (zestaw rozkazów asemblera AVR)
http://www.atmel.com/atmel/acrobat/doc0841.pdf (dane katalogowe AT90S8515)
J.Bogusz „Podstawy użytkowania AVR Studio 4”
STRONA 5/5
82410840.013.png
Zgłoś jeśli naruszono regulamin