ARM Cortex magúmikrovezérlők



Hasonló dokumentumok
ARM Cortex magú mikrovezérlők

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

ARM Cortex magú mikrovezérlők

Nagyteljesítményű mikrovezérlők

ARM (Advanced RISC Machine)

ARM Cortex magú mikrovezérlők

ARM processzorok felépítése

Nagyteljesítményű mikrovezérlők

ARM Cortex magú mikrovezérlők

Mikrokontrollerek. Tihanyi Attila május 8

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

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

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

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

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

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

ARM Cortex magú mikrovezérlők

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

Adatok ábrázolása, adattípusok. Összefoglalás

ARM Cortex magú mikrovezérlők

A MiniRISC processzor

DSP architektúrák Texas Instruments DSP architektúrák

Nagyteljesítményű mikrovezérlők

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

Dr. Schuster György február 21. Real-time operációs rendszerek RTOS

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

Egyszerű RISC CPU tervezése

ARM Cortex magú mikrovezérlők

1.1. Általános áttekintés

DSP architektúrák dspic30f család

Nagyteljesítményű mikrovezérlők

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

I+K technológiák. Beágyazott rendszerek 1. előadás Aradi Szilárd

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

Memóriák - tárak. Memória. Kapacitás Ár. Sebesség. Háttértár. (felejtő) (nem felejtő)

A mikroszámítógép felépítése.

ARM Cortex magú mikrovezérlők

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

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

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

Számítógép sematikus felépítése. Little Man Computer (LMC)

Mikrorendszerek tervezése

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

Bevitel-Kivitel. Eddig a számítógép agyáról volt szó. Szükség van eszközökre. Processzusok, memória, stb

A számítógép alapfelépítése

ARM Cortex magú mikrovezérlők. mbed

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

Architektúra, megszakítási rendszerek

Mielıtt használná termékünket Az eltérı környezeti körülmény elektromos áramütést, tüzet, hibás mőködést vagy. okozhat.

Az interrupt Benesóczky Zoltán 2004

Autóipari beágyazott rendszerek CAN hardver

Programozás I gyakorlat

Dr. Schuster György szeptember 27.

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

Árverés kezelés ECP WEBSHOP BEÉPÜLŐ MODUL ÁRVERÉS KEZELŐ KIEGÉSZÍTÉS. v ECP WEBSHOP V1.8 WEBÁRUHÁZ MODULHOZ

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

ARM Cortex magú vezérlők Energia felhasználás Energiatakarékos üzemmódok

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

VHDL szimuláció. Tervezés. Labor II. Dr. Hidvégi Timót

Nagyteljesítményű mikrovezérlők

ARM Cortex magú mikrovezérlők

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

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

SATEL. CA-64 RIASZTÓKÖZPONT ( es szoftver verzió) Telepítési útmutató

16F628A megszakítás kezelése

Bevitel-Kivitel. Bevitel-Kivitel és Perifériák. Algoritmusok és Alkalmazásaik Tanszék Budapest december 16.

Az AVR ATmega128 mikrokontroller

Operációs rendszerek Memóriakezelés 1.1

Operációs rendszerek

A Texas Instruments MSP430 mikrovezérlőcsalád

TI TMDSEVM6472 rövid bemutatása

Kérjük, hogy mielőtt elkezdené használni a Csavarhat webáruházat, gondosan olvassa végig ezt a segédletet.

Az INTEL D-2920 analóg mikroprocesszor alkalmazása

A PIC18 mikrovezérlő család

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

Az első lépések. A Start menüből válasszuk ki a Minden program parancsot. A megjelenő listában kattintsunk rá az indítandó program nevére.

Korszerű geodéziai adatfeldolgozás Kulcsár Attila

Digitális technika (VIMIAA01) Laboratórium 1

Többfelhasználós adatbázis környezetek, tranzakciók, internetes megoldások

Gábor Dénes Főiskola Győr. Mikroszámítógépek. Előadás vázlat. 2004/2005 tanév 4. szemeszter. Készítette: Markó Imre 2006

Autóipari beágyazott rendszerek

Üresként jelölt CRF visszaállítása

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

FPGA áramkörök alkalmazásainak vizsgálata

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

Mikrovezérlők Alkalmazástechnikája

ARM Cortex M0 mag alapú beágyazott rendszer FPGA Spartan 6 alapú rendszeren

Nyíregyházi Egyetem Matematika és Informatika Intézete. Input/Output

Az MSP430 energiatakarékos használata

Vodafone ReadyPay. Használati útmutató

Vektoros elemzés végrehajtása QGIS GRASS moduljával 1.7 dr. Siki Zoltán

Lemezkezelés, RAID, partícionálás, formázás, defragmentálás.

