Vývoj softvéru Uvedenie softvéru do prevádzky; Zabudované vývojové nástroje; Electronicsnet
27. novembra 2012, 10:14 | Joachim Kroll
Predtým, ako mikrokontrolér ožije, musí byť napájaný softvérom. Softvér však nielen „beží“, ale musí sa aj vyvíjať. To si vyžaduje sofistikované nástroje. Infineon, našťastie, nie je ponechaný na svoje vlastné zariadenia. Existuje veľa dodávateľov, ktorí dodávajú vývojárom softvéru „materiál“ pre populárnu architektúru.
Na programovanie softvéru pre mikrokontroléry sú potrebné rovnaké vývojové nástroje ako pre softvér pre PC: editor pre zdrojový kód, ako aj kompilátor a linker na preklad zdrojového kódu do strojovo čitateľných príkazov. Ale tu sa podobnosti zastavia. Pretože počítačový softvér beží na rovnakom systéme alebo minimálne na tej istej architektúre, na ktorej je vyvinutý (vývoj hosťovaný sám).
To by nebolo možné na väčšine mikrokontrolérov, a to z jednoduchého dôvodu, že nie sú k dispozícii žiadne pripojenia pre klávesnicu a obrazovku, alebo preto, že je príliš málo pamäte a výpočtovej sily na vykonanie procesu kompilácie v prijateľnom čase.
Preto sa na PC vyvíja softvér mikrokontroléra a hotový kód sa prenáša do architektúry riadiacej jednotky iného výrobcu (krížový vývoj). Musí to tam bežať a - spravidla to nefunguje ako žiadny kód, ktorý sa pokúsite dostať do práce prvýkrát.
Potom vyvstáva otázka: Ako analyzujete tieto chyby a ako sa chybové správy dostanú späť do vývojového počítača? Tento problém je jednoduchý, ale ukazuje, že na krížový vývoj je potrebných viac vývojových krokov a nástrojov ako v prípade samoobslužného vývoja.
Aby toho nebolo málo, vo svete mikrokontrolérov vládne farebný „multikulturalizmus“ a o štandardizácii nemôže byť ani reči ako u procesorov x86. S architektúrou ARM sa vytvoril určitý štandard, ktorý by tu skutočne hovoril o štandarde, by bol prehnaný, pretože po prvé existujú ARM v rôznych generáciách a základných variantoch (ARM 7/9/11, Cortex -A, -R, -M) a po druhé, podstatou mikrokontroléra je, že periférie sú integrované do čipu.
A tak ani jeden z desiatok tisíc mikrokontrolérov na trhu nie je rovnaký. Je vhodnejšie hovoriť o rozšírenejších a menej rozšírených architektúrach - pretože všetko v mikrokontroléroch je v skutočnosti chránené.
Všestranné zadávanie úloh
Reťazec nástrojov, ktorý podporuje všetky architektúry Infineon, je reťazec Tasking/Altium. Či už séria XC800 s jadrom 8051, 16-bitová rodina XC2000/C166, ARM alebo Tricore - Altium ponúka vhodnú verziu pre všetky z nich. Tasking má svoje vlastné vývojové prostredie pre 8 a 16 bitové, teda XC800 a XC2000/166, ktoré kombinuje všetky čiastkové nástroje (kompilátor, assembler, linker, cross-debugger) pod jednu plochu.
Pod názvom „VX-Tools“ existuje verzia pre XC2000/166, ARM a TriCore, ktorá zapadá do rámca Eclipse s CDT (C Development Tools). Nástroje na zadávanie úloh môžu spolupracovať s DAvE a podporovať napríklad kontrolu kódu podľa normy MISRA-C, ktorá je dôležitá pre automobilové projekty.
Klin: celý ekosystém
Nástroje od spoločnosti Keil tiež ponúkajú rozsiahlu podporu pre architektúry Infineon - s výnimkou TriCore. Keil má tiež rôzne verzie vývojových nástrojov pre 8, 16 a 32 bitov. Ako dcérska spoločnosť ARM a nemecká dcérska spoločnosť ARM ponúka Keil rozsiahlu podporu pre túto architektúru.

