280 likes | 445 Views
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
E N D
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
Cortex M széria M: mikrovezérlős feladatokra Pipeline Opcionális: • Systick timer • MMU
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ó • Cortex M4 • ARMv7E-M • DSP utasítások • MPU (opc) • FPU (opc) • 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)
Egy CortexM3 MCU felépítése • (LPC17xx) • Buszmátrix • AHB busz • APB busz
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 konfigurálás (STM32F103) Ezen kívül a perifériáknak órajel adás, de azt majd máskor...
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
Kód feltöltése,debug Feltöltés: - Bootloader (CAN, USB, UART) Debuggolás - OpenOCD (FT2232) - Gyártó specifikus eszköz (STLinkV2)