Párhuzamos programozás

HÁLÓZATSEMLEGESSÉG - EGYSÉGES INTERNET SZOLGÁLTATÁS-LEÍRÓ TÁBLÁZAT

Operandus típusok Bevezetés: Az utasítás-feldolgozás menete

AWP TELEPÍTÉSE- WINDOWS7 64 OPERÁCIÓS RENDSZEREN

Programmable Chip. System on a Chip. Lazányi János. Tartalom. A hagyományos technológia SoC / PSoC SoPC Fejlesztés menete Mi van az FPGA-ban?

Nagyteljesítményű mikrovezérlők

Silabs STK3700, Simplicity Studio laborgyakorlat

ELŐADÁS SZÁMÍTÓGÉP MŰKÖDÉSE FIZIKA ÉS INFORMATIKA

Átírás:

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

ARM magok migrációja ARM11 Cortex-A ARM10 ARM9 Cortex-R ARM7 Cortex-M BME-MIT 2016 2.

ARM Cortex-M (Mikrovezérlő) magok o M0, M0+: Ultra low power Nagyon egyszerű 85 mw/mhz o M1: FPGA-ra optimalizált o M3: Általános mikrovezérlő 0,19 mw/mhz Max kb. 180 MHz o M4: DSP utasításokkal kibővített verzió BME-MIT 2016 3.

ARM Cortex-M (Mikrovezérlő) magok BME-MIT 2016 4.

32 bites trendek 2003-2016 Flash [kbyte] M0 M0,M0+ M3, M0 M3 M4, M3 1024 512 256 128 64 32 16 8 4 2 1 0,5 8 14-16 20 28-32-36 40-44-48 64 80-100 144 208 256 lábszám BME-MIT 2016 5.

A Cortex-M3 mag BME-MIT 2016 6.

A Cortex-M3 mag és Cortex-M3 processzor Cortex-M3 mag o ALU o Instruction fetch unit o Regiszterbank Cortex-M3 processzor o Interupt Controller o Debug rendszer o Bus Interconnect Mikrovezérlő o Perifériák o Memória o Órajel források BME-MIT 2016 7.

A Cortex-M3 részletes felépítése BME-MIT 2016 8.

A Cortex-M3 alapok ARMv7M architektúra (Az ARM7 az ARMv4-es architektúrát használta.) Harvard architektúra o Külön utasítás-és adatbusz. Párhuzamos utasítás-és adatfelhozást tesz lehetővé. Thumb-2 utasításkészlet, nincs külön ARM és Thumb mód. o A Thumb2 16 és32bites utasításokat tartalmaz elég nagy kódsűrűséget eredményezve. Egyszerűbb programozó modell, mint az ARM7-nél Nagyobb teljesítményű utasítások BME-MIT 2016 9.

Utasításvégrehajtás és regiszterek BME-MIT 2016 10.

A Cortex-M3 pipeline-ja Háromlépcsős pipeline Branch target forwarding: Bizonyos ugró utasításoknál az execute fázis előtt már megkezdi a végrehajtást a rendszer. o Pl. feltétel nélküli ugrásnál már a decode fázisban értelmezi az új címet. BME-MIT 2016 11.

16 és 32 bites utasítások Nem minden ciklusban kell feltétlenül utasítást felhoznia a magnak. BME-MIT 2016 12.

Pipeline (részletesen) PC = ADR + 4 az utasítás végrehajtásakor (függetlenül attól, hogy 16 bites vagy 32 bites utasítások vannak) Nem minden ciklusban kell feltétlenül utasítást felhoznia a magnak. BME-MIT 2016 13.

A Cortex-M3 programozói modellje Load and Store architektúra o Minden adatot először be kell mozgatni a memóriából a regiszterekbe. Utána lehet műveletet végrehajtani, majd a végén ki kell írni a műveletek eredményét a regiszterből a memóriába. o Semmi különbség az ARM7, ARM9-hez képest. BME-MIT 2016 14.

A Cortex-M3 regiszterei 16 darab 32 bites regiszter Mint az ARM7, ARM9 esetében, itt is: o R13 a stack pointer o R14 a link regiszter (visszatérési cím) o R15 a PC (utasításszámláló, közvetlenül írható olvasható) Az R13 egy bank -olt regiszter, hogy a processzor két stacket használhasson a Process Stack-et és a Main Stack-et. BME-MIT 2016 15.

