NSWE001 Vestavěné systémy a systémy reálného času

Stránka předmětu:Web
Garant:prof. RNDr. Tomáš Bureš, Ph.D.
Vyučující:prof. RNDr. Tomáš Bureš, Ph.D., Milad Ashqi Abdullah
SIS:Odkaz do SISu
Diskuze:Discord kanál

Info

  • Tomáš Bureš je pohoda týpek. Also narozdíl od fotek na webu má dlouhé vlasy a vypadá mega líp.

  • Neoficiální prerekvizitou je umět programovat v Cčku, jinak jste nahraný.

Studijní materiály

Prezentace k předmětu

  • Prezentace z přednášek jsou pro studenty k dispozici v pdf na Teamsech.

Praktické k úložkám

STM32 (úložky 1-4)

Getting started:

  • Install STM32CubeMX, STM32CubeCLT, OpenOCD and set their paths inClion Embedded Development (/opt/stm32cubemx/STM32CubeMX, /opt/stm32cubeclt, /usr/bin/openocd)

  • Install gcc toolchain (not just arm-none-eabi-gcc !): pacman -S arm-none-eabi-binutils arm-none-eabi-gcc arm-none-eabi-gdb arm-none-eabi-newlib

  • STM32 project setup in CLion: setup tutorial
    → It should compile now!

Other

  • Monitor UART serial from STM32 using arduino ide in terminal: arduino-cli monitor -c <boud_rate> -p /dev/ttyACM<number>

Resources:

  • FreeRTOS full tutoriál (actually mi pomohl s používáním semaforů, mutexů, even flagů) (rozmyslete si, jestli chcete nebo nechcete používat CMSISV2): youtube playlist

  • Some STM32 full tutorial (usefull just for some stuff): tutorial web

  • STM32 Timer calculator

NXP (úložky 5-6)

  • Možná si budete muset openocd zkompilovat sami (maybe je i jiné řešení, ale kompilace ze zdrojáků je nejjednodušší), protože release nemusí mít potřebný s32k.cfg (překvapivě i Arch linux potřeboval manuální kompilaci ).

  • Monitor UART serial from STM32 using arduino ide in terminal: arduino-cli monitor --protocol esrial =c boudrate=1000000 -p /dev/ttyACM<number>

  • Musí vás potahat dokumentace (pozor! v dokumentaci jsou přiložené potřebné xlsx tabulky (apparently pdf has this feature)).

  • Pozor na codebook příklady, některé nebudou fungovat jen ctrl+c, ctrl+v.

  • Pokud si bricknete desku, tak nezoufejte. Napište Burešovi, on ví co s tím (don't ask how I know).

Zakončení předmětu

Zápočet

  • Na cvika netřeba chodit, jen udělat 6 praktických úložek na půjčeném hardware.

  • Nepodceňujte úložky časově, protože každá je časově minimálně na celý den (nebo celou noc nebo obojí (znalosti získané praxí)).

Zkouška

  • Oficiálně je potřeba mít hotový zápočet, abyste mohli na zkoušku. Pokud ale nestíháte, tak stačí mít alespoň většinu assignmentu 5 (ten na NXPčku, kde se šahá na registry) a domluvit se s Burešem.

  • Zkouška se skládá z písemné části a vysvětlení části vámi napsaného kódu z úložek 5/6 (NXP).

    • Bureš vám nejdříve zadá nějaké témátko a budete mít čas si ho na papír vypracovat. Pak si to přečte a případně se doptá nebo vám dá čas ještě něco dopracovat.

    • Pro vysvětlení kódu vám ukáže kus kódu a zeptá se co dělá. Je k dispozici dokumentace, takže stačí na místě ctrl+f na registry a zvládnout s dokumentací kód vysvětlit.

  • Známka je v praxi čistě z písemné části. Vysvětlení kódu je jen aby věděl, že jste ho alespoň částečně psali vy.

Obsah zkoušky přímo dle slov Tomáše Bureše:

  • Ne důkazy

  • Umět ke všemu nakreslit schedule, to prý chce.

  • EDF, Rate Monotonic - Schedulability/feasibility analysis, umět nakreslit schedule.

  • Priority Inheritance Protocol, Priority Ceiling Protocol, problém priority inversion

  • Možná nějaké priority servery.

  • Komunikační protokoly spíš ne. Jen možná, když bude na zkoušce hodně lidí a nevyzbudou mu jiná témátka.

  • Pak se podíváme do kódu na úložky 5 a 6 (STMko ho nezajímá). Jen říct třeba co dělá co, bude k dispozici dokumentace, chce jen vidět, že jsme to psali mi a tušíme co s tím. (v praxi nám při zkoušce ukázal na nějaký registr a zeptal se proč do něj zapisujeme/čteme z něj. K tomu nám dal dokumentaci, taže to stačilo najít v ní a interpretovat.)