K-INFO
HU
EN
Belépés

ARM Cortex magú mikrovezérlők

ARM Cortex Core Microcontrollers
A tantárgyleírás hatályossága
Hatályosság kezdete:
2026. March 21.
Hatályosság vége:
Tantárgy neve (magyarul, angolul)
ARM Cortex magú mikrovezérlők
ARM Cortex Core Microcontrollers
Tantárgykód BMEVIMIAV07
Tantárgyjelleg
Képzési szint
Kurzustípusok és óraszámok (heti/féléves)
Kurzustípus elmélet gyakorlat laboratóriumi gyakorlat
óraszám (heti) 2 1 1
jelleg (kapcsolt/önálló) kapcsolt kapcsolt
Tanulmányi teljesítmény/értékelés típusa vizsga
Tantárgy kreditértéke 4
Tantárgyfelelős
Scherer Balázs Attila
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 https://www.mit.bme.hu/oktatas/targyak/vimiav07
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

Tantárgyprogram

Bevezetés

Bevezetés (2 óra, 0,5 hét)

A mikrovezérlők rövid történelme. A 8 bites mikrovezérlők fejlődése, a 32 bites mikrovezérlők megjelenése. A jelenleg piacon kapható generációk felbukkanása és fejlődése. A legelterjedtebb architektúrák felsorolása, várható jövőbeli trendek bemutatása. Az ARM7 processzormag mint a Cortex M sorozatok közvetlen elődjének bemutatása: belső felépítés, utasításkészlet, regiszterek, megszakítás-kezelés stb.

ARM Cortex M magok

ARM Cortex M3 alap mikrovezérlő-mag, M0, M0+ fogyasztásra optimalizált és M4, M7 nagyteljesítményű magok és az új M33, M23 magok bemutatása (8 óra, 2 hét)

Az ARM Cortex M magok fő jellemzői: architektúra (Miért Neumann architektúra az M0, M0+ és miért Harvard a többi M sorozat?), THUMB2 utasításkészlet (milyen utasítások vannak, miben tér el egymástól az M0, M3, M4, M7 utasításkészlete?), pipeline felépítések és különbségek (Cortex M7 pipeline különbségei a többi M sorozathoz képest). Memóriaszervezési jellemzők: egységes címtartomány, mi a bit-banding, mi a non-aligned memória-hozzáférés? A Cortex M sorozatok programozói modellje: működési és hozzáférési módok és felhasználásuk. A Cortex M sorozatok standard perifériáinak rövid átnézése (fontosabb blokkok részletes elemzése később): system timer, NVIC, debugg blokkok. A standard perifériakészlet által nyújtott előnyök bemutatása. Az ARMv8-M architektúra (M33, M23) által hozott újdonságok: TrustZone és alkalmazhatósága.

ARM Cortex M magú mikrovezérlők

Az ARM Cortex M magú mikrovezérlők belső felépítésének változása az elmúlt években (2 óra, 0,5 hét)

Belső busz architektúra változása: az egyszerű AHB-APB szerkezet után az egyre bonyolultabb, több busz mastert igénylő elrendezések miatt az AHB buszmátrix kialakulása. A főbb belső busz struktúrák és a periféria-elhelyezési megoldások különböző generációi. Az SRAM tartományok több részre bontásának értelme és folyamata az egyes generációknál. Különbségek az M0, M3, M4, M7 sorozatú vezérlők belső felépítésében. A belső felépítés elbonyolódásának hatása a rendszer többi részére. Az új M33, M23 magú vezérlők belső felépítésének újdonságai.

A rendszervezérlő blokk felépítése és feladata, a reset utáni elindulás folyamata (2 óra, 0,5 hét)

A flash gyorsító modul megjelenése és változása a különböző ARM Cortex generációknál. A bonyolult belső felépítéshez tartozó órajel-hálózatok megjelenése és főbb funkciói. A reset utáni elindulás folyamata, a tipikusan választható boot opciók ismertetése.

A piacon kapható ARM Cortex M alapú mikrovezérlő sorozatok (2 óra, 0,5 hét)

Az ARM Cortex M mikrovezérlő sorozatok bemutatása: TI, NXP, ST, Silabs, Atmel sorozatainak különbségei. Az egyes sorozatok jellegzetességei, elhelyezkedésük a teljesítmény, programmemória, perifériakészlet, ár, fogyasztás koordinátarendszerben. Benchmark eredmények az egyes sorozatok teljesítményének összehasonlítására.

Szoftverfejlesztés ARM Cortex M magú mikrovezérlőkre

A CMSIS szabvány bemutatása (2 óra, 0,5 hét)

Cortex Microcontroller Software Interface Standard (CMSIS) felépítése, a verziói által lefedett terület fejlődése. A CMSIS core feladatai: a rendszer header fájlok szerepe, a SystemInit függvény működése, és a startup file felépítése. A Core peripheral függvények szerepe, a mikrovezérlő gyártók által a perifériák kezeléséhez nyújtott támogatás szabályozása. A CMSIS szabvány fejlődése az évek során: Driver API, DSP library stb.

