|
|
KEI/PMK
Programování mikrokontrolérů
Garanti: doc. Dr. Ing. Vjačeslav Georgiev
|
|
|
|
Předmět - podmínky absolvování
KEI/PMK
- IS/STAG
|
Zkouška |
Zápočet před zkouškou |
Ano
|
Požadavky na studenta |
Prokázání dobré znalosti odpřednášené a procvičené látky u zkoušky. Úspěšné vyřešení zadaného projektu a jeho obhájení.
|
Hodnotící metody |
Odborné znalosti:
Kombinovaná zkouška,,
Demonstrace dovedností (praktická činnost),,
Výstupní projekt,,
Odborné dovednosti:
Kombinovaná zkouška,,
Demonstrace dovedností (praktická činnost),,
Výstupní projekt,,
Obecné způsobilosti:
Výstupní projekt,
|
Časová náročnost |
V hodinách za semestr:
Projekt individuální [40] (20),
Příprava na zkoušku [10-60] (30),
Kontaktní výuka (52),
Příprava na laboratorní měření, zpracování výsledků [1-8] (8)
|
Předmět nemá
podmiňující
ani
vyloučené
předměty...
|
|
|
|
|
Podmínky absolvování předmětu
Podmínky získání zápočtu:
- samostatné vypracování průběžných úkolů - několik jednoduchých aplikací na výkonném jednočipovém mikropočítači - zadání vychází z domácí přípravy a ověřují se v rámci kontaktních cvičení
- aktvní znalost látky probírané na cvičeních
U zkoušky je nutno prokázat znalost látky z přednášek i cvičení.
Přehled látky ke zkoušce
Student dostane z každého okruhu (A, B, C) po 1 otázce a prokáže své znalosti
A. Architektura vyspělých procesorů:
- Typická 5-stupňová struktura RISC procesoru a její činnost.
- Konflikty v řetězci, ke kterým může docházet v procesoru RISC, a jak se řeší?
- Typické vlastnosti procesorů RISC. Typická sestava instrukcí – proč je taková?
- Paměť CACHE – princip a varianty mapování.
- Asociativní paměť – princip a její využití v paměti CACHE.
- Aritmeticko-logická jednotka. Sčítačky se zrychlením přenosu, různé principy.
- Aritmeticko-logická jednotka. Násobení a dělení. Boothův algoritmus.
- Vyjádření čísel v pohyblivé čárce. Vyjádření nuly, +/- nekonečna, NaN. Rozsah čísel, minimální číslo, normalizovaná a denormalizovaná čísla.
- Operace v pohyblivé čárce. Násobení a dělení, sčítání a odčítání kladných a záporných čísel. Normalizace čísel, zarovnání na shodný exponent při sčítání a odčítání. Ztráta přesnosti při sčítání a odčítání.
- Procesory Superscalar – princip, činnost, výhody a problémy, konflikty WaR, WaW.
- Procesory WLIW - princip, činnost, výhody a problémy.
B. ARM architektury – Cortex a předchůdci – základní charakteristiky, rozdíly,…
- Sběrnicové uspořádání ARM (AHB, AHB multiplex, APB, ...) – blokové schéma, datové toky
- Pojmy „pipeline“, „branch cache“, „prefetech queue“ – vliv na běh programu
- Privilegovaný a neprivilegovaný režim – rozdíly, přechod mezi nimi
- Operační módy
- Registry jádra a jejich speciální významy
- Status registr – význam bitů
- Instrukční sada ARM, Thumb, Thumb2
Speciálně pro ARM7/9
- Vyjímky a přerušení u ARM7 a ARM9 (sekvence obsluhy, režimy,…)
- Vlastnosti IRQ a FIQ u ARM7/9
- Obsluha přerušení pomocí VIC (ARM7/9) a porovnání s „klasickým řadičem“
Speciálně pro Cortex-M3 a M4(F)
- Typy zásobníků u Cortex-M, využití, detekce aktuálního xSP
- Vyjímky a přerušení u Cortex-M
- Reset mikroprocesoru a výchozí podmínky pro Cortex M
- Struktura paměťového prostoru
- BitBanding – princip, použití
- SysTick
- NVIC – funkce, výhody, použití
- Obsluha vyjímek a přerušení – sekvence akcí
- Zrychlení odezvy přerušení pomocí „upřednostnění priority přerušení (late arriving)“ a „zřetězení požadavků (tail chaining)“
- Interní vyjímky, „exception number“, číslo přerušení, vektor, CMSIS funkce
C. Programování s přihlédnutím k Cortex-M
- Globální a lokální proměnné, předávání parametrů do funkce, návratové hodnoty
- Cesta od zdrojového kódu k výsledné aplikaci v paměti mikrokontroléru
- Optimalizace při propojení C – ASM
- Základní typy instrukcí
- Adresovací módy (především pro LD a ST)
- Speciální instrukce typu IT a její použití
- Instrukce bariéry – typy, využití
- Systémová vyjímka SVC
- Low-power módy – přechod do, opuštění,…
Obecně mikrokontroléry
- Sériové sběrnice s „místním“ dosahem – porovnání
- Analogové hodnoty do/z procesoru – principy, možné realizace, omezení
- GPIO – základní vlastnosti, typické řešení,…
- Čítače/časovače – základní struktura, speciální funkce
- DMA – princip, použití
- Watchdog časovač – princip, použití
Přehled témat, která byly probírány na přednáškách a cvičeních, jsou obsaženy v otázkových okruzích.
Podrobný souhrn témat k otázkám (ARM, Cortex, ...):
Obecné pojmy
- Struktura řídicího algoritmu, základní bloky SW regulační smyčky – návaznosti, časování algoritmu vzhledem řešené úloze
- Kritéria výběru a výkonnosti mikroprocesorového jádra
Architektura jader ARM7, ARM9
- Rozdíly v architektuře ARM7 a ARM9
- Princip sběrnicového uspořádání AHB Multiplex - blokové schéma
- Blokové schéma základní sběrnicové hierarchie ARM
- Důsledky pipeline z pohledu zdrojového kódu – použití obsahu v instrukcích PC, řízení systému (např. přerušení)
- Vzájemný vztah a význam „branch cache“ a „prefetch queue“
- Model datových toků jádra ARM7 - blokové schéma
- Význam bloku „barrel shifter“ v modelu datových toků jádra ARM
- Privilegovaný a neprivilegovaný režim - rozdíly
- Stav jádra po resetu - operační mód, instrukční sada, přerušení
- Operační mód Supervisor - význam, popis
- Operační mód Undefined - význam, popis
- Rozdíl mezi operačním módem User a System
- Registrová sada jádra - popis vyhrazených speciálních registrů
- Význam registru LR - způsob použití
- Registr CPSR - význam jednotlivých položek
- Instrukční sada ARM a Thumb - rozdíl, způsob přepínání
- Stav přerušovacího systému po resetu procesoru - možnosti povolení a zakázání přerušení
- Typy a význam interních výjimek jádra ARM7 a ARM9
- Typy externích přerušení jádra ARM7 a ARM9 - popis, charakteristika
- Sekvence obsluhy přerušení při vstupu do ISR
- Uložení a záloha registrů při přechodu z módu User do módu FIQ
- Porovnání externích přerušení IRQ a FIQ z hlediska rychlosti odezvy zpracování
- Struktura vektorového řadiče VIC
- Porovnání obsluhy IRQ s využitím klasického řadiče přerušení a vektorového řadiče VIC
- Sekvence při návratu z ISR
- Rozdíl mezi MPU a MMU
- Instrukční sada ARM a Thumb - rozdíl, způsob přepínání, omezení
Architektura jádra Cortex-M3
- Typy operačních módů
- Operační mód Thread - charakteristika, vlastnosti
- Operační mód Handler - charakteristika, vlastnosti
- Úrovně SW oprávnění – typy, vlastnosti
- Typy zásobníků jádra Cortex-M3, mechanismy ukládání a obnovy (stacking a unstacking) při přechodu Thread-Handler-Thread pro různé alternativy aktuálních zásobníků.
- Způsob inicializace ukazatele zásobníku MSP po resetu systému
- Stavový diagram jádra - možné kombinace a přechody operačních módů, úrovní SW oprávnění a použitých zásobníků
- Reset procesoru - stav přerušovacího systému, operační mód, úroveň SW oprávnění, startovací adresa programu, použitý zásobník
- Registry jádra – základní sada, význam registrů SP, LR a PC
- Struktura registru PSR
- Význam registru CONTROL
- Význam registrů PRIMASK a FAULTMASK pro řízení přerušení
- Výzam registru BASEPRI pro řízení přerušení
- Rozdělení paměťového prostoru Cortex-M3, typy paměťových oblastí
- Bit-banding – princip, význam, použití
- Struktura bloku SCS - System Control Space
- SysTick timer – vlastnosti, význam, použití
- Prioritní systém přerušení a výjimek jádra ARM Cortex-M3 - preemptivní priorita, subpriorita
- Hardwarová struktura vektorového řadiče NVIC, vztah jádra Cortex-M3 a vektorového řadiče NVIC
- Sekvence obsluhy výjimek a přerušení při vstupu do ISR, význam a použití EXC_RETURN
- Sekvence obsluhy výjimek a přerušení při návratu z ISR, význam a použití EXC_RETURN
- Upřednostnění priority přerušení (late arriving) - časový diagram
- Zřetězení zpracování požadavků na přerušení (tail chaining) - časový diagram
- Typy interních výjimek jádra Cortex-M3 – význam
- Vztah mezi číslem Exception number a IRQ number – vazba na CMSIS knihovny, systémový HW mikrokontroléru a externí periférie
- Význam výjimky jádra „Hard Fault“
- Význam výjimky jádra NMI - vlastnosti
Zásobník a přerušení
- Klasický způsob předávání parametrů mezi volající a volanou funkcí
- Alokace lokálních proměnných volané funkce nebo obslužné rutiny přerušení ISR
- Struktura „stack frame“
- Význam ukazatele báze BP na zásobníku
- Rozdíl ve struktuře „stack frame“ při volání funkce a obslužné rutiny přerušení ISR, možnosti zrychlení odezvy ISR
Pokročilé techniky programování jádra ARM a Cortex-M
- Základní komponenty obecného vývojového řetězce použité pro generování cílového kódu mikrokontroléru – obecná sekvence a návaznost volání při překladu a sestavování kódu
- ARM assembler, UAL – charakteristika, vztah instrukčních sad ARM, Thumb a Thumb-2
- Obecný tvar instrukce – popis významu jednotlivých polí
- Základní typy instrukcí – přehled, význam
- Adresovací módy instrukcí typu LD, ST – možnosti, pre-inkrementace, post-inkrementace
- Volání podprogramů, návrat z podprogramů – možnosti, vnořená volání, instrukce skoků
- Instrukce PUSH a POP – význam, použití
- Aritmetické instrukce Cortex-M – obecný přehled, možnosti
- Význam stavových bitů „carry“ a „overflow“, rozdíl mezi nimi
- Synchronizace procesů přistupujících k paměti, či jiným sdíleným prostředkům – semafory
- Podmíněné vykonávání kódu pro instrukční sady ASM, Thumb, Thumb-2
- Instrukce typu IT – příklad použití
- Low-power mód – vstup a návrat, rozdíl mezi instrukcemi WFI a WFE
- Význam a vlastnosti synchronizační instrukce bariéry DMB
- Význam a vlastnosti synchronizační instrukce bariéry DSB
- Význam a vlastnosti synchronizační instrukce bariéry ISB
- Rozdíl mezi systémovými výjimkami PendSV a SVC
- Předávání parametru ve volání systémové výjimky SVC – identifikace předávaného parametru
- Způsob přepínání úloh a kontextu v prostředí RTOS – úloha a funkce použitých systémových prostředků jádra Cortex-M
- Propojení ASM a jazyka C – ukládané registry, používané registry, předávání parametrů funkcím, způsob předání návratové hodnoty
Poslední změna:
04.11.2020
|
|
|
|
|
Významná data a termíny
Poslední změna:
26.08.2020
|
|
|