Mbed OS on avoimen lähdekoodin Cortex M -prosessoreille suunniteltu käyttöjärjestelmä, suunniteltu erityisesti IoT-laitteille (Internet Of Things). Käyttöjärjestelmä tarjoaa paljon valmiita rajapintoja aina GPIO-pinnin ohjauksesta kompleksisimpiin ajurirajapintoihin.
Ohjelmointi Mbed OS:lle tapahtuu C++ ohjelmointikielellä ja ohjelmointiympäristönä toimii online-palvelu Mbed.org. Palvelu vaatii rekisteröitymisen, mutta se on nopeaa ja rekisteröidyttyään käytössä on lähes täyden palvelun IDE (Integrated Development Environment).
Tässä kirjoituksessa käydään lyhyesti läpi STM32 Nucleo kehitysalustan ohjelmointia Mbed.org -kehitysympäristön avulla. Tarkka malli käytettävälle kehitysalustalle on NUCLEO-F429ZI, mutta periaatteessa mikä tahansa Nucleo levy kelpaa, kunhan vain pinnimääritykset asettaa oikein. Kehitysalustalle ohjelmoidaan ledin vilkutus, joka toimii ponnahduslautana monimutkaisempiin ohjelmiin.
Tässä kirjoituksessa käytetyn kehitysalustan voi ostaa mm. Mouserin verkkokaupasta:
https://www.mouser.fi/ProductDetail/STMicroelectronics/NUCLEO-F429ZI?qs=mKNKSX85ZJcE6FU0UkiXTA==
Edellä mainitut asiat on tehty aika helpoksi, jos on vähänkään ymmärrystä mikroprosessorien ohjelmoinnista (esim. Arduinosta) ja osaa lukea manuaalia/ohjeita. Tämä kirjoituskin on lähinnä suomennos, lisättynä omakohtaisella kokemuksella aiheesta.
Mbed.org rekisteröinti
Ensiksi täytyy (kehitysalustan hankinnan jälkeen) rekisteröityä palveluun. Käyttäjätunnuksen ja salasanan luonnin jälkeen voidaan siirtyä online-IDE:n pariin:
Mbed OS lyhyesti
Mbed OS on suunniteltu helppokäyttöiseksi ja modulaariseksi käyttöjärjestelmäksi, mihin voidaan lisätä tarvittavia laiteajureita esimerkiksi erilaisia anturointeja ja/tai langattomia yhteyksiä varten.
Laiterajapintojen (API) avulla antureiden ja muiden ARM-prosessorille kytkettyjen oheislaitteiden käyttäminen on suhteellisen kivutonta, mutta toisinaan voi joutua "kikkailemaan" - kuten sulautetuissa järjestelmissä saattaa joskus käydä.
Lisää ominaisuuksista voit lukea Mbed.org:in sivuilta: https://www.mbed.com/en/platform/mbed-os/#features.
Mbed kääntäjä, ohjelmointiympäristö (IDE) ja uuden projektin luonti
Osoitteesta https://ide.mbed.com/compiler pääsee kirjautumaan ohjelmointiympäristöön (IDE), missä varsinainen koodi ja sen kääntäminen tapahtuu. Kyseessä on siis selaimella toimiva ohjelma, joten mitään asennuksia tietokoneelle ei tarvita. Tämä voi tietysti joitain ihmisiä ahdistaa, mutta toisaalta tämä on aika kätevää, koska koodit kulkevat aina mukana (sikäli mikäli kenelläkään niitä varsinaisesti tarvitsee kanniskella...).
Kun on kirjauduttu sisään, avautuu IDE:n perusnäkymä (kuvaa pienennetty), mistä voidaan aloittaa uuden projektin luonti tai jatkaa edellisiä kesken jääneitä koodauksia.
Platformin tai käytettävän kehitysalustan voi valita Mbed perusnäkymän oikeasta reunasta:
Kun alusta tai platform on valittu, päästään uuden projektin luontiin vasemman yläkulman valikosta New -> New Program...
Uusi ohjelma ikkunasta voidaan valita alusta (Platform) ja myös mahdollinen koodipohja (Template). Koodipohjat tarjoavat paljon valmiita esimerkkejä, joista voi hyvin tutkia kuinka mikäkin ohjelma on toteutettu.
Tässä kuitenkin valitaan nyt yksinkertaisuuden vuoksi "Blinky LED test for the ST Nucleo Boards" ja annetaan sille haluttu nimi. Lopuksi painetaan OK, jolloin ohjelma luo uuden projektin, missä on valmiina ledin vilkutuskoodeja. Tuplaklikataan tiedostopuussa olevaa main.cpp tiedostoa ja avataan editori-ikkunaan pääohjelman koodi.
STM32 Nucleo -levyn ohjelmointi
Kun koodi on avattu/tehty, Nucleo-levyn ohjelmointi tapahtuu klikkaamalla IDE:n yläreunassa olevaa "Compile" nappia:
IDE-alkaa kääntämään tehtyä ohjelmaa konekielelle ja ruutuun ilmestyy alla oleva ikkuna:
Kun käännös on valmistunut, selain lataa automaattisesti ohjelman käännetyn tiedoston. Tarkista selaimesi lataus-ikkuna käännöksen jälkeen:
Ilmoitus onnistuneesta käännöksestä tulee myös IDE:n "output" ikkunaan koodieditorin alapuolelle. Samoin tähän ikkunaan tulee kaikki virheet ja muut varoitukset, joita mahdollisesti tapahtuu käännöksen aikana.
Nyt voidaankin kytkeä Nucleo levy tietokoneeseen kiinni ja ohjelmoida ARM-prosessori.
Ohjelman "poltto" ARM-prosessorille ja toiminnan toteaminen
Kytkettyäsi Nucleo-levyn tietokoneeseen, pitäisi Oma Tietokone -ikkunassa näkyä uusi levyasema:
Levyn nimessä on käytetty prosessorityyppi, joten sen voi tunnistaa esimerkiksi siitä.
Nyt aiemmin ladattu .bin tiedosto yksinkertaisesti vain kopioidaan aseman juureen ja ohjelmointiprosessi tapahtuu automaattisesti. Lopuksi voidaan tarkastella ohjelman toimintaa ja ihmetellä, kuinka helpoksi se tämäkin asia on nykypäivänä tehty!