BEÁGYAZOTT RENDSZEREK TERVEZÉSE 1
A beágyazott szoftver- és hardver integrálásának a folyamata jól felkészült szakemberek munkáját igényli, amelyek gyakorlottak hibakeresési és felderítési metódusok alkalmazásában. A felderítés egy találó kifejezés, ugyanis a fejlesztőcsapatok ilyenkor szembesülnek azzal, hogy valóban megértették-e a közösen megírt dokumentumokat, amelyek a hardver és a szoftver együttműködését írja le. Együtt kell felderíteniük a félreértéseket és elhárítani a hibákat. 2
Minden esetben, időt és pénz veszt a csapat, a hanyagul értelmezett, vagy tiszteletben nem tartott tervezési dokumentáció miatt. A fejlesztés elején elkészített fejlesztési dokumentációt indokolt esetben fejlesztés közben is meg lehet változtatni, de erről minden érintett félnek (szoftveres, hardveres, integráló, csapatfőnök stb.) tudnia kell. Ha nem így tesznek, akkor az integrálás eleve lehetetlenné válik. 3
A hardver és szoftver integrálása során klasszikus hibára való alkalom az endian félreértés. Ez azért is érdekes hibatípus, mert hatására az integrált rendszer működésképtelen lesz, mindannak ellenére, hogy a szoftver és a hardver is külön-külön, hibátlanul működik. 4
Az endian félreértés lényege Az egyik gyakori félreértés a hardver és szoftver integrálása során az endian félreértés. A probléma elnevezése Jonathan Swift: Guliver utazásai c. művéből ered. A probléma lényege az, hogy több byte-os adatokat a memóriában, a különböző processzoros rendszerek más-más módon tárolják. A probléma a több byte-os egész-, a lebegőpontos- és a fixpontos számokat is érintheti, valamint a soros átvitelű (RS232, USB, Ethernet) adatok esetén is előfordulhat. 5
Az endianizmus megfogalmazása A problémának hardverre visszavezethető forrása van. Az egész számokkal műveleteket végző processzorok kitüntetett regisztere(i) pl. akummulátor, szorzatregiszter stb. - a gyakorlatban kétszer, négyszer szélesebbek, mint a rendelkező memória bitszélessége. Ezért amennyiben egy belső regiszter tartalmát a csatlakoztatott memóriában kell tárolni, ezt csak a regisztertartalom több részadatra való bontásával lehet megtenni. A processzorok a memóriát az alacsonyabb címektől kezdődően a magasabb címek felé szokták írni (és olvasni), kivéve a vermet ahol ez pont fordított irányban történik. 6
A lebegőpontos számok ábrázolása szabványosítva van IEEE (de a nagy processzor gyártók bizony sokszor ettől is eltérnek), de ezen a téren is előfordulhat az endian szindróma. 7
A gyakorlatban a little- és big-endian ábrázolással lehet találkozni, habár a kettőnél több byte-ot tartalmazó adatok esetében elképzelhető mixed-endian (Mixed-endian computing environment for a conventional bi-endian computer system US patent 5928349 A) és middle-endian alak is. Egy adott rendszer a saját adatait minden esetben ugyanazon az ábrázolással értelmezi (írja és olvassa), vagyis sohasem jut az endian probléma miatt hibás adathoz. A gond akkor jelentkezhet, ha több rendszernek kell együttműködnie. 8
A litle-endian ábrázolás: az alacsonyabb helyértékű adatrész az alacsonyabb memóricímre kerül, míg a magasabb helyértékű adatrész a magasabb memóriacímre. Vagyis a tárolás az alacsonyabb helyértékű oldalon kezdődik. 9
A big-endian ábrázolás: a magasabb helyértékű adatrész az alacsonyabb memóriacímre kerül, míg az alacsonyabb helyértékű adatrész kerül a magasabb memóriacímre. Vagyis a tárolás a magasabb helyértékű oldalon kezdődik. 10
Folytatásban pár érdeks probléma van bemutatva 11