Obrázok 1. Vývojová súprava mikrokontroléra (MDK) je k dispozícii v rôznych verziách pre rôzne architektúry. Verzia ARM obsahuje nielen vývojové nástroje, ale aj middleware.
Pomocou nástrojov Keil je používateľským rozhraním vývojové prostredie µVision s projektovým manažérom, editorom a debuggerom. Celý reťazec nástrojov od spoločnosti Keil sa nazýva MDK (Microcontroller Development Kit) a obsahuje oveľa viac ako vývojové prostredie s kompilátorom, assemblerom, linkerom a debuggerom (Obrázok 1).
MDK-ARM dokáže čítať v projektoch generovaných pomocou DAvE3, ale obsahuje aj rozšírenia, ktoré uľahčia technikovi vývoj nerozlišujúcich funkcií produktu: súborový systém, hostiteľ USB a zásobník zariadení, sieť TCP/IP, rozhranie CAN a Knižnice na kreslenie používateľských rozhraní sú súčasťou plnej verzie. S RTX existuje dokonca tenký operačný systém v reálnom čase, ktorý poskytuje infraštruktúru pre softvér na viac úloh naraz a je dodávaný v zdrojovom kóde.
S 8 a 16-bitovou architektúrou sa sada nástrojov nazýva PK51 alebo PK166 a okolitý softvérový ekosystém je o niečo štíhlejší, ale dokonca aj pre 8051 existuje jadro RTX. Poskytuje sa aj výmena ladiacich informácií: S ULINK2 ponúka Keil debugovací adaptér, ktorý je pripojený k USB portu vývojového PC a cieľového systému prostredníctvom JTAG alebo cez režimy ARM Serial Wire Debug (SWD) ) alebo prehliadač sériových vodičov (SWD). Cez toto zariadenie sa zároveň programuje flash pamäť cieľového systému.
Debugovací adaptér ULINKpro ponúka ďalšie funkcie, ktoré môžu tiež zaznamenávať trasovanie príkazov, nastavovať zarážky a načítať obsah pamäte. To umožňuje analyzovať celú postupnosť programu.
IAR: univerzálny, ale iba pre dve architektúry Infineon
Ďalším veľmi univerzálnym vývojovým prostredím je IAR Workbench, o ktorom sa hovorí, že je vhodný pre väčšinu mikrokontrolérov. V prípade Infineon sú však podporované iba architektúry ARM a XC800. Verzia 8051 je k dispozícii v rôznych stupňoch rozšírenia, ktoré sa líšia napríklad maximálnou prípustnou veľkosťou kódu, podporou operačných systémov v reálnom čase a prítomnosťou nástroja MISRA-C-Checker. Verzia ARM má množstvo spojení s partnerskými nástrojmi, ako sú hardvérové ladiace programy alebo operačné systémy v reálnom čase.
IAR tiež ponúka nástroje na vývoj hardvéru, ako je JTAG debugger J-Link, ktorý sa zameriava na interné ladiace funkcie čipov komponentov XMC4000, alebo I-Jet, nástroj na koreláciu kódu a spotreby energie. To umožňuje optimalizovať softvér tak, aby radič spotreboval čo najmenej energie alebo aby bolo možné identifikovať body, ktoré sú zodpovedné za zvlášť vysokú spotrebu energie. Integrácia IAR Eclipse je stále relatívne nová. Zatiaľ existuje iba jeden program na ukážku technológie, pomocou ktorého je možné do Eclipse integrovať kompilátory, assemblery, linkery a C-Spy debuggery C/C ++ a potom nahradiť príslušné nástroje GNU.
Wind River a HighTec: špeciality pre TriCore
Ako samostatná architektúra Infineon je TriCore nepochybne exotickejšia ako XMC4000 s jadrom ARM Cortex-M4. Aj výber nástrojov je pre TriCore menší. Tu prichádzajú do úvahy spomínané taskingové nástroje VX (pre Eclipse) alebo kompilátor Diab z Wind River. Diab býval samostatnou spoločnosťou, ktorú kúpila spoločnosť Wind River krátko po prelome tisícročí.
Aj keď od Diabu nič iné nepočujete - nástroje stále existujú a kompilátor Diab sa vyznačuje zvlášť optimalizovaným pamäťovým kódom, ktorý produkuje. Môže byť integrovaný do vývojového prostredia Workbench spoločnosti Wind River. Okrem TriCore podporuje kompilátor Diab takmer všetky ostatné moderné 32-bitové architektúry.
Ďalšou možnosťou generovania kódu pre TriCore je vývojová platforma TriCore od spoločnosti Hightec EDV-Systeme. Hightec používa rámec Eclipse a používa kompilátor C/C ++ založený na GNU. Po výbere mikrokontroléra vývojová platforma nezávisle vygeneruje základnú štruktúru kódu s potrebnými inicializáciami a hlavnou slučkou na začatie vlastného vývoja alebo importu projektu DAvE.
Obrázok 2. High-tech kompilátor môže vybaviť kód tak, aby zobrazil pokrytie kódu v grafickom prehľade.
Kompilátor môže používať rôzne režimy adresovania radiča TriCore prostredníctvom pragmatických pokynov, pomocou ktorých je možné riadiť optimálne rozdelenie kódu a údajov v pamäti a optimalizáciu chodu. Kompilátor sa tiež môže prispôsobiť koexistencii operačného systému AUTOSAR od spoločností ETAS, Elektrobit alebo Vector.