( locsemege | 2020. 05. 03., v – 01:38 )

A félreértés ott van, hogy a HUP-ra olyan emberek járnak, akik némileg nagyobb erőforrásokkal találkoznak, mint ami egy 8 bites MCU. Az itt felbukkanó embereknek már egy Raspberry Pi is valami gyenge, kicsi játékszer. Kész függvénykönyvtárakban, operációs rendszerben, GB, de minimum MB nagyságrendű RAM-ban és sok 100 MHz-ben gondolkodtok.

Ezzel szemben a valóság az, hogy néhány tíz, de legfeljebb néhány száz byte - nem kilo, nem mega, nem giga - RAM-om van, 4 MIPS sebességem, nincs hardware-es szorzásom, osztásom, még egész típusú sem, lebegőpontos meg végképp nincs, a programtár is alig néhány ezer utasításnyi. Assembly-ben írom, a puszta szövegszerkesztőn kívül szinte semmim sincs, illetve de, egy include file, ami a processzor regisztereinek és azok bitjeinek neveit a címükkel define-olja.

Az aritmetika úgy néz ki, hogy nekem kell az overflow-t, underflow-t kezelnem, meg minden vackot. Szóval ebbe egy általánosan megírt lib nem fog belemenni úgy, hogy lefusson 200 µs-on belül. Itt az marad, hogy ki kell találni egy algoritmust, a tapasztalatok alapján egy lehető legjobbat, és azt kell megvalósítani. Csak azért, hogy gyors maradjon, gyakran kell kettő egész kitevőjű hatványait használom. 16-tal osztani még nem olyan fájdalmas, mert jobbra shiftelek és rotálok négyszer, de egy általános számmal inkább nem osztok, mert annyi időm nincs. Mármint nem nekem, a kontrollernek.