Belépés címtáras azonosítással
magyar nyelvű adatlap
angol nyelvű adatlap
Beágyazott Linux és platformjai
A tantárgy angol neve: Embedded Linux and its Platforms
Adatlap utolsó módosítása: 2023. február 6.
Programozás C/C++ nyelven
Beágyazottszoftver-fejlesztésMikrokontroller alapú rendszerek
Számítógép architektúrák
Operációs rendszerek
Számítógép hálózatok
A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.
A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.
Előadás
1. Beágyazott Linux bevezető, a Linux felépítése és platformjai (SoC, FPGA, stb.), SW végrehajtásimodell é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 éshasználata, beleértve /proc, /sys, stb. fájlrendszereket. Soros port (UART) használata programozottmódon.
3. Ütemező, ütemező befolyásolása, valós-idejű ütemezés. Folyamatok és szálak használata ésalkalmazá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óriaesetén (folyamat kontextusában futó szálak között). Mutex, readers-writer lock, user-spacespinlock, 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, filelocking, DBUS alapok.
6. Beágyazott perifériák kezelésére alkalmas alrendszerek, rövid bevezetés a Device Tree-be. GPIOkezelé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épzettperifé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, ezekrendszerbe 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óiprogramban, I2C és SPI kezelése (user-space saját driver megírása és létező kernel driverhaszná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ólszerverrő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.
Szorgalmi időszakban
Részvétel a gyakorlatokon: A gyakorlatokon a részvételt ellenőrizzük, amegrendezésre kerülő gyakorlatok minimum 2/3-án a részvételkötelező az az aláíráshoz és a vizsgára bocsáthatósághoz.Házi feladat elkészítése: A házi feladat elfogadható szintű teljesítéseszükséges az aláíráshoz és a vizsgára bocsáthatósághoz.A házi feladat egy beágyazott Linux-t használó funkcionális rendszerelkészítése. A feladat specifikációját a 4. oktatási hét végéig le kell adni.A 8. feladat terveit és a kulcskoncepciókat bemutató prototípusokat a 8.hétig lehet bemutatni. A teljes, működőképes feladatot adokumentációval a szorgalmi időszakban lehet leadni.
Vizsgaidőszakban
Szóbeli vizsga.
A gyakorlatok nem pótolhatók, azoknak legalább a 2/3-án a megjelenés kötelező (13 vagy 14gyakorlat esetén 9-en, 12 esetén 8, az aktuális szám a félév beosztásától függ).
A specifikációt a 8. hétig, a házi feladat terveit és kulcskoncepcióit bemutató prototípusokat a 14.hétig lehet pótolni (következő ütemezett feladatrész leadási határidejéig). A végleges házi feladatleadása a pótlási héten pótolható, ha ez előzetes dokumentációk leadásra kerültek az azokramegadott pótlási feltételekkel.
A házi feladat zárthelyivel nem helyettesíthető.
W. Richard Stevens (Author), Stephen A. Rago, „Advanced Programming in the UNIX Environment(3rd Edition) (Addison-Wesley Professional Computing Series, 2013.
Asztalos Márk, Bányász Gábor, Levendovszky Tihamér, „Linux programozás, Második, átdolgozottkiadás", 2013.
A tantárgyból maximum 25 IMSc pont szerezhető.
Ebből 15 IMSc pont szerezhető az emelt szintű házi feladat vállalásával (ennek igényét ahallgatónak a félév elején jeleznie kell) és kiemelkedő műszaki szinten történő elkészítésével. Azemelt szintű házi feladatok értékelését a tárgyfelelős és a házi feladat konzulense együtt végzi.A szóbeli vizsgán 10 IMSc pont szerezhető a vizsgán érintett tématerületekből megadott kiegészítőanyagrészek ismeretéért.
Az IMSc pontok gyűjtése csak a kiemelkedően elkészített házi feladat és jeles vizsga eseténlehetséges, az extra feladatok megoldásával. Ezen pontok megszerzése nélkül is jeles szintenteljesíthetők a tantárgy követelményei. Az IMSc pontok megszerzése az IMSc programban nemrésztvevő hallgatók számára is biztosított.