arm tanfolyam

28
ARM tanfolyam 1. előadás

Upload: amanda-hatfield

Post on 15-Mar-2016

64 views

Category:

Documents


1 download

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

TRANSCRIPT

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!