This is an old revision of the document!
Kodulabori tarkvarapakett koosneb järgnevatest osadest:
Tegu on AVR-GCC kompilaatori ja AVR-LibC paketiga Windowsi jaoks. AVR-GCC abil kompileeritakse C või C++ keele programme AVR-ile ja AVR-LibC sisaldab elementaarseid funktsiooni programmi kirjutamiseks. Kogu pakett on vabatahtlike poolt arendatav open-source vabavara.
AVR Studio on AVR-i tootja Atmeli poolt arendatav integreeritud-arendusliides (IDE) mis sisaldab tekstiredaktorit programmi kirjutamiseks ja kõiki tööriistu programmeerimiseks ning programmi silumiseks. AVR Studios saab AVR programme kirjutada Assembler keeles ja C keeles, viimasel juhul kasutatakse WinAVR-i.
Tarkvara teek, mis on kirjutatud spetsiaalselt Kodulabori programmeerimise lihtsustamiseks. See sisaldab eelkompileeritud funktsioone ja päisefaile mille abil AVR-i perifeeriat ja Kodulabori mooduleid kasutada. AVR perifeeria funktsionaalsus on kasutatav ka teistel AVR mikrokontrolleritel.
Tarkvarapakette saab alla laadida failide veebilehelt.
Tarkvara arhitektuur ülevalt-alla näeb välja järgmine:
Iga tarkvara kiht sõltub alumisest. Kõige aluseks on AVR GCC kompilaator mis teisendab C keele programmikoodi AVR mikrokontrollerile arusaadavasse masinkoodi. Teisel kihil on AVR-i C keele standardfunktsioonide teek (inglise keeles library) mis sisaldab üldkasutatavaid funktsioone mäluhalduseks, tekstitöötluseks, andmeedastuseks, jms. Mis aga kõige olulisem – AVR-LibC sisaldab AVR registrite ja bittide nimelisi makro keele definitsioone. Ilma nendeta peaks kasutaja ise registritele vastavaid mäluaadresse teadma ja programmeerimine oleks palju keerulisem. AVR-LibC ja AVR-GCC on Windows keskkonnas integreeritud WinAVR paketti.
Kodulabori teek sisaldab funktsioone olulisema AVR perifeeria kasutamiseks (näiteks digitaalsed viigud, analoog-digitaal muundur, jne). Lisaks on selles teegis ka üldkasutatavad bititehete makro-funktsioonid ja tõeväärtus konstandid. Teegis on ka kodulabori moodulite kasutamise funktsioonid (näiteks ekraanide ja mootorite protseduurid) mis baseeruvad AVR riistvara teegi osal.
Kõige kõrgemal tarkvara-arhitektuuris on lõplik rakendus, mis on siis kas näidisprogramm või kasutaja enda loodud rakendus. Rakenduses võib kasutada ükskõik millise alamtaseme tarkvara funktsionaalsust - ehk nagu öeldud see ei pea põhinema ainult kodulabori teegil.