ami össz-vissz 4K RAM
Felejtsd el. Ezek az ARM procik nem a nyomorgásról szólnak. Lehet - és néha kell is - optimalizálni/túrni assembly -ben, de ez ritka eset, zömében nem erről szól az élet. Érdemes a fejlesztést a család legcombosabb darabján kezdeni, és amikor készen van, optimalizálni kisebb darabra a sorozatgyártás előtt. No ez az ami a hobbi bütykölésből kimarad.
A könnyű átmenet csalóka lehet, hiszen a fő különbség a HW bonyolultsága, amit nem spórolsz meg. Olyasmire gondolok, pl. mint egy sima kimenet használatba vétele/felprogramozása. 8 biten simán ráírsz egy címre és kész. ARM chippekben jellemzően engedélyezned kell 1-2 periféria órajelét, kivenned 1-2 perifériát reset -ből, (eddig a pontig a GPIO -hoz még nem is nyultál), alternate functiont allítani, majd jöhet a GPIO: az adott kimenetet output -ra állítani, pull-up konfigurálás, drive strength konfigurálás. Ha mindez megvolt, már mehet is. Az hogy csak 4K RAM -od van, ezen nem egyszerűsít.
Szóval válts egy nagyobb chipre és játssz a 32 bites világ igazi kihívásával ami a "system integration". Úgy kell tudni különböző termékeket egybe gyúrni, hogy egyiket sincs időd részletekbe menően megismerni. Pl: ha kell egy file-system (pl SD kártyához), kell TCP/IP illetve USB, csak egy "hétköznapi" connectivity -vel rendelkező eszközöd van, viszont mind a 3 terület kimerítő ismerete egyenként is "éveket" igényel.
Itt nem az az igazi kihívás, hogy azt a pár részt ami idő/teljesítmény kritikus összekalapáld, hanem hogy megfelelő félépítést találj a szoftvernek. Azért itt még elég alacsony az eszköz teljesítménye, hogy a túlzott absztrakció tarthatatlan lassulást okozzon, és túl nagy a kód komplexitás ahhoz, hogy absztrakció illetve megfelelő struktúra nélkül kezelhető legyen. Kérdés, mi a megfelelő egyensúly?
Tengernyi időt lehet elverni a hardver marhaságaira is. A dokumentáció általában silány, a referencia implementáció pedig pont az érdekes részeket mellőzi.
Amikor board -ot választasz arra is gondolni kell mire akarod használni. A discovery board -ok olcsók, de nincs rajtuk semmilyen periféria kiépítve, így ha bármit kezdeni akarsz vele "elő kell venne a pákát". Ha egy drágább board -ot választasz, kapsz rendes tápegységet (az egyéb áramköreidet (érzékelők, stb..) tudod tápolni róla, lesz rendes soros portod, etherneted, USB -d, stb. Nagyon sok időt lehet evvel spórolni. Nézd meg a https://www.mikroe.com/ vagy az https://www.olimex.com/ cuccait. Az Olimex board -ok open hardware -ek, azaz kapsz hozzá kapcsirajzot, nyáktervet, mindent. Mondjuk nem is 3-4000 az áruk.