Järgnev juhend kirjeldab Kodulabori versioon 5 (Kontroller v1 - ATmega2561) arenduskeskkonna paigaldamist ja kasutamist Windows operatsioonisüsteemis.
Enne paigaldamist tuleks hankida alljärgnev tarkvara, kas tootja või Kodulabori kodulehelt või Kodulaboriga kaasas olevalt plaadilt.
1. AVR Studio
AVR Studio on Atmeli arenduskeskkond (inglise keeles IDE Integrated Development Environment), milles toimub tarkvara kirjutamine ja mikrokontrollerisse laadimine. Uusima AVR Studio versiooni leiab selle tootja - Atmeli kodulehelt. Tavaliselt on AVR Studio-le välja andud ka teenuspakett (Service Pack - SP). Alati on soovitav peale AVR Studio paigaldamist lisada ka uusim teenustepakett.
2. WinAVR
WinAVR on GNU-GCC kompilaator AVR mikrokontrolleritele. See on vabavara, mille leiab Sourceforge veebilehelt. WinAVR pakub paigaldamisel välja kataloogi nime, mis sisaldab lisaks nimele versiooni numbrit, kuid kataloog tuleks käsitsi muuta lihtsalt:
C:\WinAVR
3. Kodulabori teek
Kodulabori teek sisaldab programmi lihtsustavaid funktsioone AVR ja Kodulabori komplekti osade kasutamiseks. Teegi viimase versiooni leiab Kodulabori veebilehelt. Teek tuleb kindlasti installeerida samasse kataloogi, kus on WinAVR. ATmega2561 kontrolleriga varustatud Kodulabori (Controller board v1.x) jaoks on sobiv homelab_library_v2.x. Homelab library v2.1
4. JTAG liides
JTAG liides - HappyJTAG2 on liides programmaatori ja AVR Studio vahele. Tarkvara on pakitud zip failiks ja piisab selle lahtipakkimisest soovitud kataloogi näiteks C:\WinAVR (tarkvara eraldi paigaldada ei ole vaja) HappyJTAG2 for HomeLab
5. Programmaatori ajur
Ajur võimaldab arvutiga ühendada programmaatori, mis asub kontrolleri plaadil. Kui ühendada kontrollerplaat arvutiga USB liidese kaudu peaks Windows teostama automaatse paigalduse (Windows 7). Kui avada paigalduse protsessi aken peaks nägema umbes järgmisi teateid:
Enne järgmist sammu tuleks oodata, kuni paigaldamine on täielikult valmis.
Kui arendustarkvara on paigaldatud saab alustada programmi kirjutamist. AVR kontrolleri programmi kirjutamiseks tuleb luua uus projekt, mis tüüpiliselt sisaldab endas palju erinevaid faile: programmikoodi(e), päisfaile, kompileeritud programmi jne. Selleks et projektid oleks korrektselt eristatavad, tuleks iga projekti jaoks luua uus kataloog (seda võimalust pakub uue projekti loomise abimees).
Uue projekti loomiseks tuleb läbida järgmised sammud:
1. Avada AVR Studio ja vajutada nupule uus projekt (New Project). Juhul kui vastav aken automaatselt ei avane, valida menüüst Project - New project. Pärast sobivat sisestust vajutada nupule Next.
2. Avaneb aken, kus tuleb märkida kompilaatori ja failide algseaded. Kompilaatoriks valida AVR GCC ja paremas akna osas sisestada projekti nimi ning algkoodi faili nimi. Algkoodi faili nimi peaks kindlasti lõppema laiendiga “.c”. Aknas on võimalik veel märkida valikud automaatseks projekti nimega kataloogi ja algkoodi faili tekitamiseks. Mõlemad valikud on mõistlik ära märkida. Samuti tuleks näidata kataloog, kuhu vastav projektikataloog tekitatakse. Pärast valikute tegemist vajutada nupule Next.
NB! Kui kompilaatori valikus puudub AVR GCC, siis ei ole WinAVR korrektselt paigaldatud ja seda tuleks enne C-keele programmi kirjutamist kindlasti teha.
3. Järgnevalt avaneb aken, kus tuleb märkida kasutatav silumise platvorm ja mikrokontrolleri tüüp. Kodulaboris (v5) on silumise platvormina kasutusel JTAGICE mkII programmaator ja mikrokontrolleriks on ATmega2561. Projekti lõplikuks loomiseks vajutada nupule Finish.
4. Nüüd avaneb juba programmeerimise kasutajaliides, kuhu saab hakata kirjutama programmi lähtekoodi.
5. Enne koodi kompileerimist tuleb määrata projekti seaded. Olulisemad seaded on kontrolleri taktsagedus ja kompilaatori optimeerimismeetod. Kodulabori kontrolleri taktsagedus on 14,7456 MHz ehk 14745600 Hz. See sagedus tuleb hertsides määrata Project → Configuration Options → General aknas. Optimeerimise meetodiks jätta -Os, kui ei ole konkreetset vajadust teiste meetodite järgi.
6. Kodulabori teegi kasutamine AVR Studio-ga eeldab, et see on tarkvara paigaldamise juhendi kohaselt süsteemi paigaldatud. Iga projekti korral tuleb teek projekti seadetest Project → Configuration Options → Libraries lisada lingitavate objektide nimekirja.
Kui objekt libhomelab2561.a nimekirjast puudub, siis ei ole Kodulabori teek korrektselt süsteemi paigaldatud.
Kui arenduskeskkond on esimest korda paigaldatud ja seadistatud, on mõistlik testida, kas kõik sai tehtud õigesti. Selleks on lihtsaim viis teha üks väike programm, see ära kompileerida ja laadida kontrollerisse.
1. Ühendada kontrollerplaat USB kaabliga arvutiga. Peale kontrollerplaadi ühendamist peaks süttima väike roheline toite LED - PWR.
2. Käivita liidesprogramm HappyJTAG2 ja seejärel AVR Studio. Oluline on sammude järjekord. Esmalt tuleb ühendada kontroller arvutiga ja veenduda, et kontroller lülitub sisse. Seejärel käivitada programm HappyJTAG2 ja AVR Studio.
3. AVR Studios luua vajadusel projekt ja sisestada lihtne C-kood:
Testida võib kahte erinevat koodi. Esimene neist kasutab Kodulabori teeki, teine teeb sama asja ilma teegita.
//Lihtne testprogramm, mis kasutab Kodulabori teeki. #include <avr/io.h> #include <homelab/delay.h> int main(void) { // Viigu PB7 seadmine väljundiks DDRB = 0x80; // Lõputu tsükkel while (true) { // Viigu PB7 inverteerimine PORTB ^= 0x80; hw_delay_ms(500); } }
//Lihtne testprogramm, mis ei kasuta Kodulabori teeki. #include <avr/io.h> int main(void) { unsigned int x,y; // Viigu PB7 seadmine väljundiks DDRB = 0x80; // Lõputu tsükkel while (1) { // Viigu PB7 inverteerimine PORTB ^= 0x80; y=3200; while(y--){ x=260; while(x--){ asm volatile ("nop"); } } } }
Kompileerida programm käsuga Build (kiirklahv F7) ja kontrollida, et kompileerimine õnnestus. Selleks peab teadete aknasse tekkinud kompilaatori väljundi lõpp olema järgmine:
Build succeeded with 0 Warnings...
4. Avada koodi laadimise aken nupust Tools → Program AVR → Auto Connect. Tulemuseks peaks avanema kompileeritud faili mikrokontrollerisse laadimise aken. Kontrollige, et avatud oleks kaart Program.
Kui eespool toodud aken ei avane ja avaneb aken Connection Failed, siis puudub ühendus programmaatoriga. Esmalt tuleks kontrollida, kas mikrokontrolleril on järel toide. Kui see on korras, siis tuleks kontrollida HappyJTAG2 programmi oleku indikaatoreid. FT2232 ja AVRStudio peaks olema rohelised.
5. Programmaatori aknas sisestada Flash-sektsioonis tekstikasti Input HEX File kompileeritud fail. Seda saab teha “…” nuppu vajutades. Kompileeritud fail asub tavaliselt projekti alamkataloogis default ja see on sama nimega, mis projekt, kuid laiendiga “.hex”, näiteks “labor1.hex”. Pärast õige faili valimist vajutada nupule Program, mis laeb valitud programmi kontrollerisse. Kui kõik õnnestus, tekib programeerimiskeskkonna allosasse teade:
OK Reading FLASH input file.. OK Setting device parameters for jtag programming ..OK Entering programming mode.. OK Erasing device.. OK Programming FLASH .. OK Reading FLASH .. OK FLASH contents is equal to file.. OK Leaving programming mode.. OK
Programmi mõjul peaks kontrolleri plaadil olev oleku-LED PB7 perioodiliselt süttima ja kustuma. Kui programm töötab, on tarkvara paigaldatud edukalt ja esimene projekt tehtud. Palju õnne!
Programmi silumiseks (inglise keeles debugging) nimetatakse vigade otsimist programmist. Selleks on loodud eraldi vahendid - silurid (inglise keeles debugger), mis võimaldavad programmi täita samm-sammult, peatades seda soovitud kohtades. Selline programmi täitmine võimaldab igas programmi faasis kontrollida muutujate väärtusi, registrite sisusid ja programmi täitmise järjekorda. Eriti oluline on silumise võimaluse kasutamine keerukamate programmide juures, kus vea põhjust on tihti keeruline otsida. Mikrokontrollerite puhul on veel oluline, et tarkvara samm-sammult täitmine toimub reaalselt kontrolleris ja võimaldab nii lisaks registrite väärtuste vaatamisele näha ka reaalsete väljundite muutumist. Siluri kasutamiseks on eelkõige vaja kahte tingimust: kasutatav mikrokontroller peab silumist toetama ja peab olema silumist toetav riistvara - JTAG programmaator. Odavamad programmaatorid, mis kasutavad ISP programmeerimise liidest, võimaldavad laadida kontrollerisse kompileeritud programmi, kuid ei võimalda silumist.
Programmi käivitamiseks siluri režiimis AVR Studio-ga tuleks see esmalt kompileerida nupuga Build (kiirklahv F7) ja käivitada kompileeritud programm käsuga Run (kiirklahv F5). Programmi lähtekoodi võib enne seda soovitud kohtadele lisada katkestuspunkte (inglise keeles break point) (kiirklahv F9). Kui programmi täitmine jõuab katkestuspunktini, peatatakse programmi töö, võimaldades nii uurida mikrokontrolleri olekut sellesse punkti jõudmisel. Programmi täitmist võib jätkata jällegi käsuga Run või siis kasutada käskhaaval täitmist käsuga Step Into (kiirklahv F11).
Mõnikord tekib vajadus AVR programmis kasutada ujukoma-arve. Nendega arvutamiseks ja nende esitamiseks printf-tüüpi funktsioonidega tuleb projekti seadistustes teha järgmised muudatused:
1. Avada projekti seaded menüüst Project → Configuration Options. Seadete kaardil Libraries tuleb sinna, kuhu on lisatud Kodulabori teegi objekt libhomelab.a, järgi lisada ka libprintf_flt.a ja libm.a.
2. Seejärel tuleb avada Custom Options kaart ja valida [All files] sektsioon. Parempoolsesse kasti lisada read “-lprintf_flt” ja “-lm”. [Linker Options] sektsiooni lisada rida “-uvfprintf”.
3. Vajutada OK ja sulgeda seadete aken.