Both sides previous revisionPrevious revisionNext revision | Previous revision |
et:examples:setup:windows [2010/01/27 08:20] – toimetaja | et:examples:setup:windows [2020/07/20 09:00] (current) – created - external edit 127.0.0.1 |
---|
====== Tarkvara Windowsi keskkonnas ====== | ====== Arenduskeskkond AVR Studio (Windows) ATMega128 ====== |
| |
Järgnev juhend kirjeldab AVR arenduskeskkonna installeerimist ja kasutamist Windowsi operatsioonisüsteemis. | NB! Uue versioon (ATmega2561) paigaldusjuhend asub [[et:examples:setup:windows:v5|siin]] |
| |
| Järgnev juhend kirjeldab AVR arenduskeskkonna installeerimist ja kasutamist Windowsi operatsioonisüsteemis kasutades arendusplatvormina AVR Studio-t. |
| |
===== Tarkvara paigaldamine ===== | ===== Tarkvara paigaldamine ===== |
| |
Enne paigaldamist tuleks hankida alljärgnev tarkvara kas tootja kodulehelt või Kodulaboriga kaasas olevalt plaadilt. | Enne paigaldamist tuleks hankida alljärgnev tarkvara, kas tootja või Kodulabori kodulehelt või Kodulabori kohvriga kaasas olevalt plaadilt. |
| |
**1. AVR Studio** | **1. AVR Studio** |
| |
AVR Studio 4 on IDE (lühend inglise keeles //Integrated Development Environment//), milles toimub tarkvara kirjutamine ja mikrokontrollerisse laadimine. AVR Studio leiab selle tootja Atmeli kodulehelt. | AVR Studio 4 on IDE (inglise keeles //Integrated Development Environment//), milles toimub tarkvara kirjutamine ja mikrokontrollerisse laadimine. Uusima AVR Studio versiooni leiab selle tootja, Atmeli, kodulehelt. |
| |
**2. WinAVR** | **2. WinAVR** |
| |
WinAVR on GNU-GCC kompilaator AVR mikrokontrolleritele. See on vabavara, mille leiab Sourceforge veebilehelt. WinAVR pakub installeerimisel välja kataloogi nime, mis sisaldab ka versiooni numbrit, kuid kataloog tuleks manuaalselt seada hoopis: | WinAVR on GNU-GCC kompilaator AVR mikrokontrolleritele. See on vabavara, mille leiab Sourceforge veebilehelt. WinAVR pakub installeerimisel välja kataloogi nime, mis sisaldab lisaks nimele versiooni numbrit, kuid kataloog tuleks käsitsi muuta lihtsalt: |
| |
C:\WinAVR | C:\WinAVR |
**3. Kodulabori teek** | **3. Kodulabori teek** |
| |
Kodulabori teek sisaldab programmi lihtsustavaid funktsioone AVR-i ja kodulabori komplekti osade kasutamiseks. Teegi viimase versiooni leiab kodulabori veebilehelt. Teek tuleb kindlasti installeerida samasse kataloogi, kus on WinAVR. | 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. |
| |
**4.. Virtuaalne COM pordi ajur** | **4. Virtuaalne COM pordi ajur** |
| |
Ajur võimaldab arvutiga ühendada JTAG ICE programmaatori. Ajur tuleb installeerida enne programmaatori arvutiga ühendamist. Installeri nimi on "CDM x.xx.xx.exe", kus "x" tähistab versiooni. Seejärel tuleb ühendada programmaator arvutiga USB liidese kaudu ja lasta Windows-il teostada automaatne paigaldus. Olekuribal peaks nägema umbes sellist teadet. | Ajur võimaldab arvutiga ühendada JTAG ICE programmaatori. Ajur tuleb installeerida enne programmaatori ühendamist arvutiga. Paigaldusprogrammi nimi on "CDM x.xx.xx.exe", kus "x" tähistab versiooni. Seejärel tuleb ühendada programmaator arvutiga USB liidese kaudu ja lasta Windows-il teostada automaatne paigaldus. Olekuribal peaks nägema umbes sellist teadet. |
| |
{{ :examples:install:windows:new_hardware_popup.png?349 |Uue pordi leidmise teade}} | {{ :examples:install:windows:new_hardware_popup.png?349 |Uue pordi leidmise teade}} |
| |
Sõltuvalt sellest, kui palju virtuaalseid jadaporte on arvutisse eelnevalt paigaldatud ja kasutusele võetud, paigaldab Windows automaatselt järgmise järjekorranumbriga virtuaalpordi. Uus järjekorranumber genereeritakse ka USB pordi vahetamisel. AVR Studio mõned versioonid tunnevad JTAG ICE programmaatori ära ainult jadaportides COM1...COM9 ja silumise funktsiooni lubavad kasutada ainult jadaportides COM1...COM4. Kasutajal on võimalus pordi järjekorranumbrit muuta, kasutades //Device manager// töövahendit. [[et:examples:setup:portissue|Vaata protseduuri]]. | Sõltuvalt sellest, kui palju virtuaalseid jadaporte on arvutisse eelnevalt paigaldatud ja kasutusele võetud, paigaldab Windows automaatselt järgmise järjekorranumbriga virtuaalpordi. Uus järjekorranumber genereeritakse ka USB pordi vahetamisel. AVR Studio mõned versioonid tunnevad JTAG ICE programmaatori ära ainult jadaportides COM1...COM9 ja silumise funktsiooni lubavad kasutada ainult jadaportides COM1...COM4. Kasutajal on võimalus pordi järjekorranumbrit muuta, kasutades //Device manager// töövahendit. [[et:examples:setup:portissue|Vaata protseduuri veebilehelt]]. |
| |
===== Projekti loomine ===== | ===== Projekti loomine ===== |
| |
AVR programmi kirjutamiseks tuleb luua uus projekt, mis tüüpiliselt sisaldab endas palju erinevaid faile: nn. programmi algkoodi, päisfaile, kompileeritud programmi jne. Selleks et projektid oleks korrektselt eristatavad, tuleks iga projekti jaoks luua uus kataloog (seda võimalust pakub ka uue projekti loomise abimees). | AVR programmi kirjutamiseks tuleb luua uus projekt, mis tüüpiliselt sisaldab endas palju erinevaid faile: programmikoodi(e), päisefaile, 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: | Uue projekti loomiseks tuleb läbida järgmised sammud: |
| |
**1.** Avada AVR Studio ja vajutada nupule uus projekt (//New Project//) (vaikimisi pakub seda ka AVR Studio). Juhul kui vastav aken automaatselt ei avane, valida menüüst //Project - New project//. Pärast sobivat sisestust vajutada nupule //Next//. | **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//. |
| |
{{ :examples:install:windows:studio_welcome.png?500 |}} | {{ :examples:install:windows:studio_welcome.png?400 |}} |
| |
**2.** Avaneb aken, kus tuleb märkida kompilaatori ja failide algseaded. Kompilaatoriks märkida WinAVR ja paremas akna osas 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 tekitamiseks ja algkoodi faili avamiseks. 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//. | **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 WinAVR, siis ei ole see korrektselt paigaldatud ja tuleks enne C-keele programmi kirjutamist kindlasti teha. | NB! Kui kompilaatori valikus puudub AVR GCC, siis ei ole WinAVR korrektselt paigaldatud ja seda tuleks enne C-keele programmi kirjutamist kindlasti teha. |
| |
{{ :examples:install:windows:studio_new_project.png?500 |}} | {{ :examples:install:windows:studio_new_project.png?400 |}} |
| |
**3.** Järgnevalt avaneb aken, kus tuleb märkida kasutatav silumise platvorm ja mikrokontrolleri tüüp. Kodulaboris on silumise platvormina kasutusel //JTAG ICE// programmaator ja mikrokontrolleriks on //ATmega128//. Projekti lõplikuks loomiseks vajutada nupule //Finish//. | **3.** Järgnevalt avaneb aken, kus tuleb märkida kasutatav silumise platvorm ja mikrokontrolleri tüüp. Kodulaboris on silumise platvormina kasutusel //JTAG ICE// programmaator ja mikrokontrolleriks on //ATmega128//. Projekti lõplikuks loomiseks vajutada nupule //Finish//. |
| |
{{ :examples:install:windows:studio_project_programmer.png?500 |}} | {{ :examples:install:windows:studio_project_programmer.png?400 |}} |
| |
**4.** Nüüd avaneb juba programmeerimise kasutajaliides, kuhu saab hakata kirjutama uut programmi lähtekoodi. | **4.** Nüüd avaneb juba programmeerimise kasutajaliides, kuhu saab hakata kirjutama uut programmi lähtekoodi. |
{{ :examples:install:windows:studio_overview.png?500 |}} | {{ :examples:install:windows:studio_overview.png?500 |}} |
| |
**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 vajadust just teiste järgi. | <pagebreak> |
| |
{{ :examples:install:windows:studio_project_properties_general.png?500 |}} | **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. |
| |
| {{ :examples:install:windows:studio_project_properties_general.png?400 |}} |
| |
**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. | **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. |
| |
{{ :examples:install:windows:studio_project_properties_libraries.png?500 |}} | {{ :examples:install:windows:studio_project_properties_libraries.png?400 |}} |
| |
| Kui objekt //libhomelab.a// nimekirjast puudub, siis ei ole Kodulabori teek korrektselt süsteemi paigaldatud. |
| |
Kui objekt //libhomelab.a// nimekirjast puudub, siis ei ole kodulabori teek korrektselt süsteemi paigaldatud. | <pagebreak> |
| |
===== Seadistuste testimine ===== | ===== Seadistuste testimine ===== |
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. | 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 programmaator ATMega128 plaadiga. Ühendamisel kontrollida, et programmaator saab ühendatud õigesse pesasse (JTAG) ja õigetpidi (kaabel on suunatud kontrolleri plaadist eemale - vaata järgmist pilti). Peale programmaatori ühendada ka kontrolleri toide (kontrolleri plaadil peab süttima väike roheline LED). Sisestada lihtne C-kood: | **1.** Ühendada programmaator ATmega128 plaadiga. Ühendamisel kontrollida, et programmaator saab ühendatud õigesse pesasse (JTAG) ja õigetpidi (kaabel on suunatud kontrolleri plaadist eemale - vaata järgmist pilti). Peale programmaatori ühendada kontrolleri toide (kontrollerplaadil peab süttima väike roheline LED). Sisestada lihtne C-kood: |
| |
<code c> | <code c> |
int main(void) | int main(void) |
{ | { |
// viigu PB7 seadmine väljundiks | // Viigu PB7 seadmine väljundiks |
DDRB = 0x80; | DDRB = 0x80; |
| |
while (true) | while (true) |
{ | { |
| // Viigu PB7 inverteerimine |
| PORTB ^= 0x80; |
hw_delay_ms(500); | hw_delay_ms(500); |
PORTB = 0x00; | |
| |
hw_delay_ms(500); | |
PORTB = 0x80; | |
} | } |
} | } |
[{{ :examples:install:windows:studio_quick_buttons.png?267 |Kompileerimise ja programmaatori nupud}}] | [{{ :examples:install:windows:studio_quick_buttons.png?267 |Kompileerimise ja programmaatori nupud}}] |
| |
Kompileerida programm käsuga //Build// (kiirklahv F7) ja kontrollida, et kompileerimine õnnestuks. Selleks peab teadete aknasse tekkinud kompilaatori väljundi lõpp olema järgmine: | 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... | Build succeeded with 0 Warnings... |
| |
| <pagebreak> |
| |
**2.** Avada koodi laadimise aken nupust //Tools -> Program AVR -> Auto Connect//. Tulemuseks peaks avanema kompileeritud faili mikrokontrollerisse laadimise aken. Kontrollige, et avatud oleks kaart //Program//. | **2.** Avada koodi laadimise aken nupust //Tools -> Program AVR -> Auto Connect//. Tulemuseks peaks avanema kompileeritud faili mikrokontrollerisse laadimise aken. Kontrollige, et avatud oleks kaart //Program//. |
| |
{{ :examples:install:windows:studio_programmer.png?500 |}} | {{ :examples:install:windows:studio_programmer.png?400 |}} |
| |
Kui eespool toodud aken ei avane ja avaneb aken //Connection Failed//, siis puudub ühendus programmaatoriga. Esmalt tuleks kontrollida, kas mikrokontrolleril on järel toide ja kas programmaator on ühendatud õigesti (JTAG pistikusse, kaabel õiges suunas). Kui see on korras, siis tuleks kontrollida, mis COM pordi numbri on Windows programmaatorile omistanud. Kui see on suurem 9-st, siis ei pruugi tarkvara seda leida ja pordile tuleb omistada väiksem järjenumber. | Kui eespool toodud aken ei avane ja avaneb aken //Connection Failed//, siis puudub ühendus programmaatoriga. Esmalt tuleks kontrollida, kas mikrokontrolleril on järel toide ja kas programmaator on ühendatud õigesti (JTAG pistikusse, kaabel õiges suunas). Kui see on korras, siis tuleks kontrollida, mis COM pordi numbri on Windows programmaatorile omistanud. Kui see on suurem 9-st, siis ei pruugi tarkvara seda leida ja pordile tuleb omistada väiksem järjenumber. |
| |
{{ :examples:install:windows:studio_project_programmer_port.png?500 |}} | {{ :examples:install:windows:studio_project_programmer_port.png?400 |}} |
| |
**3.** Kui ühendus olemas, valida //Flash//__Underlined Text__-sektsioonis olevasse sisendfaili aknasse (//Input HEX faile//) kompileeritud fail (tavalisel asub projekti alamkataloogis //default//), mis on sama nimega, mis projekt ja laiendiga ".hex", näiteks "Labor1.hex". Pärast õige faili valimist vajutada nupule //Program//, mis laeb valitud programmi kontrollerisse. Kui kõik õnnestus, tekib akna allosasse teade: | **3.** 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 | OK |
Leaving programming mode.. OK | Leaving programming mode.. OK |
| |
Prorammi mõjul peaks kontrolleri plaadil olev LED PB7 perioodiliselt süttima ja kustuma. Kui programm töötab, on tarkvara paigaldatud edukalt ja esimene projekt tehtud. Palju õnne! | 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! |
| |
{{:kit:kit_test.jpg?500|}} | {{:kit:kit_test.jpg?400|}} |
| |
===== Siluri kasutamine ===== | ===== Siluri kasutamine ===== |
[{{ :examples:install:windows:studio_debugger_io_view.png?280|ATmega128 registrite loetelu siluris}}] | [{{ :examples:install:windows:studio_debugger_io_view.png?280|ATmega128 registrite loetelu siluris}}] |
| |
Programmi silumiseks (//debugging//) nimetatakse vigade otsimist programmist. Selleks on loodud eraldi vahendid - silurid (//debugger//), mis võimaldavad programmi täita samm-sammult, peatades seda soovitud kohtades. Selline programmi täitmine võimaldab igas soovitud 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 kontrolleril silumist (//on-ship debugging//) toetama ja peab olema vastav riistvara - näiteks JTAG programmaator, mis silumist toetab. Odavamad programmaatorid, mis kasutavad ISP programmeerimise liidest, võimaldavad laadida kontrollerisse küll kompileeritud programmi, kuid ei võimalda silumist. | 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 (//break point//) (kiirklahv F9). Kui programmi täitmine jõuab katkestuspunktini, peatatakse programmi töö, võimaldades nii uurida selle punkti ja ajahetke parameetreid. Programmi täitmist võib jätkata käsuga //Run// (kiirklahv F5) või siis kasutada käskhaaval liikumist nupuga //Step Into// (kiirklahv F11). | 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). |
| |
===== Ujukoma-arvude kasutamine ===== | ===== Ujukoma-arvude kasutamine ===== |
| |
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: | 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 lehel //Libraries// tuleb sinna, kuhu on lisatud kodulabori teegi fail //libhomelab.a//, järgi lisada ka //libprintf_flt.a// ja //libm.a//. | **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//__Underlined Text__-leht ja valida //[All files]//__Underlined Text__-sektsioon. Parempoolsesse kasti lisada read "-lprintf_flt" ja "-lm". //[Linker Options]//__Underlined Text__-sektsiooni lisada rida "-uvfprintf". | **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. | **3.** Vajutada OK ja sulgeda seadete aken. |