Použití jazyka C pro řízení procesorů AVR Flashcards

1
Q

Programovací jazyk

A

nejde o programovací jazyk!!! … ale o knihovnu v C++, velmi usnadňuje práci s Arduinem.
Uživatelé tak programují v C++ a ani o tom neví
knihovna Wiring na jinou desku, resp. jiný procesor nebude prostě připravená!!!
Jeden ze základních příkladů blikání ledky na pinu 13. Kód v „jazyce” Wiring vypadá takto:

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Wiring vs C

A

C varianta pracuje přímo s registry procesoru, ty mohou být na různých čipech odlišné. Když bychom se však podívali do zdrojových kódů knihovny Wiring, našli bychom tam funkce, které dělají totéž, jen s omáčkou, která se stará o univerzálnost řešení.
Oba kódy přímo či nepřímo vyžadují knihovnu avr-libc, která je základní free knihovnou pro mikroprocesory AVR. Knihovna obsahuje to nejdůležitější, co by mohl programátor AVR procesorů potřebovat. Najdeme v ní podporu pro práci s pamětí RAM i EEPROM, knihovnu stdio, stdlib, string i math a také knihovny pro časování, obsluhu přerušení nebo CRC výpočty.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

zpracování na strojový (spustitelný) kód

A

Krok 1: Preprocesor – odstraní komentáře a vykoná příkazy začínající symbolem „#“ (příkazy preprocesoru)
Krok 2: Kompilátor (Compiler) – zkontroluje syntaxi (dodržení jazykových pravidel „C“) zdrojového kódu v „C“ a vytvoří zdrojový kód v assembleru.
Krok 3: Translator assembleru – přeloží zdrojový kód v assembleru do strojového kódu a ponechá vzájemné odkazy (adresy) volání nevyřešené.
Krok 4: Linker (spojovací program) vypočítá vzájemné odkazy (adresy) tak, aby program byl umístěn do paměti podle pokynů Linker skriptu (ten připraví programátor nebo se použije připravený Linker skript od výrobce software. V tomto kroku lze připojit i moduly napsané přímo v assembleru a přeložené do strojového kódu. Dále lze připojit knihovní (library) moduly od výrobce sw.
Uvedené kroky probíhají na PC a výsledný spustitelný program (executable program) se uloží na pevný disk. Po zavedení (naprogramování) spustitelného kódu do paměti mikrokontroleru (typicky do jeho FLASH paměti) je program připravený ke spuštění.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Preprocesor

A

Program používaný v jazycích C a C++ pro zpracovávání maker a symbolických konstant.
Je to první program, který při překladu programu zpracovává zdrojový soubor. • Preprocesor se obvykle nespouští ručně, ale volá jej překladač nebo jiné nástroje.
Tento program v podstatě pouze provádí textové náhrady symbolů definovaných v textu jako jsou symbolické konstanty a makra. Dále se s jeho pomocí dělá podmíněný překlad.
Příkazy pro preprocesor začínají znakem mřížky (#), například #define, #include

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Kompilátor (překladač)

A

Je program, který vezme zdrojový text programu a přeloží jej do jazyka stroje, což jsou kódy instrukcí pro počítačový procesor. V případě jazyků C a C++ překladač zpracovává až zdrojový text předzpracovaný preprocesorem.
Výstupem překladače není hned spustitelný program, ale pouze značky, které se zpracují později při linkování. Souborům, které produkuje překladač se říká objektové soubory. Důležitou funkcí překladače je syntaktická kontrola zdrojového textu programu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Linker

A

je propojovací, resp. sestavovací program sloužící ke spojení samostatně přeložených modulů a knihoven do funkčního celku.
Je to poslední nástroj, který je použit, když spustíte překlad programu.
Linker do kódu doplní konkrétní adresy podprogramů (statický překlad) nebo kód pro jejich zavolání (při použití dynamických knihoven).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly