( asch | 2015. 04. 05., v – 14:42 )

Én úgy dolgoztam, AVR-re, hogy a kód jelentős része C, és 1-2 dolog volt csak ASM-ben. Bare metal írtam a programot (bár utólag lehet, hogy az rtos-nek lett volna értelme), ami minimális HW illesztés kellett, azt datasheet-ből, és példák alapján csináltam.

De a legjobb trükk az volt, hogy úgy írtam meg a programot, hogy a vas elérését egy HAL (Hardver Abstraction Layer) mögé tettem (ennek az absztrakciós szintjét a projekt válogatja, hogy hova kell tenni). Hordozható C kódot írtam (ez ma már nem nagy kunszt, lényegében annyi, hogy uint8_t és tsai-t kell használni), és a HAL rétegre írtam egy szimulátort C-ben PC-re. Ezen szimulátor környezetben lehetett debuggolni, illetve unit teszteket, meg integrációs teszteket csinálni. Iszonyatosan felgyorsította a fejlesztés idejét ez a módszer - a csippen debuggoláshoz képest - és a minőséggel is elégedett volt a megrendelő. Csak a HW elérést kellett így a csippen fejleszteni, azokat pedig egymástól viszonylag függetlenül lehetett tesztelni. Azért elő kellett venni a szkópot is, azt nem úsztam meg :-).