ARM Cortex magú mikrovezérlők

Hasonló dokumentumok
Nagyteljesítményű mikrovezérlők

ARM Cortex magú mikrovezérlők

Nagyteljesítményő mikrovezérlık Cortex M3 mag

Silabs STK3700, Simplicity Studio laborgyakorlat

ARM (Advanced RISC Machine)

Az interrupt Benesóczky Zoltán 2004

ARM Cortex magú mikrovezérlők

Mikrorendszerek tervezése

ARM Cortex magú mikrovezérlők. mbed

ARM Cortex magú mikrovezérlők

Nagyteljesítményű mikrovezérlők

ARM Cortex magú mikrovezérlők

Nagyteljesítményű mikrovezérlők

ARM Cortex magú mikrovezérlők

Architektúra, megszakítási rendszerek

Az operációs rendszer szerkezete, szolgáltatásai

Dr. Schuster György szeptember 27.

Nagyteljesítményű mikrovezérlők

A Számítógépek felépítése, mőködési módjai

ARM Cortex magú mikrovezérlők

Mechatronika és mikroszámítógépek. 2018/2019 I. félév. Külső megszakítások

Bevezetés a számítástechnikába

Előadás_#02. Előadás_02-1 -

ARM processzorok felépítése

Autóipari beágyazott rendszerek CAN hardver

Nagyteljesítményű mikrovezérlők

ÉRZÉKELŐK ÉS BEAVATKOZÓK I. GY1. 32-BITES MIKROSZÁMÍTÓGÉPEK

ARM Cortex magú mikrovezérlők

Operációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok:

Budapesti Műszaki- és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar MIT. Nagyteljesítményű mikrovezérlők tantárgy [vimim342]

ÉRZÉKELŐK ÉS BEAVATKOZÓK I. GY1.1 SENSACT0 PÉLDAPROGRAM

Scherer Balázs: Mikrovezérlők fejlődési trendjei

Érzékelők és beavatkozók I.

Perifériák hozzáadása a rendszerhez

Nagyteljesítményű mikrovezérlők 10b. RTOS gyakorlatok

Scherer Balázs: Mikrovezérlık fejlıdési trendjei

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység

ARM Cortex magúmikrovezérlők

Az MSP430 mikrovezérlők digitális I/O programozása

Az AVR programozás alapjai. Előadja: Both Tamás

Járműfedélzeti rendszerek I. 5. előadás Dr. Bécsi Tamás

Nagyteljesítményű mikrovezérlők

SZÁMÍTÓGÉP ARCHITEKTÚRÁK

Dr. Schuster György október 14.

Újrakonfigurálható eszközök

Mikrovezérlők Alkalmazástechnikája

A MiniRISC processzor

1. Az utasítás beolvasása a processzorba

Operációs rendszerek. Folyamatok kezelése a UNIX-ban

Labor gyakorlat Mikrovezérlők

Fordító részei. Fordító részei. Kód visszafejtés. Izsó Tamás szeptember 29. Izsó Tamás Fordító részei / 1

Digitális technika VIMIAA01

Firmware fejlesztés. Mártonfalvi Zsolt Hardware programozó

Labor gyakorlat Mikrovezérlők

Megszakítási rendszer

ARM Cortex magú mikrovezérlők

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

A Számítógépek hardver elemei

Programozható vezérlő rendszerek KOMMUNIKÁCIÓS HÁLÓZATOK 2.

Járműfedélzeti rendszerek I. 3. előadás Dr. Bécsi Tamás

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

MSP430 programozás Energia környezetben. Az I/O portok kezelése

Számítógép architektúrák

Nagyteljesítményű mikrovezérlők Energiatakarékos üzemmódok

Mintavételes szabályozás mikrovezérlő segítségével

OPERÁCIÓS RENDSZEREK. Elmélet

Digitális technika VIMIAA01

Mikrorendszerek tervezése

SZÁMÍTÓGÉPARCHITEKTÚRÁK

Szenzorhálózatok programfejlesztési kérdései. Orosz György

Bevezetés az informatikába

Egyszerű számítógép működése

ATMEL ATMEGA MIKROVEZÉRLŐ-CSALÁD

Máté: Assembly programozás

A Számítógépek hardver elemei

Mikrovezérlők Alkalmazástechnikája

ARM Cortex magú mikrovezérlők

Programozás alapjai. 10. előadás

Mechatronika és mikroszámítógépek

Nagy Gergely április 4.

ARM Cortex-M0+ mikrovezérlő programozása KEIL MDK 5 környezetben. 1. Az ARM Cortex-M0+ CPU jellemzői

5. tétel. A számítógép sematikus felépítése. (Ábra, buszok, CPU, Memória, IT, DMA, Periféria vezérlő)

Számítógépek felépítése, alapfogalmak

Operációs rendszerek. Az NT folyamatok kezelése

Számítógép Architektúrák

