Maskinorienterad Programmering LP2-2017/2018

Relevanta dokument
Maskinorienterad Programmering IT2, LP2-2016/2017

Maskinorienterad Programmering LP3-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

Grundläggande datorteknik

Tentamen med lösningsförslag

Assemblerprogrammering för ARM del 2

Digital- och datorteknik

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

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

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

Assemblerprogrammering för ARM del 1

Kursplanering för Mikrodatorteknik 4p/5p

Digital- och datorteknik

Assemblerprogrammets struktur; exempel

Maskinorienterad Programmering 2010/11

Assemblerprogrammering för ARM del 1

Assemblerprogrammering del 2

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

Assemblerprogrammering del 3

GPIO - General Purpose Input Output

Datorsystemteknik DAV A14 Föreläsning 1

LEU240 Mikrodatorsystem

Datorsystemteknik DAV A14 Föreläsning 1

Assemblerprogrammering för HCS12

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

Maskinorienterad programmering

Programmering i maskinspråk (Maskinassemblering)

Tentamen med lösningsförslag

Digital- och datorteknik

Tentamen med lösningsförslag

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

Assemblerprogrammets. struktur; exempel

Tentamen med lösningsförslag

Tentamen med lösningsförslag

Programmering i maskinspråk (Maskinassemblering)

Maskinorienterad programmering

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

Grundläggande datavetenskap, 4p

Tentamen med lösningsförslag

Assemblerprogrammering - fördjupning

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

Maskinorienterad programmering

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

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

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

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

Assemblerprogrammering för ARM del 3

Maskinorienterad programmering

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

Assemblerprogrammering, ARM-Cortex M4 del 3

Tentamen med lösningsförslag

MIKRODATORTEKNIK 2012 INNEHÅLLSFÖRTECKNING

Maskinorienterad programmering

Tentamen med lösningsförslag

Undervisning. Examination

Tentamen med lösningsförslag

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

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

Kontrollskrivning Mikrodatorteknik CDT S2-704

INGENJÖRSHÖGSKOLAN INGENJÖRSHÖGSKOLAN

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

Programvaruteknik, hp

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

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

OOP Objekt-orienterad programmering

Maskinorienterad programmering

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.

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

Undervisning. Examination

Digital och Datorteknik

Tentamen med lösningsförslag

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

Programmering i C. Vad är C? Målsättning. Litteratur. Jämförelse med Java. Exempel : Ett program som skriver ut texten Hello, world

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

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

Tentamen med lösningsförslag

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

Ny programansvarig och visioner för Datateknik, 300hp

Välkommen till IT-design programmet :-D

INSTITUTIONEN FÖR DATA- OCH INFORMATIONSTEKNIK

Tentamen med lösningsförslag

Tentamen med lösningsförslag

Introduktion till programmering

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

PC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION

Tentamen med lösningsförslag

Tentamen med lösningsförslag

Tentamen. EDA485 Maskinorienterad programmering Z DAT015 Maskinorienterad programmering IT. Tisdag xx yyyy 2006, kl

Programmering, grundkurs

Övningar och datorlaborationer, Datorer i system

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)

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Datorteknik TSIU02 Kursinformation

Transkript:

Maskinorienterad Programmering LP2-2017/2018 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 Datorarkitekturkurser Operativsystem Realtidssystem Datorsystemteknik Datastukturer Datakommunikation Parallellprogrammering Software Engineering Fundamentals Grundläggande datorteknik Objektorienterad programmering (Java) 3

Kurslitteratur Någon lämplig bok om C exempelvis: "Vägen till C", Bilting/Skansholm "C från början", Skansholm, "The C-programming language", Kernighan/Ritchie Bra bok om ARM-processorn vi använder dock EJ obligatorisk... Presentationsmaterial från föreläsningar och övningar Arbetsbok teori och övningar (Cremona) Laborations PM delas ut, även OnLine Quick guide en typ av formelsamling delas ut, får användas vid tentamen. ABSOLUT INGA ANTECKNINGAR I HÄFTET 4

Resurser elektroniska dokument 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 i assemblerprogram (2) Introduktion till maskinnära C, synkronisering och tidmätning (3) Grafisk display och keypad (4) Undantagshantering (5) Applikationsprogrammering 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 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: 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 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 25

Programutveckling i C och assembler 26

Översättning av C och/eller assemblerprogram 27

Kompilatorkonventioner 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