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



Podobne dokumenty
CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Pobieranie edytora CodeLite

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

Tworzenie nowego projektu w asemblerze dla mikroprocesora z rodziny 8051

Szkolenie dla nauczycieli SP10 w DG Operacje na plikach i folderach, obsługa edytora tekstu ABC. komputera dla nauczyciela. Materiały pomocnicze

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

Zastanawiałeś się może, dlaczego Twój współpracownik,

Przygotowanie własnej procedury... 3 Instrukcja msgbox wyświetlanie informacji w oknie... 6 Sposoby uruchamiania makra... 8

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Programowanie Systemów Czasu Rzeczywistego

Dodatki. Dodatek A Octave. Język maszyn

Papyrus. Papyrus. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

Zadania: 1. Funkcja przeliczająca F na C: float FtoC(float f){ return (f 32.0) * 5.0 / 9.0; }

I Tworzenie prezentacji za pomocą szablonu w programie Power-Point. 1. Wybieramy z górnego menu polecenie Nowy a następnie Utwórz z szablonu

Krótki kurs obsługi środowiska programistycznego Turbo Pascal z 12 Opracował Jan T. Biernat. Wstęp

Cel: Przypisujemy przyciskom określone funkcje panel górny (Panel1)

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Robert Barański, AGH, KMIW MathScript and Formula Nodes v1.0

Gromadzenie danych. Przybliżony czas ćwiczenia. Wstęp. Przegląd ćwiczenia. Poniższe ćwiczenie ukończysz w czasie 15 minut.

Lokalizacja jest to położenie geograficzne zajmowane przez aparat. Miejsce, w którym zainstalowane jest to urządzenie.

Spis treści JĘZYK C - ŚLEDZENIE WYKONANIA PROGRAMU, DEBUGGER. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu

Instytut Teleinformatyki

Projektowanie układów VLSI-ASIC techniką od ogółu do szczegółu (top-down) przy użyciu pakietu CADENCE

Zasoby dyskowe: Eksplorator Windows Z zasobami dyskowymi związane są nierozłącznie prawa dostępu gwarantujące możliwość odczytu, kasowania,

Przypisy i przypisy końcowe

Problemy techniczne. Jak umieszczać pliki na serwerze FTP?

Instrukcja redaktora strony

Programowanie Obiektowe GUI

Finanse VULCAN. Jak wprowadzić fakturę sprzedaży?

Rys. 1. Główne okno programu QT Creator. Na rysunku 2 oznaczone zostały cztery przyciski, odpowiadają kolejno następującym funkcjom:

Dodawanie grafiki i obiektów

Temat: Organizacja skoroszytów i arkuszy

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Menu Plik w Edytorze symboli i Edytorze widoku aparatów

Instytut Teleinformatyki

MentorGraphics ModelSim

Programowanie mikrokontrolerów AVR

Codecave jest to nieużywana pamięć uruchomionej aplikacji, do której można wstrzyknąć dowolny kod a następnie wykonać go.

Kopiowanie, przenoszenie plików i folderów

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows 7

Zadanie 1. Stosowanie stylów

Aktywności są związane z ekranem i definiują jego wygląd. Dzieje się to poprzez podpięcie do aktywności odpowiedniego widoku.

Instrukcja do oprogramowania ENAP DEC-1

Utworzenie pliku. Dowiesz się:

Grażyna Koba. Grafika komputerowa. materiały dodatkowe do podręcznika. Informatyka dla gimnazjum

Systemy wbudowane Pracownia specjalistyczna nr 1 Zapoznanie się ze środowiskiem MPLAB. 1. Wybór mikrokontrolera

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH. PROCESORY OSADZONE kod kursu: ETD 7211 SEMESTR ZIMOWY 2017

4. Należy następnie zaakceptować postanowienia umowy licencyjnej i nacisnąć przycisk Next.

PLUTO Sterownik bezpieczeństwa Skrócona Instrukcja obsługi oprogramowania. PlutoProgrammingManualPL_v7A.pdf 1

Projektowanie z użyciem procesora programowego Nios II

Systemy wbudowane. Wprowadzenie. Struktura. Mikrokontrolery AVR. Wprowadzenie do programowania w C

INSTRUKCJA UŻYTKOWNIKA. Spis treści. I. Wprowadzenie II. Tworzenie nowej karty pracy a. Obiekty b. Nauka pisania...

Programowanie sterowników

ToonDoo Maker tworzenie pojedynczej sceny komiksowej

WINDOWS XP PRO WINDOWS XP PRO

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Jak posługiwać się edytorem treści

CoDeSys 3 programowanie w języku CFC

Oficyna Wydawnicza UNIMEX ebook z zabezpieczeniami DRM

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.1

Nr: 15. Tytuł: Kancelaris w systemie Windows 8 i Windows 8.1. Data modyfikacji:

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows Vista

Podstawy WINDOWS 9x, 2000, XP

UONET+ - moduł Sekretariat. Jak wykorzystać wydruki list w formacie XLS do analizy danych uczniów?

imei Instytut Metrologii, Elektroniki i Informatyki

Programowanie w środowisku graficznym GUI

Korzystanie z aplikacji P-touch Transfer Manager

1.Wstęp. 2.Generowanie systemu w EDK

Krótka instrukcja instalacji Adobe Acrobat Reader

Konfiguracja oprogramowania w systemach MS Windows dla kont z ograniczonymi uprawnieniami

2. Architektura mikrokontrolerów PIC16F8x... 13

Kolory elementów. Kolory elementów

I. Program II. Opis głównych funkcji programu... 19

OPERACJE NA PLIKACH I FOLDERACH

MS Excell 2007 Kurs podstawowy Filtrowanie raportu tabeli przestawnej

Lekcja 5 - PROGRAMOWANIE NOWICJUSZ

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR

Moduł 1 Pliki i foldery

FAQ: /PL Data: 3/07/2013 Konfiguracja współpracy programów PC Access i Microsoft Excel ze sterownikiem S7-1200

Podstawowe zasady tworzenia projektu w środowisku uvision 4.0, pisanie programów w asemblerze 8051

Ćwiczenia nr 2. Edycja tekstu (Microsoft Word)

Scenariusz lekcji. Scenariusz lekcji 1 TEMAT LEKCJI: 2 CELE LEKCJI: 2.1 Wiadomości: 2.2 Umiejętności: 3 METODY NAUCZANIA: 4 ŚRODKI DYDAKTYCZNE:

FlowSoft02. Przeznaczenie programu

Programowanie procesora Microblaze w środowisku SDK

AKADEMIA GÓRNICZO-HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE. QuIDE Quantum IDE PODRĘCZNIK UŻYTKOWNIKA

Zadanie 11. Przygotowanie publikacji do wydrukowania

5.2. Pierwsze kroki z bazami danych

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP

Synchronizator plików (SSC) - dokumentacja

Zadanie 9. Projektowanie stron dokumentu

Tworzenie i modyfikowanie wykresów

Rozdział II. Praca z systemem operacyjnym

UONET+ moduł Dziennik

Windows 10 - Jak uruchomić system w trybie

Przedmiot : Programowanie w języku wewnętrznym. Ćwiczenie nr 4

6.4. Efekty specjalne

Instrukcja obsługi Platformy nszkoła. Panel Opiekuna

Transkrypt:

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 flashingleds), 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

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

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

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

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