Az MSP430 energiatakarékos használata

I. C8051Fxxx mikrovezérlők hardverfelépítése, működése. II. C8051Fxxx mikrovezérlők programozása. III. Digitális perifériák

I 2 C, SPI, I 2 S, USB, PWM, UART, IrDA

Mérő- és vezérlőberendezés megvalósítása ARM alapú mikrovezérlővel és Linux-szal

Operációs rendszerek. A Windows NT felépítése

Beágyazott és Ambiens Rendszerek

DSP architektúrák dspic30f család

A PROGAMOZÁS ALAPJAI 1. Függvény mint függvény paramétere. Függvény mint függvény paramétere. Függvény mint függvény paramétere

Mikrovezérlők programozása

Mikrovezérlők Alkalmazástechnikája

Máté: Számítógép architektúrák

ISDN_prog. Digital Super Hybrid System KX-TD1232CE/816CE. Programozási Segédlet (ISDN programozás) március

Labor 2 Mikrovezérlők

Számítógép Architektúrák (MIKNB113A)

TI TMDSEVM6472 rövid bemutatása

Átírás:

ARM Cortex magú mikrovezérlők 6. NVIC Scherer Balázs Budapest University of Technology and Economics Department of Measurement and Information Systems BME-MIT 2017

ARM7, ARM9 megszakítás kezelés ARM7, ARM9 két interrupt vonal o IRQ: Normál priorítású IT o FIQ: Fast IT saját regiszter blokkal o A vektoros megszakításkezelés gyártó specifikus o Nem volt determinisztikus az interrupt kiszolgálás: attól függött a megszakítás kiszolgálása, hogy éppen milyen utasítás hajtódott végre. o Az ARM7, ARM9 hardware-esen nem támogatta az ún. Nested IT-ket. (IT-t megszakító IT) A Cortex M sorozat megszakítás kezelője a fenti korlátokra próbál megoldást adni. BME-MIT 2017 2.

Cortex M3 NVIC Nested Vector Interrupt Controller o Gyártó független standard tartozék, ebből következően gyártó független interrupt struktúra. Könnyű portolhatóság o A Thumb2 utasításkészlet több órajelig tartó utasításai megszakíthatóak, így az IT kezelés determinisztikus. o Nested interuptokat támogatja o Bár az NVIC processzor független, az erőforrás használat minimalizálása miatt a processzor tervezők megszabhatják NVIC bemenő vonalainak számát. Az NVIC képes: 1 nem maszkolható +240 külső periféria + 15 belső Cortex-es IT vonal forrást kezelni Az STM32f107 43-at Az LPC1768 35-öt használ BME-MIT 2017 3.

Az NVIC kezelése Meg kell adni az ugrótáblát és a prioritásokat. Az ugrótábla a címtartomány alján a 0x00000004-ről indul. o A 0x00000000-án a kezdő stack pointer van Minél hamarabb lehessen C-t használni. Az első 15 megszakítás a Cortex Core-hoz tartozik Ezek után jönnek a gyártó specifikus periféria megszakítások BME-MIT 2017 4.

Az NVIC ugrótábla Az ugrótábla a címtartomány alján a 0x00000004-ről indul. o A 0x00000000-án a kezdő stack pointer van, hogy minél hamarabb lehessen C-t használni. No. Exception Type Priority Type of Priority Descriptions 1 Reset -3 (Highest) fixed Reset 2 NMI -2 fixed Non-Maskable Interrupt 3 Hard Fault -1 fixed Default fault if other hander not implemented 4 MemManage Fault 0 settable MPU violation or access to illegal locations 5 Bus Fault 1 settable Fault if AHB interface receives error 6 Usage Fault 2 settable Exceptions due to program errors 7-10 Reserved N.A. N.A. 11 SVCall 3 settable System Service call 12 Debug Monitor 4 settable Break points, watch points, external debug 13 Reserved N.A. N.A. 14 PendSV 5 settable Pendable request for System Device 15 SYSTICK 6 settable System Tick Timer Gyártó specifikus 16 256 Interrupt #0.. Interrupt#240 7.. 247 settable settable settable External Interrupt #0.. External Interrupt #240 BME-MIT 2017 5.

A SVC használata BME-MIT 2017 6.

A PendSV kezelése Taszkváltás kezdeményezés BME-MIT 2017 7.

Alap regiszterek Interrupt enable és Clear enable regiszterek o SETENA0-n/CLRENA0-n 32bites külön tiltó és engedélyező regiszter Interrupt set pending és Clear pending o SETPEND0-n/CLRPEND0-n 32bites regiszterek, amelyekből a megszakított, várakozó interruptokat lehet kiolvasni, törölni. BME-MIT 2017 8.

