NSWE001 Vestavěné systémy a systémy reálného času
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-newlibSTM32 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
NXP (úložky 5-6)
Možná si budete muset
openocdzkompilovat 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.)