AVR Asembler: Podstawy posługiwania się AVR Studio...

5
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

Transcript of AVR Asembler: Podstawy posługiwania się AVR Studio...

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

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 0x0000rjmp Reset

Reset: ldi Temp, 0xFFout DDRB, Temp

Loop: out PORTB, Tempdec Temprjmp 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

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

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

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 [email protected]

literatura:http://www.avrfreaks.nethttp://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