Prioritás kezelés Az alap belső kivételeknek fix prioritása van A többi külső megszakításhoz (a mag szempontjából) prioritás regiszter o max. 8 bites, min 3 bites prioritás regiszter o Korlátozni szokták a szinteket az egyszerűbb hardware kialakítás miatt o A MSB bitektől kezdődik az implementálás (könnyebb portolhatóság) o Az STM32F107, LPC1768, STM32F429 esetében 4 bites prioritás regiszter BME-MIT 2017 9.

Prioritás kezelés folytatás BME-MIT 2017 10.

Preempt priority és Subpriority A 8 bit, de csak 127 preemptciós szint létezik Subprioritás o Azonos preemptciós szintű prioritások szerint az alacsonyabb subprioritású fut le először o PRIGROUP regiszter BME-MIT 2017 11.

Preempt priority és Subpriority A 8 bit, de csak 127 preemptciós szint létezik Subprioritás o Azonos preemptciós szintű prioritások szerint az alacsonyabb subprioritású fut le először o PRIGROUP regiszter o Az STM32F107, LPC1768, STM32F429 esetében 4 bites prioritás regiszter BME-MIT 2017 12.

További NVIC regiszterek, opciók Megszakítás maszkot o PRIMASK mindet kivéve a hibákat o FAULTMASK a hibákat is maszkolja -1 ig o BASEPRI egy bizonyos prioritás alatt maszkol Vector Table Offset Regiszter o Áthelyezhető az IT táblázat szinte tetszőleges helyre o Boot-olás, Boot-loader segítő lépés BME-MIT 2017 13.

Az NVIC működése, az IT hatása I. Az IT hatására a Cortex M3 IT kezelő állapotba megy és lementi a regiszter készletet a stack-re. o Ez mikrokódban történik nincs szükség hozzá programozói beavatkozásra. 8 regiszter mentődik el: a Program Status Register Program Counter Link Register R0 R3 regiszterek (ezek tartalmazzák a függvények paraméter hívásait) és az R12 regiszter (compiler segéd adatregiszter) Process Stack átkapcsolódik a Main Stackre ha szükséges o Eközben az IT kiszolgáló címét elkezdi felhozni az utasítás buszon. BME-MIT 2017 14.

Az NVIC működése, az IT hatása II. Az IT kezdőcímének felhozása után aktualizálás o Stack Pointer o Link Register o Program Counter o Interupt Program Status Register: IPSR Az IT kiváltása után 12 órajellel elkezdődik az IT kiszolgálás. Az IT után a visszatérés ugyanúgy 12 órajel ciklus. o Nincs speciális visszatérő utasítás BME-MIT 2017 15.

Az NVIC működése összefoglalás BME-MIT 2017 16.

Működés több egyidejű megszakítás esetén I. Real-time alkalmazásokban fontos, hogy a megszakítások prioritását is szabályozni tudjuk. o Hagyományosan a hard-realtime rendszerek nem, vagy csak nagyon kevés IT-t használnak, pont azért mert a sok IT egymást is késlelteti. Preemptív IT kezelés o A Cortex M3 biztosítja, hogy egy magasabb prioritású IT meg tudjon szakítani egy alacsonyabb prioritásút. o Az alacsonyabb prioritású IT regiszterei, ugyanúgy mint a főprogram regiszterei, lementődnek. A magas prioritású megszakítás 12 órajel ciklus alatt el kezd végrehajtódni. BME-MIT 2017 17.

Működés több egyidejű megszakítás esetén II. Tail chaining: A megszakítások láncban történő végrehajtása több egyidejű IT esetén. o A második IT végrehajtása az ARM7 esetében jóval hosszabb lett volna (42 óraciklus), mert ott egy POP(16) és PUSH(26) is lejátszódott volna. BME-MIT 2017 18.

Működés több egyidejű megszakítás esetén III. Megszakításból való visszatérés megszakítása o A POP művelet itt megszakadhat. BME-MIT 2017 19.

Működés több egyidejű megszakítás esetén IV. Elkésett nagyobb prioritású IT nem okoz gondot. o A megszakítás kiváltása után 6 órajellel, ami az IT kiszolgáló címének felhozásához kell a nagyobb prioritású IT futáskész. BME-MIT 2017 20.

NVIC programozás: LPC fimware library példa BME-MIT 2017 21.

Feladat: Timer IT hatására LED villogtatás System Init Main TimerIT vektor TimerIT GPIO, UART INIT NVIC felprogramozás Timer Felprogramozás és elindítás GPIO Láb invertálás Printf( IT counter ) Timer Felprogramozás Ha kell Return Printf( counter ) BME-MIT 2017 22.

Megvalósítás 1. Lépés: Timer szabályozott főciklus TIM_Init TIM_ConfigMatch TIM_Cmd TIM_ClearIntPending TIM_GetIntSatus 2. Lépés: IT kérés NVIC_EnableIRQ NVIC_SetPriority IRQ handler BME-MIT 2017 23.

NVIC programozás: LPC fimware library példa BME-MIT 2017 24.

A timer IT program BME-MIT 2017 25.