01. Mit ne használjunk Arduino projektekben - String osztály

A szövegláncok kezelése Arduino alatt a String eljárástárral lehetséges. Alapvetően Arduino alatt nem annyira triviálisan egyszerű, mint pl. Bascom-AVR alatt. A függvénykönyvtár használata a C nyelv szépségei közül a pointer, a tömbkezelés a szövegláncok manipulálására épül.
A szövegek kezelésének legnagyobb problémája, hogy a hosszuk nem mindig ismert - így dinamkikus memóriafoglalásra lenne szükség. Azonban a processzorok korlátozott memóriájából nem jó feleslegesen lefoglalni sokat, mert akkor a futás közben fogunk esetleg kifutni belőle.
A dinamikus memóriafoglalás pedig memóriatöredezést okoz. Ez azt jelenti, hogy a program, bár korrektül működik, de a memóriakezelés/címkezelés során kisebb hiba becsúszhat. Ez viszont rendszerhibát vagy memóriaösszeomlást okoz.
Hogy mégis mi a probléma? Hiszen ez a dinamizmus a háttérben zajlik: sokszor egyszerűbb egy fix memóriafoglalással az eljárást megírni, mint a memóriapazarlásos string eljárást használni.

MemoryFree

A szövegláncok kezelésére mintaprogramok az Arduino keretrendszerben a File > Minták > 08.Strings alatt találhatóak.
A szabad memória meghatározása a MemoryFree mintában a fordításkor foglalt memóriahelyek alapján történik. Beállítástól függően az átmeneti tárban (stack, heap) levő adatok is beszámításra kerülnek. Az Arduino-1.6.0 vagy újabb fordítók estén a fordítás után a programmemória foglaltság mellett az adatmemória foglalás is láthatóvá válik.
 
Fájlmelléklet: 

TavIR-Facebook