Download as pdf or txt
Download as pdf or txt
You are on page 1of 15

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 ohjelmisto-


kokonaisuus, 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 AVRStudio-


emulaattoriohjelman 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 ohjelma-


muistiin. 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:\Omat-
koodit\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 stop-
bitti, 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ös-
parametrit, 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 mikro-
ohjain 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

You might also like