Radioelektronik Audio-HiFi-Video 7/2003
Program AVR Studio
to niezwykle przydatne
narzêdzie w procesie
edytowania, symulowania
i uruchamiania aplikacji
opartych na mikrokontro-
lerach AVR firmy ATMEL.
Dodatkow¹ korzyci¹ dla
programistów 8-bitowych
mikrokontrolerów AVR
jest zintegrowany z AVR
Studio Asembler.
M
ikrokontrolery AVR s¹ coraz
powszechniej wykorzystywa-
ne przez projektantów syste-
mów mikroprocesorowych.
W banerze reklamowym firma ATMEL prze-
konuje, ¿e ich AVR s¹ prawdopodobnie 12
razy szybsze ni¿ mikrokontrolery, które w³a-
nie u¿ywasz. Bez w¹tpienia AVR o archi-
tekturze RISC (Reduced Instruction Set
Computing) s¹ zdecydowanie szybsze ni¿
tradycyjne mikrokontrolery CISC (Complex
Instruction Set Computer). Podstawowym
narzêdziem dla projektantów systemów
opartych na uk³adach AVR jest przedstawio-
ny w artykule program AVR Studio . Pe³n¹
i najnowsz¹ wersjê AVR Studio mo¿na
pobraæ bezp³atnie ze strony internetowej
firmy ATMEL.
AVR Studio umo¿liwia edycjê, symulacjê
i uruchamianie aplikacji z mikrokontrolerami
AVR. Program ten wspomaga projektan-
tów systemów mikroprocesorowych w pro-
cesie projektowania, programowania, debu-
gowania i rozwoju aplikacji. AVR Studio 4 za-
wiera wiele przydatnych narzêdzi: mena-
d¿er projektów, edytor plików ród³owych,
debuger, symulator i interfejs do obs³ugi
zewnêtrznych emulatorów. Z programem
zintegrowany jest równie¿ asembler. Do
AVR Studio do³¹czona jest tak¿e rozbudo-
wana instrukcja (pomoc) prezentuj¹ca
szczegó³owo nie tylko mo¿liwoci i funkcje
samego programu, ale równie¿ i dok³adny
opis asemblera, ³¹cznie z list¹ instrukcji
oraz wytyczne do pracy z zestawami uru-
chomieniowymi, programatorami i emulato-
rami wspó³pracuj¹cymi z AVR Studio.
Debuger i symulator
Debugowanie, czyli wykrywanie i usuwanie
b³êdów, to niezwykle wa¿ny etap w procesie
tworzenia oprogramowania. Jego w³aciwe
przeprowadzenie ma du¿y wp³yw na jakoæ
stworzonego oprogramowania i satysfakcjê
u¿ytkownika. B³êdy w oprogramowaniu sy-
stemów mikroprocesorowych mo¿na wykry-
waæ wykorzystuj¹c narzêdzia sprzêtowe
takie jak zestawy uruchomieniowe lub emu-
latory oraz programowe czyli symulatory.
AVR Studio umo¿liwia uruchamianie opro-
gramowania mikrokontrolerów AVR zarów-
no na platformie sprzêtowej, z wykorzy-
staniem emulatorów takich jak ICE50 lub
JTAG ICE, jak te¿ i programowej, czyli z u¿y-
ciem wbudowanego w AVR Studio symula-
tora. Je¿eli do komputera nie jest do³¹czony
zewnêtrzny emulator, AVR Studio automa-
tycznie przechodzi do pracy z wewnêtrz-
nym symulatorem. Je¿eli AVR Studio wykry-
je do³¹czony emulator, automatycznie prze-
³¹cza siê w tryb pracy z emulatorem.
W AVR Studio debugowanie wygl¹da i prze-
biega zawsze tak samo, niezale¿nie od te-
go, czy u¿ytkownik korzysta z symulatora
czy te¿ emulatora. W rzeczywistoci wy-
stêpuj¹ jednak istotne ró¿nice. Emulator
pracuje znacznie szybciej ni¿ symulator.
Ponadto, emulator w przeciwieñstwie do
symulatora umo¿liwia wykrywanie b³êdów
w rzeczywistym rodowisku sprzêtowym.
W symulatorze mo¿liwy jest podgl¹d za-
wartoci wszystkich rejestrów, co z kolei
nie zawsze jest mo¿liwe w emulatorze. Znaj-
duj¹cy siê na dole okna AVR Studio pasek
statusu informuje o rodzaju u¿ytego narzê-
dzia (emulatora lub symulatora).
Wbudowany w AVR Studio symulator obs³u-
guje wszystkie uk³ady z rodziny AVR i
umo¿liwia ledzenie zawartoci CPU, uk³a-
dów wejciowych i wyjciowych mikrokon-
trolera oraz pamiêci. Umo¿liwia symulacjê
pracy wewnêtrznej i zewnêtrznej pamiêci
SRAM, portów, timerów, liczników, wszyst-
kich przerwañ, pamiêci EEPROM, a nawet
w mo¿liwym zakresie UARTu i SPI (Se-
rial Port Interface). Symulacj¹ programów
mo¿na sterowaæ korzystaj¹c z opcji w me-
nu Debug. W menu dostêpne s¹ funkcje
uruchomienia, zatrzymania i resetu progra-
mu, przerwania realizacji programu w miej-
scu ustawienia kursora, wykonywania pro-
gramu krok po kroku. Mo¿liwe jest równie¿
zdefiniowanie pu³apek programowych, czy-
li miejsc, w których realizacja programu ma
byæ zatrzymana.
AVR Asembler
Do pisania prostych, niewielkich aplikacji
z powodzeniem mo¿na wykorzystaæ wbudo-
wany w AVR Studio asembler. Równie¿
i programy lub wybrane procedury, których
czas realizacji jest krytyczny warto kodo-
waæ w asemblerze. Program mo¿na wpro-
wadziæ korzystaj¹c ze zintegrowanego
z AVR Studio edytora. Na sk³adniê asemble-
ra sk³adaj¹ siê: mnemoniki instrukcji, etykie-
ty i dyrektywy. Instrukcje i dyrektywy mog¹
byæ bezargumentowe, b¹d mieæ jeden lub
wiêcej argumentów. Instrukcje okrelaj¹
operacje, jakie ma realizowaæ mikrokontro-
ler. Mnemoniki to kombinacje paru liter, two-
rz¹ce symboliczne skróty nazw operacji re-
alizowanych przez instrukcje. Dyrektywy
steruj¹ prac¹ asemblera, a etykiety umo¿-
liwiaj¹ symboliczn¹ prezentacjê adresów
Rys. 1. AVR Studio to narzêdzie niezbêdne
do pisania i uruchamiania programów
na mikrokontrolery AVR ATMEL
Rys. 2. Okno wyboru narzêdzia do wykrywania i usuwania b³êdów (programowego symulatora
lub jednego z zewnêtrznych sprzêtowych emulatorów) oraz mikrokontrolera
gramowanego uk³adu s³u¿y dyrektywa
DEVICE. Ka¿demu mikrokontrolerowi AVR
przypisany jest plik *.inc zawieraj¹cy defini-
cje wewnêtrznych rejestrów, bitów, prze-
rwañ i timerów, które czyni¹ pisanie pro-
gramu wygodniejszym.
Kompilatory C
Programowanie w C jest znacznie prostsze
i szybsze ni¿ w asemblerze, a kod ród³owy
jest bardziej przejrzysty i czytelny. Jêzyk
C jest odpowiedniejszym narzêdziem do
tworzenia du¿ych i z³o¿onych projektów.
AVR Studio nie ma w³asnego kompilatora C.
W AVR Studio mo¿na edytowaæ programy
w jêzyku C oraz symulowaæ wygenerowane
przez zewnêtrzne kompilatory pliki obiekto-
we. AVR Studio rozpoznaje miêdzy innymi
standardy plików UBROF (IAR) i COFF (Ima-
geCraft, CodeVision, ELAB i inne).
Dostêpnych jest wiele dobrych kompilatorów
7
w pamiêci programu. Pojedyncza linia w
jêzyku asembler wygl¹da nastêpuj¹co:
[etykieta:] dyrektywa [argumenty] ;[komentarz]
lub
[etykieta:] instrukcja [argumenty] ;[komentarz]
Elementy zawarte w nawiasach prostok¹t-
nych s¹ opcjonalne, a tekst znajduj¹cy siê
pomiêdzy rednikiem i koñcem linii jest igno-
rowany przez translator asemblera. Asem-
bler dokonuje translacji wprowadzonego
symbolicznego kodu ród³owego w kod
obiektowy. Wygenerowany w ten sposób
kod obiektowy wykorzystywany jest nastêp-
nie do debugowania programu w rodowi-
sku programowego symulatora AVR Stu-
dio lub sprzêtowego emulatora. Asembler
generuje tak¿e kod PROM, który mo¿e byæ
wykorzystany do zaprogramowania pamiê-
ci mikrokontrolerów AVR.
Korzystaj¹c ze zintegrowanego z AVR Stu-
dio asemblera mo¿na programowaæ wszy-
stkie uk³ady z rodziny AVR. Do wyboru pro-
Radioelektronik Audio-HiFi-Video 7/2003
dla mikrokontrolerów AVR, które mog¹
wspó³pracowaæ z AVR Studio. Nale¿¹ do
nich produkty takie jak ICCAVR firmy Ima-
geCraft, IAR Systems Embedded Work-
bench, CodeVisionAVR C Compiler i AVR
GCC. ICCAVR ImageCraft (www.imagecra-
ft.com) i IAR (www.iar.com) s¹ kompletnymi
narzêdziami projektowymi, w sk³ad których
wchodzi edytor, menad¿er projektów, kom-
pilator jêzyka C i asembler. Opcjonalnie ra-
zem z programem IAR mo¿na nabyæ debu-
ger C-SPY. Narzêdzia projektowe obydwu
firm wspó³pracuj¹ z AVR Studio, a ich de-
monstracyjne wersje mo¿na pobraæ z sieci.
Równie dobrym narzêdziem, choæ nie o tak
du¿ych mo¿liwociach jest kompilator Code-
VisionAVR. Nie ma on wbudowanego symu-
latora, mo¿e jednak wspó³pracowaæ z AVR
Studio. CodeVisionAVR wyposa¿ony jest
w praktyczne biblioteki C do obs³ugi
m.in. alfanumerycznych wywietlaczy LCD,
czujników temperatury National Semicon-
ductor LM75, Dallas Semiconductor
DS1820/1822 oraz zegarów czasu rzeczy-
wistego Dallas Semiconductor DS1302,
DS1307 i Philips PCF8563, PCF8583.
Przydatnym narzêdziem jest tak¿e Code-
WizardAVR, który mo¿e automatycznie wy-
generowaæ kod ród³owy inicjalizuj¹cy mi-
krokontroler, jego uk³ady wejcia i wyjcia
oraz wspó³pracê z niektórymi powszech-
nymi uk³adami zewnêtrznymi. Wersjê free-
ware CodeVisionAVR mo¿na ci¹gn¹æ ze
strony www.hpinfotech.ro.
Z kolei AVR GCC, w przeciwieñstwie do
wymienionych narzêdzi, nie jest kompletnym
rodowiskiem projektowym, lecz wy³¹cznie
kompilatorem jêzyka C. Edycjê i symula-
cjê programów nale¿y przeprowadzaæ na
zewn¹trz AVR GCC, na przyk³ad w AVR
Studio.
Kompilator GCC jest bezp³atny i mo¿na go
pobraæ ze strony www.avrfreaks.com.
Wymagania sprzêtowe
Program AVR Studio nie ma wysokich wy-
magañ sprzêtowych. Do jego uruchomienia
wystarczy komputer PC z procesorem co
najmniej Intel Pentium 200 MHz, 64 MB
pamiêci RAM i 15 MB wolnej przestrzeni na
twardym dysku. Wymagana minimalna roz-
dzielczoæ ekranu to 800
×
600, wskazana
jest jednak praca z rozdzielczoci¹
1024
×
768. AVR Studio dzia³a w rodowisku
Windows, pocz¹wszy od 95, poprzez 98,
ME, 2000, XP i skoñczywszy na Windows
NT 4.0 z przegl¹dark¹ Internet Explorer
w wersji co najmniej 5.0.
n
Wojciech Nowakowski
wojciech.nowakowski
@
interia.pl
Rys. 3.
Symulacja
programu
napisanego
w jêzyku C
w AVR Studio 4
Rys. 4.
Demonstracyjn¹
wersjê
IAR Systems
Embedded
Workbench
mo¿na
pobraæ ze strony
www.iar.com,
a tak¿e z dzia³u
Software
& Shareware
dla
mikrokontrolerów
AVR na stronie
firmy ATMEL
(www.atmel.com)