Introduktion till ARM Cortex-M4

Relevanta dokument
Maskinorienterad Programmering LP3-2017/2018

Maskinorienterad Programmering IT2, LP2-2016/2017

Maskinorienterad Programmering LP2-2017/2018

Assemblerprogrammering, ARM-Cortex M4 del 1

Assemblerprogrammering för ARM del 1

Assemblerprogrammering för ARM del 1

Assemblerprogrammering för ARM del 1

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

IBM POWER4, den första flerkärniga processorn och dess pipelines.

Datorteknik. Tomas Nordström. Föreläsning 2. För utveckling av verksamhet, produkter och livskvalitet.

TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1

Assemblerprogrammering för ARM del 2

Datorarkitekturer med operativsystem ERIK LARSSON

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär:

Datorarkitekturer med operativsystem ERIK LARSSON

TSEA28 Datorteknik Y (och U)

Datormodell. Datorns uppgifter -Utföra program (instruktioner) Göra beräkningar på data Flytta data Interagera med omvärlden

Närliggande allokering Datorteknik

DEC Alpha instruktions Arkitektur

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

Arm Cortex-A8 Pipeline

Assemblerprogrammering del 2

Datorsystemteknik DAV A14 Föreläsning 1

Datorhistorik. Föreläsning 3 Datorns hårdvara EDSAC. Eniac. I think there is a world market for maybe five computers. Thomas Watson, IBM, 1943

TSEA28 Datorteknik Y (och U)

Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade)

TSEA28 Datorteknik Y (och U)

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

MIKRODATORTEKNIK 2012 INNEHÅLLSFÖRTECKNING

Assemblerprogrammering för ARM del 3

Datorarkitekturer med operativsystem ERIK LARSSON

PC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION

Program Datorteknik. Kontrollenhet. Exekvering av en instruktion. Abstraktionsnivå: Högnivåspråk. Assemblyspråk. Maskinspråk.

Datorteknik ERIK LARSSON

Pipelining i Intel Pentium II

Inledande programmering med C# (1DV402) Introduktion till programmering

Datorarkitekturer med operativsystem ERIK LARSSON

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

Moment 2 Digital elektronik. Föreläsning Inbyggda system, introduktion

Föreläsning 1: Intro till kursen och programmering

Pipeline hos ARM Cortex-A53 och ARM Cortex-A73

Tentamen med lösningsförslag

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Styrenheten styrsignalsekvenser programflödeskontroll

Maskinorienterad programmering

Datorteknik. Tomas Nordström. Föreläsning 3. För utveckling av verksamhet, produkter och livskvalitet.

Digitala System: Datorteknik ERIK LARSSON

Exempeltentamen Datorteknik, EIT070,

Maskinorienterad programmering

General Purpose registers ALU I T H S V N Z C SREG. Antag att vi behöver skriva in talet 25 till register R18

Digitala System: Datorteknik ERIK LARSSON

