( asch | 2019. 09. 19., cs - 09:02 )

A 100 soros assembler program az a LED villogtató kategória. Írtam, hogy ami kicsi, arra nem éri meg HAL-t meg szimulátort csinálni.

De a 8 bites mikrovezérlő kategória ennél sokkal többre képes - ahogy valaki helyesen leírta nagyságrendileg C64 szintű teljesítménye van. És bizonyos esetekben meg is éri ezekre a többletfunkciókra építeni. Ha bele lehet tenni a funkcionalitást egyetlen mikrovezérlőbe, akkor általában érdemes. Hobbiprojektnél is, mert nem kell összehuzalozni egy Raspberryvel az Arduinot, élesben megy nyilvánvalóan csökkenti a gyártás költségeit. Mondjuk egyszerre több dolgot kell mérni, és ezek alapján vezérelni, vagy van egy kijelző gombokkal. Ez még simán mikrovezérlő szint, de nem 100 sor lesz a program. Azért egy ATMega 2560-ba nagyon sokminden belefér, nézd meg hány láb és mennyi periféria, a harmadát sem kezeled 100 soros ASM-ből. Csináltam már olyat, amin egyszerre ment kommunikáció két másik modullal, ment valós idejű mérés, képernyő frissítés, gombkezelés és még nyomtatás is. És ez még a procinak meg sem kottyant, lehetett volna többre is használni.

A hordozhatóság nem csak azért fontos, mert tényleg másik processzoron akarod valaha is futtatni élesben, hanem azért mert így tudod szimulálni PC-n. Ami megint csak a móricka példák felett már határozott előny. Ha például van egy menű egy kis kijelzővel (4 gomb és kb 64 karakternyi képernyő periféria), akkor ott már elég sok kombináció lehetséges. Erre már érdemes állapotgépet (menű) és szimulációt is csinálni. Egyszerűen gyorsabb lesz fejlesztés közben a visszajelzés, ha nincsen benne az égetés, átülés a vashoz, stb a folyamatban.

De pont láttam már olyan projektet, amit 8 bites vezérlőről kell másikra portolni. Hardware obscolescence miatt meglepően sokszor kell portolni manapság, egy termék az élete alatt akár többször is új vezérlőre kerülhet. Sajnos nagyon gyors lett a hardverek kivezetésének a tempója.

Meg olyan is előfordul, hogy ahogy adják hozzá a funkciókat, a termék kinövi a vezérlőt, és akkor nagyobbra kell lépni. Mondjuk 10 évvel a termék indulása után. Ilyet is csináltam már, a megelőző módszerekkel már nem tudták uralni a komplexitást.

Automatikus teszteket is egyszerűbb PC-n csinálni, és automatikusan futtatni. Megint csak móricka példánál nagyobbra van ennek jelentősége.

Az is, hogy megírom a programot egyszer, és soha többé nem nyúlok hozzá, kicsiben működhet, de több évig támogatandó termék esetén nem lehet megcsinálni. Előfordulhat hogy újabb funkciót kell hozzáadni, vagy neadjisten hibát kell javítani. Ilyenkor egy több emberhónap értékű programot nem fognak újraírni azért mert bucko szerint azt úgy kell. Hanem szépen előveszik a forrásokat, átírják a HAL-t az új procira, és mindenki örül.