Extended program status register Az xpsr Nem része a regiszter banknak, csak speciális utasítássokkal kezelhető Van 3 alias regisztere: APSR(Application PSR): Condition code flags(negatív, Carry, Overflow, Saturated math overflow) IPSR(Interrup PSR): Az aktuális megszakítás száma EPSR(Execution PSR), o T: Thumb state, mindig 1, nem lehet törölni. o IF-THEN field Lehetőség van a Thumb2-ben egyszerű IF-THEN blokkokat megvalósítani o Interrupt continuable instruction field PL a Load, Store multiple utasítások nem egy órajel alatt hajtódnak végre A determinikus IT kezeléshez ezeket is meg kell szakítani Ebben a részben tárolja a megszakított Load, Store multiple utasítás következő paraméterét BME-MIT 2016 16.

Egyéb speciális regiszterek PRIMASK: Megszakítástiltás. 1 bites regiszter, ha be van kapcsolva, akkor csak az NMI és a Hardfault kivételek jutnak érvényre. FAULTMASK: Hibajelzéstiltás. 1 bites regiszter, ha be van kapcsolva, akkor csak az NMI és az interruptok váltanak ki megszakítást, a hibák nem. BASEPRI: A megadott érték alatti prioritású IT-ket tiltja. CONTROL: Stack-használat megadása, privilégizált mód megadása BME-MIT 2016 17.

Hozzáférési és működési módok BME-MIT 2016 18.

ARM7 működési módok BME-MIT 2016 19.

A Cortex-M3 hozzáférési módjai A Cortex-M3 kétféle hozzáférési módot specifikál o Privileged működés Nevezik supervizor módnak is. Automatikusan ez aktív reset után. Kivétel vagy interrupt hatására automatikusan ebbe lép a processzor. Minden processzor-erőforráshoz hozzáférést biztosít. o Unprivileged operation Hívják felhasználói hozzáférési módnak is. Korlátozott hozzáférés Néhány utasítástípus letiltva, például az xpsr-t manipulálók. Nem lehet a System Control Space (SCS) regiszterekhez hozzáférni. Ilyen például aznvic (vektoros interrupt-kezelő) és SysTick (Rendszer timer) BME-MIT 2016 20.

A Cortex-M3 működési módjai Egyszerűsített két működési mód o Thread mód: Normál működés Lehet privilegizált vagy nem privilegizált hozzáférésben. Ha átváltja magát nem privilegizáltba, csak a Handler tudja visszaváltani. o Handler mód: Kivételkezelés Interrupt-kezelés Mindig privilegizált végrehajtás BME-MIT 2016 21.

A Cortex-M3 stackjei Main stack o Operációs rendszer és a kivételek részére fenntartva. Process stack o Elsősorban a thread mód számára (A Thread mód használhatja a Main stacket is. Szoftverben választható, hogy a Thread mód a Main vagy a Process stacket használja). A jól különválasztott stack biztosíthatja, hogy az alkalmazás nem tudja kilőni az oprendszert, ez biztonságkritikus rendszereknél nagyon fontos. BME-MIT 2016 22.

Minta a privilégizált mód használatára BME-MIT 2016 23.

Hozzáférési működési módok Operations (privilege out of reset) Stacks (Main out of reset) Handler - An exception is being processed Privileged execution Full control Main Stack Used by OS and Exceptions Thread - No exception is being processed - Normal code is executing Privileged/Unprivileged Main/Process BME-MIT 2016 24.

Utasításkészlet BME-MIT 2016 25.

A Thumb2 utasításkészlet Az ARM7, ARM9 processzorokhoz képest csak egy utasításkészlet a Thumb2. o 26%-kal tömörebb, mint az ARM 32 bites utasításkészlet. o 25%-kal hatékonyabb, mint a hagyományos Thumb. o Hardveres szorzás, osztás. BME-MIT 2016 26.

A Cortex-M3 IF-THEN block Maximum 4 utasítást lehet blokkba zárni. o IT<x><y><z> <cond> <x><y><z>: lehet T:Then, E: else <cond>normál feltételek: EQ: egyenlő, NE: nem egyenlő stb. BME-MIT 2016 27.

A Cortex-M3 IF-THEN block Maximum 4 utasítást lehet blokkba zárni o IT<x><y><z> <cond> <x><y><z>: lehet T:Then, E: else <cond>normál feltételek: EQ: egyenlő, NE: nem egyenlő stb. Ha nem kell végrehajtani a blokkot, akkor NOP ként hajtódnak végre. Segíti a pipe-line kitöltését, nem kell üríteni, újra tölteni az ugrások miatt. BME-MIT 2016 28.

Bitmezőtörlés és -beszúrás Bit Field Clear (BFC), bármely bitmező törölhető. Bit Field Insert (BFI), tetszőleges bitmező beszúrható egy másik regiszterből. BME-MIT 2016 29.

Bitkinyerő utasítások UBFX (zero extend) éssbfx (sign extend) BME-MIT 2016 30.

