Beágyazott Linux és platformjai
A tantárgyleírás hatályossága
| Tantárgy neve (magyarul, angolul) |
Beágyazott Linux és platformjai
Embedded Linux and its Platforms
|
||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Tantárgykód | BMEVIMIAC19 | ||||||||||||
| Tantárgyjelleg | — | ||||||||||||
| Képzési szint | — | ||||||||||||
| Kurzustípusok és óraszámok (heti/féléves) |
|
||||||||||||
| Tanulmányi teljesítmény/értékelés típusa | vizsga | ||||||||||||
| Tantárgy kreditértéke | 5 | ||||||||||||
| Tantárgyfelelős |
DR. Kovácsházy Tamás
beosztás: egyetemi docens
elérhetőség:
kovacshazy.tamas@vik.bme.hu
|
||||||||||||
| Tantárgyat gondozó oktatási szervezeti egység |
Mesterséges Intelligencia és Rendszertervezés Tanszék
|
||||||||||||
| Kar | Villamosmérnöki és Informatikai Kar | ||||||||||||
| Tantárgy weboldala | http://www.mit.bme.hu/oktatas/targyak/VIMIAC19 | ||||||||||||
| Tantárgy elsődleges mintatantervi jellege | — | ||||||||||||
| Közvetlen előkövetelmények – Erős előkövetelmény | nincs | ||||||||||||
| Közvetlen előkövetelmények – Gyenge előkövetelmény | nincs | ||||||||||||
| Közvetlen előkövetelmények – Párhuzamos előkövetelmény | nincs | ||||||||||||
| Közvetlen előkövetelmények – Mérföldkő előkövetelmény | nincs | ||||||||||||
| Közvetlen előkövetelmények – Kizáró feltétel | nincs |
Célkitűzés
Előadás
1. Beágyazott Linux bevezető, a Linux felépítése és platformjai (SoC, FPGA, stb.), SW végrehajtási
modell és memória menedzsment (virtuális tárkezelés és annak következményei), perifériák kezelés lehetőségei és következményei Linuxban (user- és kernel-space).
2. Shell használta. Linux programok alapjai, parancssor és konfiguráció kezelése. Fájlrendszer és
használata, beleértve /proc, /sys, stb. fájlrendszereket. Soros port (UART) használata programozott
módon.
3. Ütemező, ütemező befolyásolása, valós-idejű ütemezés. Folyamatok és szálak használata és
alkalmazásának a következményei. Eseményvezérelt programozás mintái (select, poll, epol).
Rendszerindítás és folyamatmenedzsment alapjai (systemd és alternatívái).
4. Kölcsönös kizárás, kommunikáció és szinkronizáció Linux-ban. Megoldások közös memória
esetén (folyamat kontextusában futó szálak között). Mutex, readers-writer lock, user-space
spinlock, conditional variable és azok használata.
5. Folyamatok közötti kommunikáció (IPC) alacsony szinten és magas szinten (DBUS).
Eseménykezelés, csővezetékek, folyamatok közötti osztott memória és annak ahasználata, file
locking, DBUS alapok.
6. Beágyazott perifériák kezelésére alkalmas alrendszerek, rövid bevezetés a Device Tree-be. GPIO
kezelése Linux-ban és a programozási modelleknek a hatása a teljesítményre. A/D és D/A kezelés,
I2C, SPI és CAN kezelése Linux-ban, a kapcsolódó alrendszerek felépítése.
7. User-space driverek, USB kezelés és TUN/TAP felhasználói módban. Memóriába leképzett
perifériák elérése felhasználói módban, előnyök és hátrányok.
8. Alacsony (socket) és magas szintű (HTTP, stb.) hálózatkezelés, köztes rétegek (Middleware).
9. Heterogén architektúra támogatása, feladatütemezés és kommunikáció külső HW gyorsítókkal
(valós-idejű magok, AI gyorsítás, OpenCV gyorsítás példával, etc).
10. A Linux multimédia alrendszere: Video for Linux (V4L2). Multimédia keretrendszerek
áttekintése: Gstreamer, FFmpeg.
11. SoC, fogalma, jellemző felépítése. Fix funkciós és programozható hardver egységek, ezek
rendszerbe illesztése. GPU-k felépítése.
12. Heterogén rendszerek programozási modellje: OpenCL és CUDA.
13. FPGA alapú SoC eszközök jellemzői (Intel, Lattice, Xilinx). Processzoros alrendszer,
programozható logika és egyéb rendszer elemek ismertetése. FPGA alapú gyorsítók magas szintű
leírása: OpenCL és HLS.
Gyakorlat
1. gyakorlat: Fejlesztő Rendszer összeállítása
2. gyakorlat: Shell programozás és parancssor kezelés, soros port kezelése termio-val.
3. gyakorlat: Folyamat és szál létrehozása, ütemezés befolyásolása (RT és CPU affinitás),
folyamatkezelés systemd-vel
4. gyakorlat: Select és poll/epol alapú komplex SW architektúrák
5. gyakorlat: Kölcsönös kizárás és szinkronizáció közös memóriában, IPC megoldások használata
6. gyakorlat: GPIO (GPIO user-space könyvtárral és memóriába leképezve) kezelése felhasználói
programban, I2C és SPI kezelése (user-space saját driver megírása és létező kernel driver
használata)
7. gyakorlat: User-space USB periféria kezelése (periféria MCU-n megvalósítva, kész kóddal, kommunikációs specifikációval)
8. gyakorlat: Socket programozás, HTTP kliens programozás (információ letöltése programból
szerverről)
9. gyakorlat: Remoteproc és rpmsg a gyakorlatban, OpenCV heterogén rendszerchip-en
(remoteproc és rpmsg magas szinten)
10. gyakorlat: V4L2 user space API használata.
11. gyakorlat: Gstreamer használata.
12. gyakorlat: OpenCL/CUDA alapok: hoszt kód és egyszerű kernel.
13. gyakorlat: OpenCL/CUDA: kernel programozás.
Tanulmányi eredmények
Ez a tantárgy a KKK rendeletben meghatározott, következő kompetenciák fejlesztését szolgálja:
Tudás
Nincsenek rögzített tanulási eredmények.
Képességek
Nincsenek rögzített tanulási eredmények.
Attitűd
Nincsenek rögzített tanulási eredmények.
Autonómia és felelősség
Nincsenek rögzített tanulási eredmények.
Oktatási módszertan
Tanulástámogató anyagok
Online források
A tantárgy teljesítéséhez ajánlott előzetes ismeretek
Általános szabályok
Teljesítményértékelési módszerek
Szorgalmi időszakban végzett teljesítményértékelések részletes leírása
Nincs megadva részletes értékelés.
Szorgalmi időszakban végzett teljesítményértékelések részaránya
Nincs megadva részarány.
Vizsgaidőszakban végzett teljesítményértékelések részletes leírása
Nincs megadva részletes értékelés.
Vizsgarészek részaránya
Nincs megadva részarány.
Érdemjegy megállapítása
Nincs megadva érdemjegy határ.
Jelenléti és részvételi követelmények
Nincs megadva jelenléti követelmény.
Javítás, ismétlés és pótlás különös szabályai
Nincs megadva.
Rövid leírás
Nincs megadva.
Részletes leírás
Ajánlott tantárgyak
A tantárgy elvégzéséhez szükséges tanulmányi munka
Nincs megadva munkaidő bontás.
Tantárgykövetelmények hatályossága
Tantervi elhelyezés
Nincsenek rögzített tantervi elhelyezések ehhez a tárgyverzióhoz.