ARM Cortex magú mikrovezérlők

A tantárgy angol neve: ARM Cortex Core Microcontrollers

Adatlap utolsó módosítása: 2023. június 22.

Budapesti Műszaki és Gazdaságtudományi Egyetem
Villamosmérnöki és Informatikai Kar

Villamosmérnöki szak

Mérnök informatikus szak

Szabadon választható tantárgy
Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VIMIAV07   2/1/1/v 4  
3. A tantárgyfelelős személy és tanszék dr. Kovácsházy Tamás,
A tantárgy tanszéki weboldala https://www.mit.bme.hu/oktatas/targyak/vimiav07
4. A tantárgy előadója

Scherer Balázs

mestertanár

BME MIT

5. A tantárgy az alábbi témakörök ismeretére épít

Beágyazott rendszerek, hardverközeli programozás, C programozási nyelv, alapszintű mikrovezérlős ismeretek.

6. Előtanulmányi rend
Kötelező:
NEM ( TárgyEredmény( "BMEVIMIM342" , "jegy" , _ ) >= 2
VAGY
TárgyEredmény("BMEVIMIM342", "FELVETEL", AktualisFelev()) > 0)

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ó.

7. A tantárgy célkitűzése

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.

8. A tantárgy részletes tematikája

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.

9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

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

10. 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.

11. 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.
12. Konzultációs lehetőségek

Megbeszélés szerint.

13. Jegyzet, tankönyv, felhasználható irodalom

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

Joseph Yiu: The Definitive Guide to ARM Cortex-M3 and Cortex-M4 Processors, ISBN-13: 978-0124080829

14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
Kontaktóra56
Készülés előadásra6
Készülés gyakorlatra
7
Készülés laborra
7
Házi feladat elkészítése
12
Vizsgafelkészülés32
Összesen120
15. A tantárgy tematikáját kidolgozta

Scherer Balázs

mestertanár

MIT

Dr. Tóth Csaba

t. docens

MIT

Egyéb megjegyzések A tantárgy angol neve: ARM Cortex Core Microcontrollers