ARM Cortex mikrovezérlők alacsony szintű programozása (2 óra, 0,5 hét)

Labor (2 óra): a CMSIS szabvány támogatására alapuló egyszerű feladatok. Mi történik a mikrovezérlő elindulásakor, hogyan áll össze a C környezet, hogyan jut el a program a main kulcsszóig. Egy egyszerű perifériakezelés programozása CMSIS definíciók alapján. A bit-band funkcionalitás és a speciális utasítások alacsony szintű kezelésének gyakorlása.

Magas szintű firmware library-k és perifériakezelő könyvtárak és az ezeket támogató IDE-k (8 óra, 2 hét)

Gyakorlat (2 óra): Az egyes gyártók által nyújtott perifériakezelő firmware library támogatások bemutatása. A CMSIS Driver API lehetséges jövőbeli szerepe. Az ST Cube platformjának perifériakezelés támogatása, a Silabs firmware library-je által nyújtott lehetőségek hasonlóságai és különbségei. A különböző fejlesztőkörnyezetek közötti különbségek.   Az STCube IDE fejlesztőkörnyezet tulajdonságai, rövid bemutatása. Különböző programozói modellek bemutatása: privilégizált végrehajtás alkalmazása, TrustZone alkalmazása.

Labor (6 óra): egyszerű perifériakezelés firmware library támogatással, valamint bonyolultabb feladatok ellátása megszakításkezeléssel és DMA átvitellel. Az USB device és host működést támogató könyvtári stack-ek használata a gyakorlatban. Grafikus user interfész fejlesztő könyvtárak és alkalmazásuk. Különböző programozói modellek bemutatása: privilégizált végrehajtás alkalmazása, TrustZone alkalmazása.

Az ARM CMSIS RTOS API és használata Cortex M mirkovezérlő sorozatokon (6 óra, 1,5 hét)

Gyakorlat (2 óra): A CMSIS RTOS API felépítése és definíciói, third party operációs rendszerek portolása a Cortex M mikrovezérlőkre és a CMSIS RTOS API-hoz. Kapcsolatok a programozói modellekel: privilégizált végrehajtás és TrustZone alkalmazása.

Labor (4 óra): portolásra és alapszintű funkciók, valamint olyan magasabb szintű trükkök szemléltetésére, mint a memóriakezelési támogatás, a futásidő-monitorozás és stackméret-figyelés. Kapcsolatok a programozói modellekel: privilégizált végrehajtás és TrustZone alkalmazása.

Kódgenerálás domain specifikus környezetből (4 óra, 1 hét)

Gyakorlat (2 óra): Az Matlab Simulink alapú kódgenerálás alapjai. Kódgenerálás blokk szintű támogatása, saját blokkok készítése. A kódgenerálás szerepe a fejlesztési folyamatban.

Labor (2 óra): egyszerű a kódgenerálás hatékonyságát szemléltető feladat elvégzése.

Az mbed fejlesztőkörnyezet (2 óra, 0,5 hét)

Labor (2 óra): Az mbed fejlesztőkörnyezet bemutatása. Célok és koncepciók fejlődése az online compilertől a kiexportálható verzióig. Az mbed szoftverarchitektúra réteges szerkezete, az mbed OS által nyújtott IoT (Internet of Things) irányba mutató támogatások bemutatása, az mbed Device Server szerepe. Az mbed HDK hardware development kit felépítése és alkalmazása. Egy egyszerű feladat elvégzése az mbed környezetben.

Specialitások

Az ARM Cortex M vezérlők debuggolása, a CoreSight szabvány alapú debug és trace blokkok (4 óra, 1 hét)

A tradicionális ROM monitor alapú debug rendszerek hatása a mostani rendszerekre. Egy modern debug lánc felépítése: a SWD és JTAG alapú DP-ok, az AHB-AP szerepe és tulajdonságai, a mikrovezérlő belső debug blokkjainak tulajdonsága.

Gyakorlat (1 óra): A GNU GDB-n keresztüli debuggolás folyamata, az RSP protokoll szerepe és tulajdonsága, az Open-OCD debug szerver működése. A CMSIS-DAP tulajdonságai is szerepe.

Az ARM CoreSight rendszer trace blokkjainak működése: az 1 bites SWV és 4 bites trace interfész, a TPIU blokk működése, az ITM, DWT és ETM blokkok által nyújtott funkcionalitások.

Gyakorlat (1 óra): A trace funkciók mködésének gyakorlati szemléltetése.

Az ARM Cortex M vezérlők energiatakarékos módjai (4 óra, 1 hét)

