INTEGRIRANO PROGRAMSKO OKRUENJE (IDE)
ATMEL STUDIO
ASSEMBLER I PROGRAMSKI JEZIK C
DIGITALNA INSTRUMENTACIJA 1
Dr.sc. Ivan Marasovi
Verzija 1.0
1. UVOD
Cilj ovog materijala je upoznavanje osnovnih alata i postupaka potrebnih za programiranje
mikrokontrolera (mikroraunala) u sklopu laboratorijskih vjebi iz kolegija Digitalna
instrumentacija 1. Kao osnovni edukacijski alat koriten je razvojni sustav (programator)
STK500 proizvoaa ATMEL uz koritenje integriranog programskog okruenja (IDE) ATMEL
STUDIO. Koritenje mikrokontrolera u digitalnoj instrumentaciji opisano u ovim materijalima
napravljeno je prema mirokontroleru ATmega16 iz AVR serije mikrokontrolera proizvoaa
ATMEL. U prvom dijelu gradiva iz laboratorijskih vjebi svi primjeri programa za
mikrokontroler napisani su u assembleru kako bi studenti bolje savladali osnove rada
mikrokontrolera i registre vane za njegov rad. U drugom dijelu vjebi svi primjeri napisani u
assembleru dani su u programskom jeziku C uz odreena proirenja.
2. INTEGRIRANO PROGRAMSKO OKRUENJE ATMEL STUDIO
Programiranje mikrokontrolera iz AVR serije najee se izvodi koritenjem assemblera ili
C/C++ programskog jezika. Proizvoa mikrokontrolera ATMEL razvio je integrirano
programsko okruenje (IDE) Atmel Studio koji ukljuuje editor, C kompajler, assembler, HEX
file downloader i simulator mikrokontrolera.
Preuzimanje programskog okruenja Atmel Studio mogue je na linku:
http://www.atmel.com/microsite/atmel_studio6/
Za instaliranje programskog okruenja Atmel Studio potrebno je pokrenuti preuzetu
datoteku uz prihvaanje default postavki.
3. PROGRAMIRANJE MIKROKONTROLERA - ATMEL STUDIO
3.1 Kreiranje projekta u Atmel Studiu
Prvi korak u programiranju mikrokontrolera u programu Atmel Studio je kreiranje projekta. S
obzirom da Atmel Studio podrava programiranje u Assembleru i programskom jeziku C
prilikom kreiranja projekta potrebno je odluiti koji tip projekta se eli kreirati. Nakon
pokretanja u izbrorniku File potrebno je odabrati New Project pri emu se otvara prozor
prikazan na slici 1.
Sa lijeve strane prikazanog prozora u dijelu koji sadri predloke mogue je odabrati:
C projekt (predloak) odabirom C/C++ |GCC C Executable Project
Assembler projekt (predloak) odabirom Assembler |AVR Assembler project
Slika 1. Kreiranje projekta u Atmel Studiu
Prilikom kreiranja projekta potrebno je ukljuiti opciju Create directory for solution kako bi
se kreirao folder istog imena kao i projekt. U Atmel Studiu 6 Solution moe sadravati vie
projekata. Nakon unosa imena projekta i lokacije za pohranu postupak kreitanja projekta
zavrava se odabirom OK.
Nakon toga otvara se novi prozor Device Selection prikazan na slici 2. u kojem je potrebno
odabrati tip mikrokontrolera koji se eli programirati. Kako je ve prethodno reeno svi
primjeri su napravljeni prema mikrokontroleru ATmega16 pa ga je potrebno u ovom koraku
odabrati.
Slika 2. Odabir mikrokontrolera kojeg se eli programirati (u ovom sluaju ATmega16)
Nakon odabira tipa mikrokontrolera i potvrde sa OK u Atmel Studiu se otvori novi projekt
prikazan na slici 3.
Slika 3. Otvoreni projekt u Atmel Studiu
Pisanje programa mogue je u predvienom prostoru u skladu s pravilima programiranaj u
Assembleru ili C-u ovisno o tipu projekta.
3.2 Kompajliranje izvornog koda u izvrnu .HEX datoteku
Kompajliranje izvornog koda u izvrnu .HEX datoteku prikladnu za programiranje
mikrokontrolera odvija se na sljedei nain:
U izborniku Build odabrati Build Solution (ili skraeno tipku F7) kako je prikazanao na
slici 5.
Ako je programski kod napisan bez greaka generirat e se .hex datoteka koja sadri kod
u obliku strojnog jezika prikladnog za programiranje ATmega16 mikrokontrolera. HEX
datoteka je uglavnom pohranjena u folderu debug unutar foldera projekta.
Slika 4. Prevoenje izvornog koda u izvrni .hex oblik
3.3 Koritenje simulatora rada mikrokontrolera
Simulator rada mikrokontrolera omoguava detaljan uvid u izvoenje programa i rad
mikrokontrolera. U ovom dijelu prikazan je nain koritenja simulatora i mogunosti praenja
stanja pojedinih registara unutar mikrokontrolera. Stoga je simulator posebno prikladan za
otklanjanje greaka u programu mikrokontrolera poznatiji kao debugiranje. Simulator
omoguava izvravanje izvornog programa (C ili assembler) liniju po liniju uz istovremeno
praenje stanja registara CPU jedinice, ulazno-izlaznih linija i registara, stanja memorije i
registara perifernih jedinica (AD pretvara, komparator, USART itd..). Prilikom koritenja
simulatora nije potreban programator (razvojni sustav) STK500 niti je potrebno programirati
mikrokontroler nego se cijelokupni postupak odvija na raunalu.
Pokretanje simulatora provodi se na sljedei nain:
U izborniku Debug odabrati Start debugging and Break ili skraeno Alt+F5
Atmel Studio zahtjeva specificiranje debuggera pri emu je potrebno odabrati Simulator
kako je prikazano na slici 5.
Slika 5. Postavljanje Simulatora kao debuggera
Nakon pokretanja procesa debuggiranja Atmel Studio omoguava pregled stanja registara
mikrokontrolera i ulazno izlaznih linija i registara na sljedei nain:
U izborniku Debug|Windows odabrati Processor View ili IO View
Slika 6. Pregled registara i modula mikrokontrolera (lijevo) i stanja registara procesora
(desno)
Pokretanjem procesa debuggiranja u pojavljuje se uta strelica u editoru programskog koda i
oznaava naredbu koja e se sljedea izvriti. Odabirom Debug|Step Into ili tipke F11 izvodi
se sljedei korak simulacije programa odnosno izvravanje naredbe na koju pokazuje strelica.
Slika 7. Izvoenje programa korak po korak (na slici lijevo) i stanje registara (na slici desno)
Tijekom izvoenja simulacije programa na mikrokontroleru mogue je i upisivanje stanja
registara ili pojedinih bitova u registrima runo. Dovoljno je na odreeni bit u registru
kliknuti lijevim klikom mia kako bi se promjenilo postojee stanje bita (iz 0 u 1 ili obrnuto)
kako je prikazano na slici 8.
Slika 8. Runo postavljanje stanja ulaznog registra PINA
Za praenje stanja varijabli tijekom debuggiranja potrebno je oznaiti varijablu u editoru te
odabrati sljedee: Debug|Quick Watch|Add Watch te e oznaena vraijabla biti dodana u
karticu Watch 1.
Osim opisani mogunosti simulator odnosno Debug mod rada prua i mnoge druge korisne
mogunosti kao npr. izvoenje programa do odreene toke (breaking point), preskakanje
petlji i funkcija itd.. Ukoliko se provodi simulacija (debugiranje) programa napisanog u C-u
tada je odabirom Debug|Windows|Disassembly mogue vidjeti kako izgleda odgovarajui
kod napisan u assembleru. Za prekid debugiranja potrebno je odabrati Debug|Stop
Debugging ili skraeno Ctrl+Shift+F5.
3.4 Programiranje mikrokontrolera - upisivanje HEX datoteke u
memoriju mikrokontrolera
Za upisivanje izvrne (.hex) datoteke u flash memoriju mikrokontrolera ATmega16 koristi se
razvojni sustav STK500 proizvoaa Atmel. Za ispravno programiranje mikrokontrolera
potrebno je konfigurirati STK500 na sljedei nain:
1. Postaviti mikrokontroler ATmega16 u podnoje sa oznakom SCKT3100A3
2. Koritenjem flat kabela povezati kratkospojnik (jumper) SPROG3 na ISP6PIN konektor
3. Povezati razvojni sustav STK500 serijskim kabelom sa osobnim raunalom. STK500
ima dva serijska konektora, za programiranje mikrokontrolera koristi se konektor sa
oznakom RS232 CTRL.
4. Spojiti vanjski izvor napajanja (adapter) 12V te koritenjem sklopke ukljuiti
napajanje.
Slika 9. Konfiguracija razvojnog sustava STK500 za programiranje i testiranje mikrokontrolera
Registracija razvojnog sustava STK500 u Atmel Studiu
U prvom koraku potrebno je razvojni sustav STK500 registrirati unutar Atmel Studija.
Potrebno je odabrati Tools|Add Target pri emu se otvori prozor za definiranje
konfiguracijskih postavki prikazana na slici 10. U padajuem izborniku Select tool odabrati
STK500 a u izborniku Select Serial port postaviti oznaku serijskog porta za komunikaciju sa
raunalom. U sluaju da raunalo nema serijski port potrebno je koristiti USB-RS232
konverter te u Devices Manageru oitati broj serijskog porta koji je pridjeljen konverteru.
Slika 10. Registracija i povezivanje STK500 razvojnog sustava
Upisivanje izvrne .hex datoteke u mikrokontroler
Nakon registracije razvojni sustav je spreman za programiranje mikrokontrolera odnosno
upisivanje izvrne .hex datoteke u programsku (flash) memoriju mikrokontrolera.
Odabirom Tools| Device Programming otvara se novi prozor prikazan na slici 11.
Slika 11. Postavljanje parametara za programiranje mikrokontrolera
U prozoru prikazanom na slici 11. u padajuim izbornicima Tool Device Interface
potrebno je postaviti redom STK500 COM(X), ATmega16 i ISP te potvrditi klikom na Apply.
U nastavku prozora (horizontalno) postoje dva polja Device Signature i Target Voltage koja
nam omoguavaju oitanje hexadecimalne oznake mikrokontrolera (za Atmegu oznaka je
0x1E9403) i napon na mikrokontroleru. Oitanje ovih podataka znai da je komunikacija sa
mikrokontrolerom ispravno uspostavljena i da se moe poeti sa upisivanjem .hex datoteke
u flash memoriju.
U lijevom dijelu prozora koji sadri nekoliko opcija potrebno je odabrati Memories kako je
prikazano na slici 12. Prije samog upisivanja .hex datoteke sve opcije (checkbox) trebaju
biti postavljene kao na slici 12.
Slika 12. Programiranje mikrokontrolera ATmega16