ARM tanfolyam

Download Report

Transcript ARM tanfolyam

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 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ád

A: 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

M: mikrovezérlős feladatokra

Pipeline

• •

Opcionális: Systick timer MMU

• 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 M3 – ARMv7-M – 3 lépcsős pipeline – Elágazás becslés – Teljes Thumb/Thumb 2 – MPU (opc.) – Garantált IT késleltés (12cikl) – Szorzó • Cortex M4 – ARMv7E-M – DSP utasítások – MPU (opc) – FPU (opc)

Egy CortexM3 MCU felépítése

(LPC17xx) •Buszmátrix •AHB busz •APB busz

Memória térkép

(LPC17xx)

Memória térkép

A 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

CMSIS

Cortex 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!