AVR C++ Lib ja Eclipse
Eclipse on võimalusterohke programmeerimiskeskkond, mida saab kasutada nii Windowsi, Linuxi kui ka Maci operatsioonisüsteemidel. Eriti hea on Eclipse AVR-i programmeerija jaoks, sest AVR Libc ja Eclipse'i ühendamiseks on viimasele loodud plugin, mis teeb projektifailide loomise ja haldamise ning programmaatori kasutamise lihtsaks. Paari lihtsa muudatusega on Eclipse valmis töötama ka AVR C++ Libiga.
Programmide paigaldamine
Paigaldada on vaja kõik, mis AVR-i jaoks C-keeles programmeerimiseks vajalik, lisaks AVR C++ Lib ja Eclipse.
AVR Libc paigaldamine
AVR C++ Lib vajab tööks AVR Libc teeki, GCC-AVR kompilaatorit ja programmide üleslaadimiseks avrdude'i. Kui sul on need kõik juba olemas, siis mine kohe juhendi järgmise alajaotuse juurde. Vastasel juhul paigalda nimetatud programmid ja kontrolli, kas nad töötavad.
Ubuntu kasutajad saavad kõik vajaliku paigaldada, kui trükivad terminaliaknasse järgmise rea.
sudo apt-get install avrdude gcc-avr avr-libc
AVR C++ Libi paigaldamine
Tõmba internetist AVR C++ Libi lähtekood ja kopeeri see mingisse kindlasse kohta kõvakettal, kust seda on lihtne üles leida. Kellel AVR C++ Lib on juba installitud, võivad selle punkti vahele jätta ja kohe juhendi järgmise alajaotuse juurde asuda. Teistele infoks: vaja on ainult lähtekood kõvakettale saada, keskkonnamuutujate seadistamine pole selle juhendi järgijatele vajalik.
Ubuntu inimesed saavad värskeima AVR C++ Libi otse SVN-ist järgmise käsu sisestamisel terminali.
sudo svn co https://avr-cpp-lib.svn.sourceforge.net/svnroot/avr-cpp-lib/trunk/AVRCppLib /usr/avr/include/avr/cpp
Kui peaks kunagi tekkima vajadus uuemat AVR C++ Libi versiooni tõmmata, siis piisab taas ülaltoodud käsu kasutamisest.
Eclipse'i paigaldamine
Järgmisena paigalda Eclipse IDE for C/C++ Developers, mille versiooninumber on vähemalt 3.3. Uusimates Ubuntu versioonides (alates 9.10) pakutakse juba piisavalt uut Eclipse'i, mille saab installeerida alltoodud käsuga. Kellel installeeritud, mingu juhendis kohe edasi plugina paigaldamise juurde. Vanades Ubuntu versioonides (kuni Ubuntu 9.04, k.a) nii uut Eclipse'i ei pakuta, seega peab selle ise paigaldama. Lisaks peab paigaldama suure arvu teisi programme, mida Eclipse vajab. Seda on kõige lihtsam teha vana Eclipse'i versiooni installeerimisega. Eclipse'i erinevad versioonid üksteist ei sega.
Ubuntu kasutajad kirjutagu terminaliaknasse järgmine rida.
sudo apt-get install eclipse
See paigaldab vana Eclipse ja kõik tema jaoks vajalikud programmid. Järgmisena mine internetiaadressile http://www.eclipse.org/downloads ja tõmba endale uusim Eclipse, klikkides hiirega kirjal „Eclipse IDE for C/C++ Developers“. Salvesta fail arvutisse ja paki lahti oma kodukataloogi. Hilisemaks mugavaks kasutamiseks on soovitatav teha töölauale või menüüsse otsetee Eclipse'i käivitamiseks. Vastasel juhul on kerge eksida ja käivitada vana Eclipse'i versioon.
Eclipse'i AVR-plugina paigaldamine
Meile vajalik plugin asub aadressil http://avr-eclipse.sourceforge.net/. Seal on ka juhendid paigaldamiseks.
Kes ametlikku juhendit lugeda ei viitsi, siis tõmba plugina kodulehelt uusim stabiilne versioon (avr-eclipse stable release) ja paki see lahti Eclipse'i kausta. Näiteks kui paigaldasid Eclipse'i kataloogi /home/kasutaja, siis plugin paki lahti kataloogi /home/kasutaja/eclipse.
Palju õnne! Oled kogu vajaliku kraami paigaldanud. Nüüd on aeg seda kasutama õppida.
C++ projekti loomine ja Eclipse'i seadistamine
Niisiis, sa tahad oma uut AVR mikrokontrollerit programmeerida C++ keeles, aga ei oska Eclipse'i seadistada? Järgnev juhend on just sulle!
Uue projekti loomine
Käivita Eclipse. esimesel korral käivitudes küsib Eclipse sinult, kus sa oma programme hoidma tahad hakata. Vali sulle sobiv kataloog ja märgi linnukesega valik „Use this as the default and do not ask again“. Vajuta OK.
Uue C++ projekti loomine on peaaegu sama, mis C projekti loomine. Viimast on detailselt kirjeldatud AVR plugina abifailis: Help→Help Contents→AVR Plugin. C++ projekti loomise saad selgeks, kui teed läbi järgnevalt kirjeldatud sammud.
- Vali menüüst File→New→C++ Project.
- Sisesta oma projekti nimi ja vajuta Next.
- Vali konfiguratsioonid, mida soovid kasutada. Soovitatav on jätta valituks ainult Release konfiguratsioon, sest see on seadistatud tekitama ka *.hex faili. Hiljem võid lisada uusi konfiguratsioone, et oleks lihtsam vahetada programmaatorit. Debug on hea selleks, et panna koodi debugimisridu, nagu näiteks
#ifdef DEBUG USART0::Send("Viga nr 7!"); #endif
, aga siis pead ise seadistama, et tekitataks ka *.hex fail. Iga konfiguratsiooni jaoks pead seadistama ka programmaatori osa, seega jätame praegu lihtsuse mõttes valituks ainult Release konfiguratsiooni. Vajuta Next.
- Nüüd võid hakata oma projekti uusi faile lisama. Selle harjutamiseks ja programmaatori ning kompilaatori testimiseks tekita uus C++ fail. Selleks kliki parempoolse hiirenupuga (kui su hiirel ikka on mitu nuppu) „Project Explorer“ projekti nimele ja tekkivast menüüst vali New→Source File. Pane failile nimi, soovitatavalt .cpp laiendiga. Vajuta Finish. Ava loodud fail, tehes „Project Explorer“ aknas sellele topeltklikk. Kopeeri faili järgmised read.
#include <IO.h> using namespace AVRCpp; typedef OutputPin7<PortD> LED; int main() { LED::InitOutput(); while (true) { for (uint16_t i = 0; i< 500000; i++) { // LED'i väljund vastupidiseks if(i == 200000) LED::Toggle(); } } return 0; }
Kui su plaadil on LED kusagil mujal kui PD7 küljes, siis tee vastav korrektuur. Näiteks Pisi-XBEE kasutab PD7 väljundit punase LED-i juhtimiseks.
- Kui kõik on korras siis projekti kompileerimisel (Project→Build Project) ei anta ühtegi veateadet. Kui aga saad veateateid (9 viga ja 1 hoiatus) siis on põhjuseks asjaolu, et Eclipse ei suuda leida AVR C++ Libi. Ubuntu kasutajad, kes on seni kõike juhendi järgi teinud, peavadki veateateid saama. Vigade parandamiseks vaata juhendi järgmist sektsiooni.
AVR C++ Libi seadistamine
Kui Eclipse ei leia AVR C++ Libi, siis peab talle selle asukoha ette näitama. Selleks vali Project→Properties→C/C++ Build→Settings→AVR C++ Compiler→Directories. Paremal on kast, kuhu saab lisada katalooge kõvakettal, kust Eclipse peaks päisefaile otsima. Lisa sinna AVR C++ Libi asukoht, vajutades Add nupul ja valides dialoogiaknast õige kausta. Seda juhendit järginud Ubuntu kasutajate jaoks on õige kaust “/usr/avr/include/avr/cpp“, ilma jutumärkideta. Vajuta OK, et sulgeda Properties aken. Nüüd projekti kompileerides (Ctrl+B) ei tohiks tulla ühtki veateadet. Kui ikka on vigu, siis oled midagi valesti teinud, tõenäoliselt AVR Libc paigaldamisel.
Sellist käsitsi seadistamist ei läheks vaja, kui AVR C++ Lib oleks süsteemi korralikult installeeritud, mitte lihtsalt kopeeritud, nagu selles juhedis tehakse. Probleemi peaks lahendama AVR C++ Libi installerid erinevatele operatsioonisüsteemidele.
Programmaatori seadistamine
Nagu kõik muu seadistus, käib ka programmaatori tööle saamine Project→Properties aknast. Sealt liigu edasi alammenüüsse AVR→AVRDude. Tekita uus programmaatori konfiguratsioon, vajutades New…. Avanenud aknas seadista järgnevad parameetrid.
- „Configuration name“. Soovitan kirjutada programmaatori nime või programmeerimispordi nime.
- „Description“. Lühike programmaatori kirjeldus vabas vormis.
- „Programmer Hardware“. Vali programmaatori tüüp. Robotiklubis on populaarseks saanud AVROSP-i abil läbi mikrokontrolleri USART pordi programmeerimine. Selle kasutamiseks vali Atmel AppNote AVR911 AVROSP.
- „Override default port“. Vali arvuti port, kuhu programmaator on ühendatud. Robotiklubis kasutame näiteks AVROSP-iga suhtlemiseks USB→Serial liidest, mis tekitab virtuaalse järjestikpordi. Ubuntu kasutajatel on sel juhul pordi nimeks “/dev/ttyUSB0“, ilma jutumärkideta. Mitme programmaatori üheaegsel kasutamisel võib pordi nime lõpus oleva „0“ asemel olla ka suurem number.
- „Override default baudrate“. Andmeside kiirus on vaikimisi RS-232 standardne kiirus. Robotiklubis kasutame näiteks sumorobotitel 38400 baud kiirust. See kiirus peab olema sama, mis mikrokontrolleris asuva boot loaderi seadetes.
- Nüüd on programmaator seadistatud. Kinnita seaded OK ja OK vajutustega.
Programmi laadimine MCU-sse
Kui programm kompileerus veatult ja programmaator on seadistatud, siis võid loodud programmi mikrokontrollerisse laadida. Selleks vali pea-aknast AVR→Upload Project to Target Device või vajuta lihtsalt Ctrl+Alt+U. Programm peaks edukalt mikrokontrollerisse jõudma. Ülaltoodud programmikood näiteks põhjustab LED-i perioodilist vilkumist, nii et kohe on aru saada, kas programm hakkas tööle.
Kui programmeerimine ebaõnnestus, siis loe programmaatori kasutusjuhendit. Näiteks AVROSPx kasutamiseks peab MCU viima programmeerimisrežiimi.
Koodi debugimine
JTAG ICE mkII. Vaja veel katsetada…