Tematika
Bevezetés
Bevezetés
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 fogyasztásra optimalizált és M4, M7 nagyteljesítményű magok bemutatása
Előadás:
Az ARM Cortex M magok fő jellemzői: architektúra (Miért Neumann architektúra az 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.
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
Előadás:
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.
A rendszervezérlő blokk felépítése és feladata, a reset utáni elindulás folyamata
Előadás:
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
Előadás:
Az ARM Cortex M mikrovezérlő sorozatok bemutatása: TI, NXP, ST, Silabs, Atmel sorozatai. 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
Előadás:
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 4.2-es újdonságai: Driver API, DSP library stb.
ARM Cortex mikrovezérlők alacsony szintű programozása
Laborgyakorlat:
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
Előadás:
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 NXP firmware library-je. 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. Gyári Keil, IAR fejlesztőkörnyezetek, és a Coocox fejlesztőkörnyezet tulajdonságai, rövid bemutatása.
Laborgyakorlat:
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.
Az ARM CMSIS RTOS API és használata Cortex M mirkovezérlő sorozatokon
Előadás:
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.
Laborgyakorlat:
Portolás és alapszintű funkciók, valamint olyan magasabb szintű trükkök szemléltetése, mint a memóriakezelési támogatás, a futásidő-monitorozás és stackméret-figyelés.
Az mbed fejlesztőkörnyezet
Előadás:
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.
Laborgyakorlat:
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
Előadás:
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. 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, valamint azok gyakorlati szemléltetése.
Az ARM Cortex M vezérlők energiatakarékos módjai
Előadás:
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.
Laborgyakorlat:
A különböző energiatakarékos működések megvizsgálása, kipróbálása.
Kitekintés a nagyobb teljesítményű ARM Cortex sorozatok felé
Az ARM Cortex R sorozat tulajdonságai
Előadás:
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ú maguk bemutatása
Előadás:
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.
Heterogén, több Cortex magú vezérlők
Előadás:
A piacon kapható heterogén, több magú vezérlők működése, az NXP4300-as sorozatának felépítése a Cortex M0 és M4 mag együttes alkalmazása. A modern R és A magokat egyszerre tartalmazó sorozatok működése.