Maskinorienterad Programmering LP3-2017/2018

Relevanta dokument
Maskinorienterad Programmering IT2, LP2-2016/2017

Maskinorienterad Programmering LP2-2017/2018

Introduktion till ARM Cortex-M4

Maskinorienterad programmering

LEU500-Maskinorienterad programmering LP3-2016/2017

Programmering av inbyggda system 2014/2015

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg

Grundläggande datorteknik

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg

Assemblerprogrammering för ARM del 2

Kursplanering för Mikrodatorteknik 4p/5p

Tentamen med lösningsförslag

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg niklas.broberg@chalmers.

2010/2011. Syftet med kursen är att vara en introduktion till konstruktion och programmering av små inbyggda system.

Datorsystemteknik DAV A14 Föreläsning 1

Assemblerprogrammering för ARM del 1

Demonstration och konsultation Arbetsbokens avsnitt 5 och 6 LCD Grafisk display Introduktion till laboration 3

Assemblerprogrammering del 3

Assemblerprogrammering för ARM del 1

Datorsystemteknik DAV A14 Föreläsning 1

Maskinorienterad programmering

Assemblerprogrammering för ARM del 1

Grundläggande C-programmering del 2 Pekare och Arrayer. Ulf Assarsson

GPIO - General Purpose Input Output

Digital och Datorteknik

Assemblerprogrammering, ARM-Cortex M4 del 1

INGENJÖRSHÖGSKOLAN INGENJÖRSHÖGSKOLAN

Assemblerprogrammering del 1

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

Grundläggande C-programmering del 2 Pekare och Arrayer. Ulf Assarsson

Maskinorienterad programmering

Maskinorienterad programmering

Digital- och datorteknik

Ulf Assarsson. Grundläggande C-programmering del 2 Pekare och Arrayer. Läromoment:

LEU240 Mikrodatorsystem

Maskinorienterad programmering

Assemblerprogrammering för ARM del 3

Tentamen med lösningsförslag

INSTITUTIONEN FÖR DATA- OCH INFORMATIONSTEKNIK

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)

Maskinorienterad programmering

Tentamen med lösningsförslag

Assemblerprogrammering - fördjupning

Assemblerprogrammering del 2

Vad är en dator? Introduktion till datorer och nätverk. Pontus Haglund Institutionen för datavetenskap (IDA) 21 augusti 2018

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

MIKRODATORTEKNIK 2012 INNEHÅLLSFÖRTECKNING

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

Assemblerprogrammering, ARM-Cortex M4 del 3

Demonstration och konsultation Arbetsbokens avsnitt 7 Händelsestyrt processbyte Förberedande inför laboration 4

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

Digital- och datorteknik

Grundläggande datavetenskap, 4p

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID

Maskinorienterad programmering

Tentamen med lösningsförslag

Grundläggande datavetenskap 4p

OOP Objekt-orienterad programmering

Programvaruteknik, hp

Tentamen med lösningsförslag

Utbildningsplan för. Software Engineering, 180 högskolepoäng

Programmering, grundkurs

Inledande programmering med C# (1DV402) Introduktion till. eller så här är det tänkt att fungera.

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Ansvarig lärare: Olof Andersson, Telefon (besöker skrivsalen)

Ny programansvarig och visioner för Datateknik, 300hp

Seriekommunikation. Ur innehållet: Nätverkstopologier Nätverksprotokoll Asynkron/synkron seriell överföring Programmering av USART-krets

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

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

Programutveckling med Java 7.5 p, ht 2007 (D0019N) STUDIEHANDLEDNING - ALLMÄN INFORMATION

VHDL och laborationer i digitalteknik

Programmering av inbyggda system

Digital- och datorteknik, , Per Larsson-Edefors Sida 1

Processor pipelining genom historien (Intel i9-intel i7)

Undervisning. Examination

OOP F1:1. Föreläsning 1. Introduktion till kursen OOP Vad är Java? Ett första Java-program Variabler Tilldelning. Marie Olsson

Datorteknik TSIU02 Kursinformation

Introduktion till programmering

Digital- och datorteknik

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

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

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

Föreläsning 2. Operativsystem och programmering

Datorteknik TSIU02 Lab 2 Morsesändare v0.7

Datorteknik 1 (AVR 1)

Enkla datatyper minne

Dig o Dat. Digital och Datorteknik. Kursens mål: Digital teknik Dator teknik. Dig o Dat = DoD

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

Objektorienterad Programmering (TDDC77)

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

Teknikprogrammet, inriktning informations- och medieteknik

Arbetsbok för MD407 (Läsprov) Roger Johansson

