IDE asennus, Integrated Development Environment Atmelin AVR-mikro-ohjaimille. 15.8.2008 pva Pienen maan armeija on samaa tarkoitusta varten kuin päivystävän upseerin pistooli. Omia varten. - Arvo Salo Sisältö 1. Yleistä 2. WinAVR asennus 3. AVRStudio asennus 4. Virtual COM asennus 5. Opiskeluympäristö Yleistä IDE, Integrated Development Environment, integroitu ohjelmiston kehitysympäristö on ohjelmistokokonaisuus, joka sisältää yleensä ohjelman kirjoittamiseen tarkoitetun editorin, assemblerin, C- kääntimen, linkkerin, standardi-c-kirjaston ja kirjasto-ohjelmia. Kaikki tämä on piilotettu graafisen käyttöliittymän alle. Usein on mukana vielä mikro-ohjaimen ohjelmointiohjelma ja mahdollisesti myös simulaattori-emulaattori. Gurut, ammattilaiset ja sellaiseksi aikovat, käyttävät avr-gcc-käännintä integroituna AVRStudioemulaattoriohjelman kanssa. Näistä mekin teemme IDE-paketin, jolla pääsee hienosti alkuun ja se riittää ja riittää, sillä avoin GNU-GCC-maailma antaa osaavalle mahdollisuuksia edetä vaikka mihin. AVR-ohjelmien kehitysympäristön käytöstä ohjelmien tekemiseen ja koodin debuggaukseen löytyy kummastakin Microsalon tekemät dokumentit. Tutustu siihen asennusten jälkeen. 1
Sulautetun järjestelmän ohjelman tekeminen alkaa lähdekoodin kirjoittamisella. Puhtaan konekoodin (se jota CPU ymmärtää) kirjoittaminen on kovin työlästä. Erilaisilla ihmisläheisillä ohjelmointikielillä se sujuu paljon helpommin. Ohjelmat kirjoitetaan tänäpäivänä pääasiassa C- kielellä. Lähdekoodi tallennetaan ASCII-teksti-muotoisena tiedostoon. Tekstieditoriksi käy mikä tahansa, me käytämme AVRStudion editoria. Korkean tason kielet on muunnettava mikroprosessorin ymmärtämään muotoon, konekieleksi. Siihen tarvitaan käänninohjelma. Sulautettujen laitteiden ohjelmia kehitetään muussa kuin kohdeympäristössä (PC-koneessa jossa voi olla joko Windows- tai Linux-käyttöjärjestelmä), jolloin tarvitaan ristikäännin. Ristikäännin toimii PC-tietokoneessa, mutta koodi käännetään kohdeprosessorin (AVR) konekoodiksi. Kun koodi on kirjoitettu ja käännetty, se on siirrettävä PC:n muistista mikro-ohjaimen ohjelmamuistiin. Se ei siirry sinne itsestään, vaan tarvitaan ohjelmointi- eli lataajaohjelma. Sulautettuihin laitteisiin tarkoitetut prosessorit ohjelmoidaan usein erillisistä ohjelmointinastoista (jotka muutoin toimivat esimerkiksi tavallisina IO-nastoina), JTAG liitännällä, ISP-väylällä, jne Koodin testaaminen ja ajaminen ei käy PC-koneessa, koska niissä on eri prosessorit. Tarvitaan käytettävän mikro-ohjaimen sisältämä testausympäristö, yleensä pieni kortti tai kitti. Jos tuohon mikro-ohjain-opiskelukorttiin voi asentaa erilaisia I/O-kortteja, mieluusti myös itsetehtyjä, oppiminen tehostuu olennaisesti. Ja se mahdollistaa myös hyötykäyttöön tarkoitettujen sovellusten tekemisen. Mitä AVR mikro-ohjaimen ohjelmien kehityksessä tarvitaan? 1. Projektinhallintatyökalu Luo projektikansion, johon se tallettaa lähdekoodin ja käännöstulokset. 2. Tekstieditori C-kielisen lähdekoodin (ASCII) kirjoittamiseen. Se tulee AVRStudion myötä. 3. C-käännin C-koodi käännetään konekoodiksi avr-gcc-kääntimellä (se on WinAVR-paketissa). 4. Lataaja, ohjelmointi, flässäys Monta mahdollisuutta. Me käytämme JTAGICEä, tai AVRISP mkii, tai STK500 ver2. 5. Debuggaustyökalut: Simulaattori ja Emulaattori Ohjelmaosat sisältyvät AVRStudioon. JTAGICE, sisältyy PV-M322-korttiin tai JTAGICE mkii, ostettavissa Atmelilta 6. AVR-ohjaimen sisältämä kehityskortti PV-M322-MOOkit ja siinä LED-moduuli yms. 2
IDE:n sisältämien ohjelmien asennus Tarvittavat ohjelmat ja tiedostot Tiedosto Koko Mistä (löytyy Microsalon USB-tikulta) AvrStudio4Setup.exe 91 964 kb http://www.atmel.com/ WinAVR-20080610-install.exe 22 884 kb http://sourceforge.net/projects/winavr doc2503.pdf Atmega32 datasheet 5,2 MB www.atmel.com Hanki ne netistä tai Microsalon USB-muistitikulta Mikro-ohjaimen ohjelmointi C-kielellä 2. Ensin asennetaan WinAVR-paketti, WinAVR-20080610-install.exe. Tai sen uudempi versio. Mitä WinAVR paketti sisältää WinAVR ei ole pelkkä C-käännin, vaan se on kokoelma AVR-ohjaimien kanssa työskenneltäessä tarvittavia työkaluohjelmia. Se on ikään kuin Windows-ympäristössä toimivan AVR-koodarin työkalupakki, joka on koottu itseasentuvaksi tiedostoksi. Jos työskennellään Linux-alustalla, silloin WinAVR:n sisältämät paketit täytyy imuroida ja asentaa erikseen. Siitä on eri ohje. GNU GCC, avr-gcc Varsinainen C-käännin avr-gcc on GNU gcc-kääntimestä AVR-ohjaimille sovitettu työkaluohjelma, joka kääntää C-kielisen lähdekoodin assemblyksi. Assembler kääntää assemblyn konekoodiksi jota AVR osaa lukea ja toimia sen sisältämien käskyjen mukaan. GNU Binutils Binutils pakettilla rakennetaan lähdekoodista objektitiedostot. Binutils sisältää ohjelmia, joita tarvitaan käännöstyössä, c-kääntimen lisäksi löytyy mm. linker ja assembler (assembly-koodin käännin). Näistä ei koodarin tarvitse tietää kummennin, koska kaikki toimii automaattisesti. avr-as, assembler-käännin avr-ld, linkittäjä, linkitin, linker. Linkittäjä-ohjelma yhdistää valmiiksi käännetyt ns. objektitiedostot ja ohjelmassa tarvittavat kääntimen mukana tulleet kirjastotiedostot, yhdeksi, ajokelpoiseksi tiedostoksi. Toiminta on automaattinen, koska se on integroitu GCC-kääntimeen. avr-libc Kääntimen työ on kääntää koodia. Tätä varten käännin tarvitsee tiedon miten tuo kaikki tehdään. avr-libc on kirjasto, jossa on kokoelma ohjelmoinnisssa tarpeellisia aliohjelmia, rutiineita. Sinne on koottu myös iso joukko headereita, erilaisia määritystiedostoja. avr-libc:n on osa open source projectia, jonka pohjana on C:n standardikirjasto. Yhdessä avr-binutils, avr-gcc ja avr-libc tiedostopaketit muodostavat Opensource perustyökalut Atmelin AVR-mikro-ohjaimille. Kirjasto on jaettu kahteen osaan: libc.a, yleisfunktioita limb.a, jossa on matemaattisia funktioita kuten sin, cos, sqrt, pow (<math.h>). Käyttäjän manuaalista löytyy kaikki tarvittava tieto kirjaston käytöstä. 3
avrdude (lataaja- eli ohjelmointiohjelma). Siinä on tuki hyvin monelle erilaiselle ohjelmointikaapelille. Mfile makefile editori, se on ohjelma makefilen tekoon. Programmers Notepad Tekstieditoir ja IDE AVR-ohjaimille ja paljon muuta HUOM! Nyt on korkea aika laittaa Windows-asetukset niin, että tiedostotarkenteet näkyvät. Jos et tiedä mikä on tiedostotarkennin, niin on viisainta lopettaa tähän. Ja opiskella ensin PC:n käyttöä. Ja sitten asennustöihin Käynnistä asennus/installer ohjelma. WinAVR-paketin asentaminen tänäpäivänä on yksinkertainen toimenpide, lähinnä se on enterin painallusta. Mutta tutki tarkoin asennuksen pysäytyskohdat, jotta hahmotat asennuksen etenemisen ja mitä milloinkin ollaan tekemässä. 4
Tiedosto on viisainta asentaa oletushakemistoon, eli C-aseman juureen, koska siten säästyt hakupolkujen määrittelyltä. Työkansio Luo kansio: D:\Omat_koodit ja sinne jokaiselle C-ohjelma-aiheelle (ekat, keskeytys, timer, jne.) oma alihakemisto. Koodin teko alkaa luomalla aiheeltaan oikeaan hakemistoon (esim. D:\Omatkoodit\ekat) projektikansio. Sen tekee automaattisesti AVRStudio työn alussa. Asennuksen loputtua, avaa dokumentti: file:///c:/winavr-20080610/winavr-user-manual.html Se on hyvä ja monipuolinen opas ohjelman käyttöön ja samalla mainio johdatus sulautettujen järjestelmien ensiopiskeluun. Tai vaikka Embedded English-opiskeluun. Suosittelen. 5
Seuraavaksi asennetaan AVRStudio 4 Poista ensin mahdollinen aiempi asennus. Tärkeää!! AVR Studio on Atmelin vapaasti jakama ohjelma, joka on oikeastaan IDE, Integrated Development Environment, integroitu AVR-ohjelmien kehitysympäristö, joka sisältää erilaisia työkaluja, mm: Projektinhallintatyökalu tekee projektikansion, johon talletetaan kirjoittamamme lähdekoodi ja ohjelma kokoaa (lähes) automaattisesti kaikki muutkin työssä tarvittavat tiedostot. Editori (assembly- ja) c-kielisen lähdekoodin kirjoittamiseen. Tuki ulkoiselle C-kääntimelle WinAVR eli avr-gcc.exen kutsu tapahtuu vain napin painalluksella. Lataaja- eli ohjelmointiohjelma Tukee useita ohjelmointikaapeleita. In-Circuit emulaattori (ICE) Ohjelman debuggaaminen reaaliympäristössä ja reaaliajassa. Simulaattori Ohjelman debuggaaminen PC-koneessa. AVR Studiota voi käyttää ed. lisäksi mm ohjelman etenemisen seurantaan, (sekä assembly-, että C- koodia) ja mikro-ohjaimen toiminnan opiskeluun. Ohjelmassa voi avata lukuisia eri ikkunoita, joissa voi seurata ohjaimen yleis- ja I/O-rekisterien ja porttien tilaa, muistin käyttöä, muuttujien arvoja, jne. AVRStudion asentamiseen ei tarvita enempää ohjetta, vaan noudata ohjelman edetessä avautuvia ohjeita tai paina vaan enter. Hakemistosuositus C:\WinAVR\Atmel\, mutta se toimii myös asennettaessa oletushakemistoon (eli sinne minne se itse haluaa asentua). Tee ohjelmalle pikakuvake. 6
Kytke PV-M322-kortti USB-kaapelilla PC-koneeseen. Windows ilmoittaa havainneensa uuden USB-laitteen. Tarkista sarjaportin numero: Valitse My Computer hiiren oikealla napilla, Properties, Hardware, Device Manager/Laitehallinta, Ports. Asenna Virtual COM (Näkyy kuvassa kohdassa USB Serial Port (COM4)) seuraavan ohjeen mukaan. Virtuaali-com-portin asentaminen PC-koneeseen Yleistä AVRStudio on tarkoitettu toimimaan yhdessa STK500-kitin kanssa, joten ohjelmassa on lataaja- eli ohjelmointiohjelma, joka toimii sarjaportin (com) kautta. AVRStudio osaa myös, AVR ISP tai JTAG ICE:n kautta tapahtuvan ohjelmoinnin. PV-M322-kortissa sarjaportti on korvattu USB-liitännällä, muuten ohjelmointi toimii täysin samalla tavalla. Ohjelmaa varten PC-koneen Windowsiin on asennettava ns. virtuaalinen COM-portti, joka korvaa oikean RS232-liitännän. 7
Tässä kerrotaan miten asennetaan ns. virtuaalinen COM-portti PC-koneeseen. Silloin kaikki sarjaporttia käyttävät ohjelmat voidaan ohjata USB-porttiin tämän virtuaalisen portin kautta. USB-muistitikulla on kansio CDM2.02.04 WHQL Certified. Kopioi se kokonaisuudessaan esim. C:\Temp-kansioon. Tai etsi ajurit valmistajan kotisivulta, http://www.ftdichip.com/ sieltä valitse Drivers, VCP, WinXP tai Win2k, CDM.2.02.04.zip (373kB), tai uudempi. Pura paketti. Kytke USB-kaapeli PC:n ja PV-M322:n välille. PV-M322-kortilla on USB-ohjain FT232R, joka keskustelee (välittää datan molempiin suuntiin) PC:n virtuaali-com-portin kanssa. USB-kaapelissa kulkee datan lisäksi kortin käyttösähköt +5V ja GND, joten PV-M322-kortin punainen Power-LED loistaa (jos power-siltaus on asennossa USB). Muuten on käytössä ulkoinen virtalähde.. Ensimmäisellä kerralla Windows ilmoittaa löytäneensä uuden laitteen. Tämä asennus tehdään luonnollisesti vain kerran. Valitse Install from a list or specific location. Next. Windows pyytää kertomaan polun, mistä asennettavat tiedostot löytyvät. 8
Selaa/Browse oikea hakemisto, eli ilmoita missä ajurit ovat. Next. Valitse Install from a list or specific location. Next. Asennus alkaa. 9
Kun kaikki on valmista, ruutuun tulee ilmoitus: Kun painat Finish, seuraavaksi ohjelma ilmoittaa uuden laitteen löytymisestä. Valitse Install from a list or specific location. Next. Oletuksena tulee sama hakemistopolku kun ed. kohdassa. Paina Next. Kun valmista, tulee ilmoitus: Completing the Found New Hardware Wizard. Paina Finish. Asennus ja konffaus oli tässä. 10
Ja saimme aikaan tämän (eka.c:n kirjoittamisen jälkeen). Korttina joko PV-M32 tai sen uudempi versio PV-M322 tai nettikortti PV-M644. AVRStudiossa olevaa kääntimen kutsunappia, Build, painamalla, käynnistyy C:\WinAVR- 20080610\utils\bin-hakemistossa olevan make.exe ja tämä puolestaan lukee käännösohjeet makefile-tiedostosta. Sitten make kutsuu C:\WinAVR-20080610-\bin-hakemistosta avr-gcc:tä kääntämään projektikansiossa olevan lähdekoodin eka.c. Jos koodi on C-kieliopillisesti oikein, niin käännöstuloksena syntyy useita eri tiedostoja. 11
Tarkista, että asennus onnistui. Tarkista mikä virtuaali-com-portti on asennettuna; Klikkaa hiiren oikealla My Computer, valitse Properties, Hardware, Device Manager. COM-portti voipi olla vaikka COM3, se vaihtelee riippuen laitteistosta. Klikkaa USB Serial Port (COM3) kaksi kertaa Vaihda nopeudeksi 115200 bps. Muut asetukset, 8 kpl databittejä, ei pariteettitarkistusta, 1 kpl stopbitti, ei vuonohjausta. Vaihda COM-portiksi COM4. Valitse Advanced... 12
Kun painat OK, ohjelma saattaa herjata ettei käy, mutta älä välitä siitä. Kun kaikki ok, Windowsin Device Manager näyttää uuden portin näin. Kone muistaa seuraavalla käynnistyskerralla, että virtuaali-com-portti on COM4. Pidä aina koodia tehdessä Device Manager/Laitehallinta-ikkuna auki, jotta näet missä Virtual COM-portissa PV-M322-kortti on kiinni. Jos ohjelma ei löydä korttia, irroita USB-kaapeli ja laita takaisin. Nyt löytää. 13
Make Vaikka käyttämämme mikro-ohjain on ominaisuuksiltaan pieni, vain 8-bittinen, me käytämme oikeaa kunnon C-käännintä, joka alunperin on tehty isojen koneiden ja isojen ohjelmien kääntämiseen. Koska käännin on tehty ammattikäyttöön, sillä on myös ammattikäytön ominaisuudet. Isot ohjelmat koostuvat useasta lähdekoodi- ja otsikkotiedostosta (samassa työssä voi olla monta koodaajaa tai ohjelman koko edellyttää sitä). Kääntimen tarvitsemat ohjeet ovat ohjelmien kasvaessa hyvin monimutkaisia, koska tarvittavien komentojen määrä kasvaa. Kaikkea ei ole kuitenkaan tarpeen kääntää joka pikku muutoksella. Unix/Linux-maailmassa on apuvälineenä käytössä make, make- tai gmake (Gnu make) -apuohjelma. Nyt se on sovitettu AVR:lle. Make on softan tekemisessä laajalti käytetty ohjelma. Sillä käännösprosessi automatisoidaan ja siitä poistetaan arkirutiinit. Makea varten tehdään ohjetiedosto makefile. Siitä make.exe lukee käännösparametrit, eli käännösohjeet. Ohjeitten on oltava samassa työhakemistossa, missä meillä on käännettävä lähdekoodi. Make lukee tätä ohjetiedostoa, jossa kuvataan miten käännösprosessi tehdään. make.exe on erillisen määrittelytiedoston (makefile) avulla gcc-käännöstä ohjaava ohjelma. katso tarkemmin: C:\WinAVR\doc\ tai http://www.gnu.org/manual/make/index.html makefile makefile on puhdas tekstitiedosto, jossa kuvataan, - mikä mikro-ohjain meillä on käytössä, - millä kääntimella lähdekoodi käännetään konekoodiksi, - ohjelman koostuminen eri tiedostoista ja niiden riippuvuudet toisistaan, - kääntämisessä käytettävät optiot, kuten o ohjeita sekä kääntimelle että linkkerille miten lähdekoodeista käännetään objektikoodia, miten nuo objektikoodit linkitetään, miten tehdään tarvittavat tyyppimuunnokset, jne o mitä erilaisia käännöstuloksia tarvitaan, o mitä tietoja tulostetaan kääntämisen aikana ja lopussa Eli lyhyesti, makefile kertoo mitkä tiedostot pitää kääntää ja miten. Oikeastaan se on vain luettelo erilaisia ohjeita ja sääntöjä. makefile sisältää kääntämisohjeet avr-gcc-kääntimelle Makefile-tiedosto on ollut tähän asti alkavan avr-gcc-koodarin vaikein asia. Ei ole enää! Siitä ei tässä vaiheessa tarvitse tietää tämän enempää. AVRStudio nimittäin osaa tehdä kohtuullisen, alkuun ihan riittävän hyvän, makefileen, ihan itse. Taitojen kasvaessa makefileen manipuloinnin osaaminen tulee ajankohtaiseksi. 14
Opiskeluympäristö Sulautetun järjestelmän toimintaa ja varsinkin ohjelmointia on vaikea (mahdoton) opiskella ilman opiskelutarkoitukseen suunniteltua laitetta, korttia tai kittiä. Laitteessa on oltava opiskeltava mikroohjain ja tälle ohjelmointiliitäntä ja vähintään yksi I/O-liitäntä. Mutta tämä ei riitä. Tarvitaan myös emokorttiin liitettäviä oheislaitteita. Mieluusti monipuolinen valikoima, mutta oma laite kullekin asialle. Käytäntö on nimittäin opettanut, että ko. emokortissa täytyy (= parasta) olla vain minimikalustus ja mahdollisuus liittää aina se, tai ne, oheislaitteet joita ko. kohdan opinnoissa tarvitaan. Jos emo-kortilla on kaikki mahdollinen, niin alkava opiskelija hämmentyy ja olennaisen hahmot-taminen on vaikeaa. Eikä täysin kalustettuun korttiin voi tehdä oppimisen kannalta tärkeää Eskon puumerkkiä. Toinen tärkeä ominaisuus on pieni koko (kevyt). Vielä jos tarvittavat pakolliset laitteet on minimoitu (ohjelmointikaapeli, virtalähde), niin kortti kulkee myös koulusta kotiin ja mahdollistaa tehokkaan oppimisen. PK-M322 on suunniteltu em. periaattein yhteistyössä Turun ammattikorkeakoulun kanssa ja se on osoittautunut käytännössä toimivaksi ratkaisuksi. PV-M32, PV-M322, PV-M644E PV-M32 MOOkit-kortti (mikro-ohjaimen-opiskelu-opetus-kitti). Sen uudempi versio on PV-M322. Kortilla oleva JTAG-liitäntä (käytössä kaikissa ammattitason elektroniikkalaitteissa) ja AVRStudio yhdessä muodostavat parhaan mahdollisen ympäristön mikro-ohjaimen sielunelämän opiskeluun, ohjelmien lähdekoodin kirjoittamiseen, kääntämiseen, ohjelman lataamiseen PC:stä AVR:n ohjelmamuistiin (ohjelmointi) ja virheiden jäljittämiseen, debuggaukseen. Ohjelmointi ja käyttösähkön syöttö samalla USB-kaapelilla. PV-M322 on rakennettu Atmelin AVR ATmega32:n ympärille. 15