Programování a vývoj firmware (FW)

Blog: 

Elektronika vyráběná na zakázku většinou obsahuje mikrokontrolér (MCU). Návrh elektronických obvodů se provádí současně s koncepčním návrhem řídícího firmware MCU. Hardware a firmware spolu úzce souvisejí. Vývoj řídícího firmware se provádí na oživeném hardware.

Firmware programuji v ANSI C, použití ASSEMBLERU není obvykle nutné.

Pro vývoj firmware MCU Freescale používám výrobcem dodávaná integrovaná vývojová prostředí (IDE) Kinetis Design Studio a CodeWarrior. Používám open-source programátor a debugger USBDM a programátor a debugger P&E Micro USB BDM Multilink. Vhodný HW programátor se buť koupí nebo není potřeba a stačí nějaký přípravek (nestojí na tom vývoj).

Odladěný prototyp dostane zákazník k testování v ostrém provozu. Někdy je potřeba udělat drobné korekce ve firmware (časování, nastavení PID regulátoru apod.) a znovu testovat v reálných podmínkách což je běžný postup při vývoji elektroniky.

V dobře navrženém elektronickém systému jsou kritické části ošetřeny jak na straně hardware (RLC filtry, aktivní filtry, galvanické oddělení apod.) tak na straně firmware (logické závislosti, časové závislosti, digitální filtrace signálu, watchdog, taktovací frekvence apod.).

Mnoho kódu se programuje pro to, aby se předešlo rizikovým stavům zařízení, které nemusejí, ale mohou např. vlivem prostředí nebo nevhodné obsluhy nastat. Správně navržené zařízení by se nikdy nemělo dostat do nedefinovaného stavu nebo být zdrojem elektromagnetického rušení.

Potřebujete upravit firmware v již hotovém zařízení?

Mám mnohaleté zkušenosti jak s 8bitovými tak 32bitovými MCU. V současnosti nejvíce používám Kinetis ARM® Cortex™ firmy Freescale. Mnoho let jsem používal PIC 10/12/16/18 firmy Microchip. Znám jádro 8051 např. Atmel.

Použitý MCU není rozhodující. Zkušenosti s konkrétnímy typy MCU vedou rychleji k výsledku, ale v principu se pracuje se všemi podobně. Vždy se pracuje s dokumentací výrobce. Důležité je znát použitou technologii a rozumět související algoritmizaci.