28
ARM tanfolyam 1. előadás

ARM tanfolyam

Embed Size (px)

DESCRIPTION

ARM tanfolyam. 1. előadás. Történeti kitekintés. ARM konzorcium Architektúrákat tervez és licenszel, de nem gyárt NXP, ATMEL, ST, EnergyMicro, TI, Apple … Manapság a 32bites mikrovezérlők több mint 90%-a ARM alapú - Hatékony architektúra Olcsó A buszrendszer jól kidolgozott - PowerPoint PPT Presentation

Citation preview

ARM tanfolyam

1. előadás

Történeti kitekintésARM konzorcium

Architektúrákat tervez és licenszel, de nem gyárt

NXP, ATMEL, ST, EnergyMicro, TI, Apple …

Manapság a 32bites mikrovezérlők több mint 90%-a ARM alapú

- Hatékony architektúra

- Olcsó

- A buszrendszer jól kidolgozott

- Perifériakészlet

- Spec utasításkészletek

Az ARM architektúra

• RISC tulajdonságok– Load/store architektúra– Csak szóhatárhoz illeszkedő(aligned) memória

hozzáférés– Ortogonális utasítások (minden címzési mód

egységes)– Nagy (31x31 bit) regiszterblokkok– Egyszerű 32 bites utasítások– 1 utasítás 1 órajelperiódus (pipeline)

Az ARM architektúra

• Egyedi ARM jellemzők– Utasítások feltételes végrehajthatósága– Megadható hogy az utasítás állítsa-e a flageket– Barrel shifter (1-32bit eltolás)– Sok magasszintű nyelveket támogató címzési mód– Többféle megszakítás típus

ARM családok• ARM7TDMI

– Thumb+Debug+Multiplier+ICE – Thumb utasításkészlet bevezetése (16 bit korlátozásokkal)

• ARM9TDMI/ARM9JE – Jazelle technológia (8 bites Java byte code HW támogatása) – MMU (OS támogatás, linux) – cache (8k/16k)

• ARM11TDMI – Thumb2 utasításkészlet (16 bit és 32 bit vegyesen, korlátozások nélkül) – NEON technológia, SIMD utasítások (DSP migráció, MPEG-4, JPEG) – VFP (Vector Floating Point) lebegőpontos regiszterek,

• ARM CortexM/R/A sorozat

Betűszavak feloldása• Mit tudnak az egyes magok?

– T - Thumb architecture extension – D - Core has debug extensions – M - Core has enhanced multiplier – I - Core has EmbeddedICE Macrocell Extension – E - Core has Enhanced DSP instructions – J - Core has Jazelle Java Byte code HW acceleration – S - synthesiable Core

Cortex családA: Application

- High-end alkalmazások (tablet, mobil, TV stb)- MMU, OS támogatás

R: Real-time- Valósidejű alkalmazások

M: Microcontroller- Low cost, kisebb teljesítményű

Thumb mód• Sokszor az adatbusz 16bit szélességű, ezért

feleslegesek a 32bites operandusok• A kódsűrűség növelése érdekében az utasítások és

az adat bitszáma 16 bitre csökkenthetű• Hátrány: bizonyos utasítások paraméterezhetősége

csökken pl: feltételes utasításvégrehajtás, feltételes ugró utasítások

Thumb-2

• A Thumb mód javítása• Keverten találhatók 16 és 32 bites

utasítások• Csak azon utasítások hosszát csökkentik,

ahol veszteségmentesen megtehető

VFP

• Vector floating point• Egyszeres illetve dupla pontosságú

lebegőpontos számábrázolás• Mobil és Tablet piaci alkalmazások egyre

növekvő számítási igénye követelte meg• Később a NEON technológia váltotta fel

NEON

•DSP jellegű kiegészítés

-SIMD műveletek támogatása

-Kép és videófeldolgozási algoritmusok

•64 és 128 bites kombinált regiszterkészlet

Jazelle• A JAVA bytekód utasításszintű

támogatása• A JAVA virtuális gép részleges hardveres

megvalósítása• Mobil és

PDA piac igényelte

Az előbbi technológiák összefoglalása

AMBA busz hiearchia

Cortex M széria

Pipeline

Opcionális:• Systick timer• MMU

M: mikrovezérlős feladatokra

• Cortex M0– ARMv6-M– 3 lépcsős

pipeline– Hiányos

Thumb és Thumb2 utasításkészlet

– Szorzó

M0+– 2 lépcsős

pipeline– MPU

(opcionális)

• Cortex M4– ARMv7E-M– DSP utasítások– MPU (opc)– FPU (opc)

• Cortex M3– ARMv7-M– 3 lépcsős

pipeline– Elágazás

becslés– Teljes

Thumb/Thumb2

– MPU (opc.)– Garantált IT

késleltés (12cikl)

– Szorzó

Egy CortexM3 MCU felépítése

(LPC17xx)

•Buszmátrix

•AHB busz

•APB busz

Memória térkép (LPC17xx)

Memória térképA kódolás megkezdése előtt ismerni kell!Ezzel lehet kiválasztani hogy milyen mikrovezérlőt raktál a panelba

Órajel előállítás (STM32F103)

Órajel konfigurálás (STM32F103)

Ezen kívül a perifériáknak órajel adás, de azt majd máskor...

GPIO port felépítése (STM32)

GPIO funkciók

Fejlesztőkörnyezet

• ARM-GCC!– Mentor graphics: Codesourcery G++ Lite– Eclipse CDT– Eclipse ARM plugin

• Atollic True Studio (méretkorlát)• KEIL ARM• Crossworks

CMSISCortex Microcontroller Software Interface standard

- Könnyebb használat, és felkonfigurálás- Nagyobb kódméret- Lassabb futás- Hibák lehetnek

CMSIS minták

Kód feltöltése,debug

Feltöltés:- Bootloader (CAN, USB, UART)

Debuggolás- OpenOCD (FT2232)- Gyártó specifikus eszköz (STLinkV2)

Köszönjük a figyelmet!