Egyéb különleges utasítások Bit és byte sorrend felcserélése 64 bites adatok kétregiszteres transzferje o Egy utasításként mozgathatóak. Egy utasításos ugrótábla Előjeles vagy előjel nélküli osztás BME-MIT 2016 31.

Belső perifériák BME-MIT 2016 32.

24 bites lefelé számláló System Timer Egységesített rendszerszámláló a Cortex-M3 core-ra épülő mikrovezérlőkhöz. Rendszer órajelről vagy annak 1/8-áról mehet. Három regiszter o Számláló o Reload o Status: IT engedélyezés Timer konfig, Start stop BME-MIT 2016 33.

24 bites lefelé számláló System Timer Egységesített rendszerszámláló a Cortex-M3 core-ra épülő mikrovezérlőkhöz. o Elsősorban RTOS Heart-beat timer-nek szánták. Rendszer órajelről vagy annak 1/8-áról mehet Három regiszter o Számláló o Reload o Status: IT engedélyezés Timer konfig, Start stop BME-MIT 2016 34.

Cortex-M3 megszakításkezelé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 hardveresen nem támogatta az ún. Nested ITket. (IT-t megszakító IT) A Cortex-M3 megszakításkezelője a fenti korlátokra próbál megoldást adni. BME-MIT 2016 35.

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 Az STM32-n 16 prioritási szint van. o Bár az NVIC processzorfüggetlen, az erőforrás-használat minimalizálása miatt a processzortervezők megszabhatják az 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 STM32 43-at használ. BME-MIT 2016 36.

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 2016 37.

A reset utáni elindulás folyamata BME-MIT 2016 38.

Buszelrendezés BME-MIT 2016 39.

Buszok Neumann architektúra Harvard architektúra CPU Cortec M3 System Bus Idata bus Icode bus DMA DMA Periféria RAM FLASH Periféria RAM RAM FLASH Periféria Periféria BME-MIT 2016 40.

Memóriaelrendezés BME-MIT 2016 41.

A Cortex-M3 memóriatérképe Az ARM7, ARM9-essel ellentétben itt pontosan specifikálva van az egységes memóriatérkép. 4 Gbyte címtartomány o 1 Gbyte Code és SRAM terület 0,5 G Code terület optimalizálva az I-Code busz számára 0,5 G SRAM terület Code lehet az SRAM-ból is végrehajtva (lassabb) o 0,5 Gbyte On chip periféria o 2 Gbyte külső memória és külső egységek o 0,5 Gbyte Cortex regiszterek és mikrovezérlő gyártóspecifikus részek BME-MIT 2016 42.

Előre kiosztott memóriatartományok BME-MIT 2016 43.

Bit banding Direkt bitvezérlés, nincs szükség AND, OR maszkolásra. BME-MIT 2016 44.

Bit band memóriaterületek Az SRAM és a perifériablokk első 1 Mbyte-ja o Nincs szükség többre. BME-MIT 2016 45.

Aligment nélküli memória-hozzáférés ARM7,ARM9 aligned (csak adott címeken kezdődhetnek), Cortex-M+ non-aligned memóriakezelés o Kellemetlenségek (Vektor CCP), kihasználatlan terület (akár 25%) BME-MIT 2016 46.

Egyéb specialitások BME-MIT 2016 47.

Sleep mód Alacsony fogyasztási módok o Processzor inaktív o Az NVIC egy része aktív, így a processzor felébreszthető. Sleep now o WFI utasítás: Wait For Interrupt Power down-ba megy, és egy megszakítás ébreszti fel. o WFE utasítás: Wait For Event Sleep on Exit Periféria megszakítás vonal, ami felébreszti a processzort, de nem kell tényleges IT kiszolgálást csinálni, hanem a főprogram folytatódik. o IT után rögtön visszaalszik megint, takarékos eseményvezérelt működés. Deep Sleep o A Cortex-M3 core jelzi a külső gyártóspecifikus egységeknek, hogy menjenek energiatakarékos módba. Ilyenkor lehet a perifériákat és a PLL-t lekapcsolni. BME-MIT 2016 48.

Debug rendszer BME-MIT 2016 49.

Cortex-M3 összefoglalás BME-MIT 2016 50.

Újdonságok az ARM7 maghoz képest NVIC és IT rendszer (Wake-up interupt kontroller) System Timer Fejlesztett Debug rendszer Memóriatérkép Unaligned adathozzáférés Bit banding BME-MIT 2016 51.

ARM7, Cortex-M3 összehasonlítás BME-MIT 2016 52.

ARM7, Cortex-M3 összehasonlítás BME-MIT 2016 53.