Dig o Dat. Digital och Datorteknik. Kursens mål: Digital teknik Dator teknik. Dig o Dat = DoD

Tentamen med lösningsförslag

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

'HOWHQWDPHQ 6\VWHPNRQVWUXNWLRQ

Välkommen till IT-design programmet :-D

Att välja kurser på Datateknik år 4-5

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

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

Transkript:

Maskinorienterad Programmering LP3-2017/2018 Lars Bengtsson, D&IT Syften, målsättningar, kurslitteratur och genomförande Översikt av laborationer Introduktion till ARM-processorn och till laborationssystemet 1

Kursens placering i utbildningsutbudet Ingenjörskompetens och forskningsförberedelse Formella metoder Datorarkitekturkurser Operativsystem Realtidssystem Elektronikkonstruktion Datorsystemteknik Datastukturer Datakommunikation Parallellprogrammering Software Engineering Fundamentals Digital konstruktion (VHDL) Objektorienterad programmering (Java) Grundläggande datorteknik 2

Kursens hemsida kan nås via Ping-Pong... 3

Kurslitteratur Kokboken/Cremona 4

Arbetsboken Kokboken/Cremona 5

Resurser elektroniska dokument 6

Resurser programvara 7

Genomförande Laborationer Kodnings-/simuleringsövningar Föreläsningar och demonstrationsövningar Vecka 1 2 3 4 5 6 7 8 Laborationsöversikt (1) Terminalövning: test och felavhjälpning (2) Maskinnära C, synkronisering och tidmätning (3) Periferikretsar och andra objekt (4) Undantagshantering (5) Spelprogrammering 8

Laborationssystem 9

Inför laborationerna Laborationerna måste vara väl förberedda innan laborationstillfället Utveckling och test görs med simulatorer Använd kodnings-/simuleringsövningar och hemarbete för förberedelserna CodeLite, GCC, ETERM8 och SimServer finns på kursens resurssida, hämta och installera omgående OBS: Laborationerna börjar i läsvecka 3 ANMÄL ER SENAST ONSDAG LV2 (via kursens hemsida i PingPong) 10

Introduktion till ARM-processorer Ur innehållet: En kort historik ARM/Thumb, dagens arkitektur Utvecklingssystemet - arbetsredskap... ETERM8, GCC, GDB och CodeLite Ett enkelt assemblerprogram Ett enkelt C-program 11

ARM Tidiga datorer 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 12

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

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

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

1996 RISC arbetsstation StrongARM-processor, 233 MHz 16

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

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 18

ARM i dagens konsumentprodukter 19

ARM/Thumb Instruktionsuppsättningar 21

Registeruppsättning och adresseringsmetoder 22

Assemblerprogrammering 23

Assemblerprogrammets struktur; exempel Specifikation Registerallokering Implementering 24

Översättning av assemblerprogram 26

Programutveckling i C och assembler 27

Översättning av C och/eller assemblerprogram 28

Kompilatorkonventioner Regler för hur data kommuniceras mellan funktioner, registeranvändning 29

Kursens syften och målsättningar Kursens syften är att vara en introduktion till konstruktion av små inbyggda system och att ge en förståelse för hur imperativa styrstrukturer översätts till assembler att ge en förståelse för de svårigheter som uppstår vid programmering av händelsestyrda system med flera indatakällor. Centrala målsättningar är att kunna: skriva enkla C-program med användande av programspråkets datatyper och styrstrukturer beskriva motsvarigheten i assembler till typiska programstrukturer i C. utnyttja de i kursen använda verktygen för programutveckling på ett adekvat sätt medverka vid konstruktion och programmering av enkla inbyggda system med givna komponenter konstruera system innefattande olika typer av undantag (interna undantag, avbrott, återstart) beskriva och exemplifiera några olika typer av digitala kringkomponenter och deras användning. 30

Av speciell vikt: maskinorienterad programmering Läsa/skriva på fasta adresser (portar) Datatyper, storlek (8,16 eller 32 bitar...) Heltalstyper, med eller utan tecken, vad innebär typkonverteringarna? Bitoperationer &,, ^ (AND, OR, XOR) Skiftoperationer <<, >> (vänster, höger) asm volatile( " LDR R0,=0x00005555\n" " LDR R1,=0x40020C00\n" " STR R0,[R1]\n" ) ; void main(void) { unsigned char c; app_init(); while(1){ c = (unsigned char) *(( unsigned char *) 0x40020C11 ); c = (c >> 3) & 7; * ( (unsigned char *) 0x40020C14) = c; } } 31