Friday, 9 December 2016

FreeRTOS Visual Studiossa

Virtuaalikoneen käyttöönoton ja bootloaderin asentamisen välissä halusimme kokeilla harjoitustyössä käytettävän lähdekoodin toimintaa jo meille ennestään tutussa Visual Studiossa. Näin pääsisimme testaamaan lähdekoodia ja harjoittelemaan reaaliaikaisen käyttöjärjestelmän käyttöä hyödyntäen Windowsin rajapintaa. Tarkoituksena oli siis tuottaa annettulla lähdekoodilla projekti, joka jolla saataisiin tulostettua konsoliin tekstiä, jonka jälkeen luomme oman taskin koodiin, joka tulostaa haluamamme merkkijonon lähdekoodin tuottamaan viestijonoon.

Pienen googlettamisen jälkeen, päädyimme käyttämään tästä linkistä löydettävää FreeRTOS-latausta:


Latasimme omaan projektiin tarvittavan zip-kansion, josta pystyimme valitsemaan tähän testaukseen sopivan demon. Pienen hampaiden kiristelyn (unohdettiin purkaa zip-tiedosto yhdessä välissä...) jälkeen saatiin solution avattua Visual Studiolla, vaikka Studio varoittelikin vanhentuneen versionsa käytöstä. Koodi saatiin siis käännettyä ja konsoliin saatiin tekstiä aikaan, mutta ajan puutteen (ja allekirjoittaneen totaalisen hermojen menetyksen) vuoksi omien taskien viilaaminen lähdekoodiin jäi tässä vaiheessa tekemättä. 

Harjoitustyön tarkoituksena olisi kuitenkin saada tämä käyttöjärjestelmä toimimaan suoraan raudalla, eikä käyttäen Windowsin rajapintaa. Koko tehtävän tarkoitus oli tutustua reaaliaikaisen käyttöjärjestelmän käyttöön ja toimintaan ja tässä kyseisessä tehtävässä käyttis on kaikkea muuta kun reaaliaikainen, koska se toimii Windowin päällä. Tämä oli siis vain yksi askel matkalla itse harjoitustyön tavoitteeseen. 

Jos ja kun kokeilemme koodin ajamista uudestaan VS:ssa, pitää oman taskin luonnissa ottaa huomioon mm. luodun taskin prioriteetti, ettei oma taski nälkiinnyta muita, esim. tulostus-taskeja. Kun oman taskin laittaa tulostamaan merkkijonon viestijonoon, nähdään sen prioriteetti ja suoritusjärjestys muihin taskeihin verrattuna. Prioriteettejä pääsee muokkaamaan esim. kohdasta mainQUEUE_PRIORITY_ tms. Varsinaisessa harjoitustyössä ei voida myöskään käyttää tässä koodissa mainiin includattuja kirjastoja, koska kyseisiä kirjastoja ei ole olemassa, kun koodi ajetaan suoraan raudalla.

Seuraavaksi sukelletaan takaisin varsinaiseen harjoitustyön aiheeseen ja perehdytään virtuaalilevyn bootloaderiin.

No comments:

Post a Comment