arm tanfolyam
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 PresentationTRANSCRIPT
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
• 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ó
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
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
Kód feltöltése,debug
Feltöltés:- Bootloader (CAN, USB, UART)
Debuggolás- OpenOCD (FT2232)- Gyártó specifikus eszköz (STLinkV2)