Hardverek programozása

Fejlesztőkörnyezet

Az integrált fejlesztőkörnyezet (IDE - Integrated Development Environment) olyan szoftveres eszköz, melynek feladata megkönnyíteni a fejlesztést. Tulajdonképpen egy szövegszerkesztő, de a dokumentumok formázása helyett a programozást segíti. Szintaxis alapján színezi és automatikusan kiegészíti a szöveget, beépített hibakeresővel, verziókezelővel és parancssorral is rendelkezhet.

Példák:

Visual Studio, VS Code, PyCharm, Android Studio, Xcode ...

Programozás folyamata

A beágyazott rendszerek fordítóprogramos nyelveken programozhatók. Használatuk néhány alapszintű lépésből áll, amelyek részleteikben nagyon eltérők lehetnek IDE-től függően, de megközelítőleg azonosak.

Kód megírása

Első lépésként a programozó elkészíti a kódot valamilyen magasszintű programnyelv alkalmazásával. Közben figyel az átlátható struktúrára, megjegyzésekkel látja el a kódot. Lehetséges, hogy a projekt több fájlban van, amelyek még eltérő kiterjesztésűek is lehetnek. A szükséges formátumokat a fejlesztőkörnyezet adja meg.

Preprocessing

A fordítás előtt az IDE elvégez egy előfeldolgozást a kódon, például felülírja a makrókat, ellenőrzi a feltételes fordításra vonatkozó parancsokat. Az előfeldolgozó direktívák a C nyelvben kettőskereszttel (#) kezdődnek.

Compilation

Előfeldolgozás után a fordító (compiler) lefordítja a forráskódot egy köztes formátumra, például az assembly nyelvre, közben ellenőrzi a szintaktikai hibákat, optimalizálja a kódot, és létrehozza a gépi kódot tartalmazó objektumfájlokat. A program több forrásfájlból állhat, minden fájlt külön-külön lefordít a rendszer.

Linking

A linker kapcsolja össze a különálló objektumfájlokat, valamint a függvénykönyvtárakat. Meghatározza azt is, hogy a kód és az adatok mely memóriaterületekre kerüljenek. A művelet eredménye egy végrehajtható fájl.

Bináris fájl generálása

A létrehozott végrehajtható fájlt át kell alakítani egy eszközspecifikus bináris formátumra. Ez a fájl feltölthető a célhardverre, tartalmazza a futtatásához szükséges kódot és adatokat. A bináris fájl letölthető és feltölthető másik vezérlőre, de az eredeti forráskód nem visszanyerhető. Az idegen forrásból származó kódok futtatását a Secure boot funkció előzi meg tanúsítványokkal.

Flashing

Az eddigi lépésekhez nem volt szükséges a hardver megléte, csak annak ismerete. A feltöltéshez már szükség van a mikrovezérlőre, amit valamilyen módon csatlakoztatni kell a számítógéphez. Bizonyos vezérlőkhöz egy külső programozóegység kell (pl. AVR, PIC), mások beépített bootloader-rel rendelkeznek (pl. ESP).

Szkriptnyelvek

Sok népszerű programnyelv eltér a fordítóprogramos vagy gépi nyelvektől. Ezek az úgynevezett szkriptnyelvek futás közben vannak értelmezve egy interpreter által. Nincsenek előzetesen lefordítva, azonnal futtathatók, cserébe lassabbak. Használatukkal könnyen készíthetők platformfüggetlen applikációk, viszont nem lehet a a felhasználó elől elrejteni a forráskódot. Beágyazott rendszerek esetében hardverekhez nem, de teszteléshez vagy egyéb automatizálási feladatokhoz széles közben használnak szkriptnyelveket.

Példák:

Python, JavaScript, Lua, R, PHP