Jednoduchý příklad
Připravíme si jednoduchý program, napsaný v jazyce C a na něm si vysvětlíme, co všechno musíme udělat, aby správně fungoval.
Program budeme psát pro mikrokontroler LM3S800, který vyrábí společnost Texas Instruments. Protože je program velice jednoduchý, pouze bude blikat LED diodou, bylo by možné, abychom ho zapsali do jediného zdrojového souboru. Bude nám ale sloužit jako základ pro další pokusy a proto ho rozdělíme do více zdrojových souborů. V další části si pak vysvětlíme, jakým způsobem z těchto zdrojových souborů sestavíme binární obraz, spustitelný na cílovém mikrokontroleru.
Co nás čeká ...
Vektory přerušení
Nejdříve připravíme pole vektorů přerušení. Procesor Cortex-M3 po resetu načte do registru SP (Stack Pointer) obsah paměti na adrese 0x00000000 a do registru PC (Program Counter) obsah paměti na adrese 0x00000004.
Hlavní program
Hlavní program je uložen ve zdrojovém souboru main.c. První funkce, která je v hlavním programu volána, mcu_init(), provádí nejnutnější inicializaci mikrokotroléru, abychom mohli blikat LED diodou. Po inicializaci následuje nekonečný cyklus, který obsahuje příkaz pro přepnutí LEDky a volání funkce krátké prodlevy.
Inicializace mikrokontroléru
Funkce sysclk_init() se postará o nastavení hodinového signálu procesoru na 50 MHz. Jako zdroj signálu je zvolen 6 MHz krystal, který je k mikrokontroléru připojen.
Trochu assembleru
Na závěr vytvoříme jednoduchou pomocnou funkci se zpoždovací smyčkou. Napíšeme ji v assembleru.