A tradicionálisan 8 bites vezérlőkben alkalmazott energiatakarékos módok és az ARM Cortex vezérlők energiatakarékos módjai közötti különbségek. A jelenleg elterjedt vezérlők milyen aktív és passzív energiafogyasztási karakterisztikákkal rendelkeznek? Miből adódnak az eltérések, mi a szerepe a back-up domaineknek? Hogyan támogatja a Cortex M sorozat mag szinten az energiahatékonyságot? Hogyan lehet aktív módban és passzív módban a fogyasztást csökkenteni? A Silabs Peripheral Reflex System megoldásának működése.

Labor (2 óra): a különböző energiatakarékos működések megvizsgálására, kipróbálására.

Heterogén, több Cortex magú vezérlők (4 óra, 1 hét)

A piacon kapható heterogén, több magú vezérlők működése, az NXP4300-as, az STM32H7 sorozatának felépítése a több Cortex M mag együttes alkalmazása.

Gyakorlat (2 óra): Több magú mikrovezérlők használatának gyakorlati bemutatása.

Kitekintés a nagyobb teljesítményű ARM Cortex sorozatok felé

Az ARM Cortex R sorozat tulajdonságai (2 óra, 0,5 hét)

A Cortex R sorozat belső felépítése: regiszterkészlet, pipe-line, utasításkészlet, memóriatartomány. A lock-step core-ok működése. A piacon kapható R sorozatú mikrovezérlő magok elemzése. Hogyan támogatják ezek a magok a nagy megbízhatóságot? Milyen beépített hibavédelmi és hibadetektálási, önteszt funkciókkal rendelkeznek?

Cortex A sorozatú magok bemutatása (2 óra, 0,5 hét) (Opcionális, szünet esetén elmarad)

A főbb Cortex A sorozatok tulajdonságai és képességei, a legelterjedtebb A sorozatú vezérlők felépítése és képességei. Szoftverfejlesztési módszerek az A sorozatú vezérlőkre.

A tantárgy célkitűzése, hogy alapfokú beágyazott rendszeres ismeretekkel rendelkező hallgatók tudását kiegészítse a modern, nagy teljesítményű mikrovezérlős rendszerek felhasználásához, megértéséhez szükséges ismeretekkel. A tárgy részletesen bemutatja a 32 bites ARM Cortex architektúrákon alapuló mikrovezérlő-családok működését, tartalmazza az ezekkel való tervezéshez és fejlesztéshez szükséges hardver- és szoftverismereteket, illetve az elengedhetetlen tesztelési és debuggolási technológiákat. A tárgy feltételezi, hogy a hallgatók legalább alapszinten ismerik az egyszerűbb 8-bites mikrovezérlők felépítését, vagy hallottak már áttekintőbb jelleggel a 32 bites mikrovezérlők használatáról. A tárgy teljesítéséhez továbbá ajánlott a C programozási nyelvben legalább alapszintű jártassággal rendelkezni.

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

Előadás, gyakorlat és laboratóriumi gyakorlatok.

Tanulástámogató anyagok

Online források
Az oktatók által készített; prezentációk, segédletek, internetes források.; Ajánlott könyvek:; Joseph Yiu: The Definitive; Guide to the ARM Cortex-M0, ISBN-13: 978-0123854773; Guide to ARM Cortex-M3 and Cortex-M4 Processors, ISBN-13: 978-0124080829

A tantárgy teljesítéséhez ajánlott előzetes ismeretek

Tudás típusú kompetenciák
(azon előzetes ismeretek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
Beágyazott rendszerek, hardverközeli programozás, C programozási nyelv, alapszintű mikrovezérlős ismeretek.
Képesség típusú kompetenciák
(azon előzetes képességek és készségek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
nincs
Ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák
(azon ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák összessége, amelyek jelentősen hozzájárulnak a tantárgy eredményes teljesítéséhez)
Beágyazott rendszerek, hardverközeli programozás, C programozási nyelv, alapszintű mikrovezérlős ismeretek.
Általános szabályok
Követelmények: a. Az aláírás megszerzésének feltétele: házi feladat elfogadható szintű teljesítése. Az házi feladat háromféle módon teljesíthető: szoftver-/alkalmazásfejlesztés meglévő 32 bites demó panelre; egyszerű, saját panel készítése és élesztése; komplexebb hardver tervezése és részszoftver írása egy meglévő fejlesztőkártyára.   b. A vizsgaidőszakban: írásbeli vizsga. Pótlási lehetőségek: A házi feladat különeljárási díj megfizetése mellett a pótlási időszak végéig adható le késedelmesen.
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

Nincs megadva.

Ajánlott tantárgyak

Nincs megadva.

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
Tantárgykövetelmények hatályosságának kezdete:
Tantárgykövetelmények hatályosságának vége:
Tantervi elhelyezés

Nincsenek rögzített tantervi elhelyezések ehhez a tárgyverzióhoz.