Program kan beskrivas på olika abstrak3onsnivåer. Högnivåprogram: läsbart (för människor), hög abstrak3onsnivå, enkelt a> porta (fly>a 3ll en annan ar

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer

Tentamen. Datorteknik Y, TSEA28

Maskinorienterad programmering

Lågnivåprogrammering. Föreläsning 2 Lågnivåprogrammering. Binära tal. En enkel modell av datorns inre

Styrteknik: MELSEC FX och numeriska värden

Föreläsning 1: Intro till kursen och programmering

Datorarkitektur I. Tentamen Lördag 10 April Ekonomikum, B:154, klockan 09:00 14:00. Följande gäller: Skrivningstid: Fråga

Tentamen PC-teknik 5 p Lösningar och kommentarer

Digital- och datorteknik

Institutionen för datavetenskap 2014/15

Parallellism i CDC 7600, pipelinens ursprung

Processor pipelining genom historien (Intel i9-intel i7)

Vad bör göras? Steg 1. RISC => pipelining. Parallellism. Pipelining. Nya LDA 13. RISC(reduced instruction set computer) Öka klockfrekvensen

Grunderna i stegkodsprogrammering

IT-GUIDE Version 1.0 Författare: Juha Söderqvist

Utvecklingen från en 8 bitars till en 16 bitars mikroprocessor

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647

TSEA28 Datorteknik Y (och U)

Digital och Datorteknik EDA /2010. EDA Digital och Datorteknik

TSEA28 Datorteknik Y (och U)

TENTAMEN. Datorteknik. D1/E1/Mek1/Ö Hjälpmedel: Häfte" ARM-instruktioner", A4-format, 17 sidor. Maxpoäng: 60p

Grundläggande datavetenskap, 4p

Tentamen den 18 mars svar Datorteknik, EIT070

Tentamen (Exempel) Datorteknik Y, TSEA28

TSEA28 Datorteknik Y (och U)

Random Access Memory. Amare Reda Jenny Holmberg Henrik Kreipke Gaylord Kaya

Arbetsbok för MD407. Göteborg i oktober 2017, Roger Johansson

TENTAMEN. Datorteknik. D1/E1/Mek1/Ö Hjälpmedel: Häfte "ARM-instruktioner", A4-format, 17 sidor. Maxpoäng:

c a OP b Digitalteknik och Datorarkitektur 5hp ALU Design Principle 1 - Simplicity favors regularity add $15, $8, $11

TSEA28 Datorteknik Y (och U)

Tentamen (Exempel) Datorteknik Y, TSEA28

Ext-13 (Ver ) Exempel på RTN-beskrivning av FLEX-instruktioner

Ext-13 (Ver ) Exempel på RTN-beskrivning av FLEX-instruktioner

LABORATION DATORTEKNIK D. Pipelining. Namn och personnummer. Version: (OS,OVA,AN)

Grundläggande programmeringsteknik Datorsystem

TSEA28 Datorteknik Y (och U)

Tentamen (Exempel) Datorteknik Y, TSEA28

F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Datorer i system! Roger Henriksson!

Digital- och datorteknik

Svar till Övning3 Datorteknik, HH vt12 Avbrott och timers

4. Pipelining. 4. Pipelining

Digital- och datorteknik

Pipelining i RISC-processorn. Joakim Lindström Institutionen för informationsbehandling Åbo Akademi E-post: jolindst@abo.fi

Effektivitetsmätning av multitrådning på ARM Cortex-A53 mikroarkitektur

Tentamen den 14 januari 2015 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

Kursupplägg. Examination. Föreläsning 1: Intro till kursen och. Kursmaterial. programmering. Kursboken: Programmera med a multimedia approach

Digital- och datorteknik

Hantering av hazards i multi-pipelines

Transkript:

Introduktion till ARM Cortex-M4 Ur innehållet: Historik - ARM ARM/Thumb instruktionsuppsättning Register Adresseringssätt 1

ARM Tidiga datorer Programmering av inbyggda system 1979 Acorn Computers Acorn System 1 (MOS 6502 ) 1981-1994 BBC micro 8-bitars (MOS6502-processor, 2 MHz) Mer än 1,5 miljon sålda enheter Mer än 1,5 miljon sålda enheter 2

1987 1990 Archimedes 32-bitars (ARM1-processor, 8 MHz) 3

1990 1992 R260 ARM3-processor, 30 MHz 16MB minne 4

1992 Apple Newton ARMv3 arkitektur ARM610 processor 35 000 transistorer 33 MHz 5

1996 RISC arbetsstation StrongARM-processor, 233 MHz 6

1996 1998 Referenskonstruktioner - ingen serieproduktion Fast NC Desklite Acorn Stork Notebook Phoebe http://www.computinghistory.org.uk/ 7

ARM - Licensierad IP En lång rad företag använder i dag ARM-arkitektur på licens i sina produkter: AMD, Applied Micro, Broadcomm, Caldexa, Freescale (numera NXP) Huawei, IBM, Infineon, Intel, Renesas, Rockchip, Samsung, STMicroelectronics Antal miljarder sålda enheter baserade på ARM 1997-2014 8

ARM i dagens konsumentprodukter 9

ARM i Apple iphone (2010) 10

Programmering av inbyggda system Instruktionsuppsättningar ARM 32-bitars instruktioner, alla kan exekveras villkorligt Thumb 1 (1994) Delmängd, 16-bitars instruktioner Thumb 2 (2003) Praktiskt taget alla ARM-instruktioner men ej generellt villkorligt exekverbara, i stället kan IT (If/then-block) skapas Vissa processorer kan exekvera både ARM och Thumb-kod. En bit i statusregistret avgör typ. Vi använder dock en Cortex-M4 som BARA förstår Thumb. 11

Instruktionsgrupper (översikt) Minnesoperationer Load/Store-instruktioner för kommunkation med minne Uttrycksevaluering - aritmetik- och logikinstruktioner 32-bitars addition,subtraktion,multiplikation och division 32 bitars bitvis AND, OR och EOR Storlekskonvertering - ("typkonverteringar") Alla uttrycksevaluering sker med 32-bitars aritmetik, byte- och halfword data måste därför kunna konverteras till 32 bitar Programflödeskontroll Ovillkorligt och villkorligt, compare and branch, table branch Speciella instruktioner move med speciella register, kontrollera avbrottsfunktioner etc. Flyttalsinstruktioner (Vector Floating Point) Speciella instruktioner för flyttal 12

13

Enhetlig assemblersyntax 16- och 32-bitars Thumb-instruktioner kan användas om vartannat. För att undvika problem med val av instruktionsuppsättning används enhetlig syntax assemblatorn väljer i första hand 16-bitars instruktion. EXEMPEL:.syntax unified Om direktivet INTE anges får man felmeddelande om man försöker använda den utökade Thumbinstruktionsuppsättningen 14

ARM Registeruppsättning 15

Adresseringsmetoder Programmering av inbyggda system Namn Syntax Exempel RTN Register direct Rx MOV R0,R1 R0 R1 Direct Symbol LDR R0,symbol R0 M(symbol) Immediate #const MOV R0,#0x15 R0 0x15 Register indirect [Rx] LDR R0,[R1] R0 M(R1).. with offset [Rx,#offset] LDR R0,[R1,#4] R0 M(R1+4).. with pre-increment [Rx,#offset]! LDR R0,[R1,#4]! R1 R1+4, R0 M(R1).. with post-increment [Rx],#offset LDR R0,[R1],#4 R0 M(R1), R1 R1+4.. with register index [Rx,Ri] LDR R0,[R1,R2] R0 M(R1+R2).. with scaled index [Rx,Ri,shift] LDR R0,[R1,R2,LSL #2] R0 M(R1+(R2<<2)) 16