Maskinorienterad Programmering IT2, LP2-2016/2017

Relevanta dokument
Maskinorienterad Programmering LP3-2017/2018

Maskinorienterad Programmering LP2-2017/2018

Introduktion till ARM Cortex-M4

Maskinorienterad programmering

LEU500-Maskinorienterad programmering LP3-2016/2017

Programmering av inbyggda system 2014/2015

Assemblerprogrammering för ARM del 1

Assemblerprogrammering, ARM-Cortex M4 del 1

Assemblerprogrammering del 1

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

Grundläggande datorteknik

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

Assemblerprogrammering för ARM del 2

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

Tentamen med lösningsförslag

Digital- och datorteknik

Assemblerprogrammets struktur; exempel

Maskinorienterad Programmering 2010/11

Kursplanering för Mikrodatorteknik 4p/5p

Assemblerprogrammering del 2

LEU240 Mikrodatorsystem

Assemblerprogrammering del 3

Assemblerprogrammering för ARM del 1

Digital- och datorteknik

Assemblerprogrammering för HCS12

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

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

Assemblerprogrammering för ARM del 1

Maskinorienterad programmering

Tentamen med lösningsförslag

Assemblerprogrammets. struktur; exempel

Datorsystemteknik DAV A14 Föreläsning 1

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

Tentamen med lösningsförslag

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

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

Datorsystemteknik DAV A14 Föreläsning 1

Assemblerprogrammering - fördjupning

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

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

MIKRODATORTEKNIK 2012 INNEHÅLLSFÖRTECKNING

GPIO - General Purpose Input Output

Grundläggande datavetenskap, 4p

Tentamen med lösningsförslag

Programmering i maskinspråk (Maskinassemblering)

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

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

Programmering i maskinspråk (Maskinassemblering)

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

Tentamen med lösningsförslag

Kontrollskrivning Mikrodatorteknik CDT S2-704

INGENJÖRSHÖGSKOLAN INGENJÖRSHÖGSKOLAN

Digital och Datorteknik

Tentamen med lösningsförslag

I denna laboration undersöker vi hur aritmetiska beräkningar utförs. Vi tittar på olika variabeltyper: 8-bitars, 16-bitars, 32-bitars och flyttal.

Maskinorienterad programmering

Maskinorienterad programmering

EDA451 - Digital och Datorteknik 2010/2011. EDA Digital och Datorteknik 2010/2011

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

Maskinorienterad programmering

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

Assemblerprogrammering, ARM-Cortex M4 del 3

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

Assemblerprogrammering för ARM del 3

Introduktion till programmering

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

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

Maskinorienterad programmering

OOP Objekt-orienterad programmering

Digital- och datorteknik

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

Maskinorienterad programmering

Programmering A. Johan Eliasson

Tentamen med lösningsförslag

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)

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

Tentamen med lösningsförslag

Tentamen med lösningsförslag

Tentamen med lösningsförslag

Programvaruteknik, hp

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

Programmering av inbyggda system. Pekare och Arrayer. Viktor Kämpe

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

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

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

Tentamen med lösningsförslag

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

IT för personligt arbete F6

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

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

Processor pipelining genom historien (Intel i9-intel i7)

INSTITUTIONEN FÖR DATA- OCH INFORMATIONSTEKNIK

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

VHDL och laborationer i digitalteknik

TSEA28 Datorteknik Y (och U)

Tentamen med lösningsförslag

Undervisning. Examination

Datorteknik 1 (AVR 1)

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

Programmering, grundkurs

Transkript:

Maskinorienterad Programmering IT2, LP2-2016/2017 Syften, målsättningar, kurslitteratur och genomförande Översikt av laborationer Introduktion till ARM-processorn och till laborationssystemet 1

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

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

Kurslitteratur 4

Resurser elektroniska dokument Maskinorienterad programmering 5

Resurser programvara 6

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 7

Laborationssystem 8

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) 9

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

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 11

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

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

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

1996 RISC arbetsstation StrongARM-processor, 233 MHz 15

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

ARM - Licensierad IP En lång rad företag använder i dag ARM-arkitektur på licens i sina produkter: Maskinorienterad programmering 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 17

ARM i dagens konsumentprodukter Maskinorienterad programmering 18

ARM i Apple iphone (2010) 19

ARM/Thumb Instruktionsuppsättningar 20

Registeruppsättning och adresseringsmetoder 21

Assemblerprogrammering 22

Assemblerprogrammets struktur; exempel Specifikation Registerallokering Implementering 23

Assemblerspråkets element ALLA textsträngar är context -beroende Mnemonic, ett ord som om det förekommer i instruktionsfältet tolkas som en assemblerinstruktion ur processorns instruktionsuppsättning. Mot varje sådan mnemonic svarar som regel EN maskininstruktion. Assemblerdirektiv, ett direktiv till assemblatorn. Symboler, textsträng. Ska bara förekomma i symbol- eller operand- fälten, I symbolfältet ska dessa alltid avslutas med : (kolon) Direktiv och mnemonics är inte reserverade ord i vanlig bemärkelse utan kan till exempel också användas som symbolnamn 24

Översättning av assemblerprogram Maskinorienterad programmering 25

Programutveckling i C och assembler Maskinorienterad programmering 26

Översättning av C och/eller assemblerprogram 27

Kompilatorkonventioner Maskinorienterad programmering Regler för hur data kommuniceras mellan funktioner, registeranvändning 28

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. 29

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; } } 30