Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion...
Transcript of Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion...
![Page 1: Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion 1. Maskinorienterad Programmering LP3 - 2017/2018. Kursintroduktion. Lars Bengtsson,](https://reader030.fdocument.pub/reader030/viewer/2022020122/5e18f932c6d4a955e63bf2f2/html5/thumbnails/1.jpg)
Maskinorienterad programmering
Kursintroduktion 1
Maskinorienterad Programmering LP3 - 2017/2018
Kursintroduktion
Lars Bengtsson, D&IT
Syften, målsättningar, kurslitteratur och genomförandeÖversikt av laborationerIntroduktion till ARM-processorn och till laborationssystemet
![Page 2: Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion 1. Maskinorienterad Programmering LP3 - 2017/2018. Kursintroduktion. Lars Bengtsson,](https://reader030.fdocument.pub/reader030/viewer/2022020122/5e18f932c6d4a955e63bf2f2/html5/thumbnails/2.jpg)
Maskinorienterad programmering
Kursintroduktion 2
Grundläggande datorteknik
Elektronik-konstruktion
Datorsystem-teknik
Dator-arkitektur-
kurser Operativ-system
Parallell-programmering
Realtids-system
Data-stukturer
Data-kommunikation
Digital konstruktion(VHDL)
Software Engineering
Fundamentals
Ingenjörskompetens och forskningsförberedelse
Maskinorienterad programmering
Objektorienterad programmering (Java)
Formella metoder
Kursens placering i utbildningsutbudet
![Page 3: Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion 1. Maskinorienterad Programmering LP3 - 2017/2018. Kursintroduktion. Lars Bengtsson,](https://reader030.fdocument.pub/reader030/viewer/2022020122/5e18f932c6d4a955e63bf2f2/html5/thumbnails/3.jpg)
Maskinorienterad programmering
Kursintroduktion
Kursens hemsida
kan nås via Ping-Pong ...3
![Page 4: Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion 1. Maskinorienterad Programmering LP3 - 2017/2018. Kursintroduktion. Lars Bengtsson,](https://reader030.fdocument.pub/reader030/viewer/2022020122/5e18f932c6d4a955e63bf2f2/html5/thumbnails/4.jpg)
Maskinorienterad programmering
Kursintroduktion
Kurslitteratur
4
Kokboken/Cremona
![Page 5: Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion 1. Maskinorienterad Programmering LP3 - 2017/2018. Kursintroduktion. Lars Bengtsson,](https://reader030.fdocument.pub/reader030/viewer/2022020122/5e18f932c6d4a955e63bf2f2/html5/thumbnails/5.jpg)
Maskinorienterad programmering
Kursintroduktion
Arbetsboken
5
Kokboken/Cremona
![Page 6: Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion 1. Maskinorienterad Programmering LP3 - 2017/2018. Kursintroduktion. Lars Bengtsson,](https://reader030.fdocument.pub/reader030/viewer/2022020122/5e18f932c6d4a955e63bf2f2/html5/thumbnails/6.jpg)
Maskinorienterad programmering
Kursintroduktion
Resurser – elektroniska dokument
6
![Page 7: Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion 1. Maskinorienterad Programmering LP3 - 2017/2018. Kursintroduktion. Lars Bengtsson,](https://reader030.fdocument.pub/reader030/viewer/2022020122/5e18f932c6d4a955e63bf2f2/html5/thumbnails/7.jpg)
Maskinorienterad programmering
Kursintroduktion
Resurser – programvara
7
![Page 8: Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion 1. Maskinorienterad Programmering LP3 - 2017/2018. Kursintroduktion. Lars Bengtsson,](https://reader030.fdocument.pub/reader030/viewer/2022020122/5e18f932c6d4a955e63bf2f2/html5/thumbnails/8.jpg)
Maskinorienterad programmering
Kursintroduktion
Genomförande
8
Vecka 1 2 3 4 5 6 7 8
Laborationer
Föreläsningar och demonstrationsövningar
Kodnings-/simuleringsövningar
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
![Page 9: Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion 1. Maskinorienterad Programmering LP3 - 2017/2018. Kursintroduktion. Lars Bengtsson,](https://reader030.fdocument.pub/reader030/viewer/2022020122/5e18f932c6d4a955e63bf2f2/html5/thumbnails/9.jpg)
Maskinorienterad programmering
Kursintroduktion
Laborationssystem
9
![Page 10: Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion 1. Maskinorienterad Programmering LP3 - 2017/2018. Kursintroduktion. Lars Bengtsson,](https://reader030.fdocument.pub/reader030/viewer/2022020122/5e18f932c6d4a955e63bf2f2/html5/thumbnails/10.jpg)
Maskinorienterad programmering
Kursintroduktion
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 3ANMÄL ER SENAST ONSDAG LV2 (via kursens hemsida i PingPong)
Inför laborationerna
10
![Page 11: Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion 1. Maskinorienterad Programmering LP3 - 2017/2018. Kursintroduktion. Lars Bengtsson,](https://reader030.fdocument.pub/reader030/viewer/2022020122/5e18f932c6d4a955e63bf2f2/html5/thumbnails/11.jpg)
Maskinorienterad programmering
Kursintroduktion 11
Ur innehållet:En kort historikARM/Thumb, dagens arkitekturUtvecklingssystemet - arbetsredskap...
ETERM8, GCC, GDB och CodeLiteEtt enkelt assemblerprogramEtt enkelt C-program
Introduktion till ARM-processorer
![Page 12: Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion 1. Maskinorienterad Programmering LP3 - 2017/2018. Kursintroduktion. Lars Bengtsson,](https://reader030.fdocument.pub/reader030/viewer/2022020122/5e18f932c6d4a955e63bf2f2/html5/thumbnails/12.jpg)
Maskinorienterad programmering
Kursintroduktion
1979 – ”Acorn Computers”Acorn System 1 (MOS 6502 )
1981-1994 – BBC micro8-bitars (MOS6502-processor, 2 MHz)Mer än 1,5 miljon sålda enheterMer än 1,5 miljon sålda enheter
ARM – Tidiga datorer
12
![Page 13: Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion 1. Maskinorienterad Programmering LP3 - 2017/2018. Kursintroduktion. Lars Bengtsson,](https://reader030.fdocument.pub/reader030/viewer/2022020122/5e18f932c6d4a955e63bf2f2/html5/thumbnails/13.jpg)
Maskinorienterad programmering
Kursintroduktion
1987 – 1990 – Archimedes32-bitars (ARM1-processor, 8 MHz)
13
![Page 14: Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion 1. Maskinorienterad Programmering LP3 - 2017/2018. Kursintroduktion. Lars Bengtsson,](https://reader030.fdocument.pub/reader030/viewer/2022020122/5e18f932c6d4a955e63bf2f2/html5/thumbnails/14.jpg)
Maskinorienterad programmering
Kursintroduktion
1990 – 1992 – R260ARM3-processor, 30 MHz16MB minne
14
![Page 15: Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion 1. Maskinorienterad Programmering LP3 - 2017/2018. Kursintroduktion. Lars Bengtsson,](https://reader030.fdocument.pub/reader030/viewer/2022020122/5e18f932c6d4a955e63bf2f2/html5/thumbnails/15.jpg)
Maskinorienterad programmering
Kursintroduktion
1992 Apple Newton ARMv3 arkitekturARM610 processor
35 000 transistorer33 MHz
15
![Page 16: Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion 1. Maskinorienterad Programmering LP3 - 2017/2018. Kursintroduktion. Lars Bengtsson,](https://reader030.fdocument.pub/reader030/viewer/2022020122/5e18f932c6d4a955e63bf2f2/html5/thumbnails/16.jpg)
Maskinorienterad programmering
Kursintroduktion
1996 – RISC arbetsstation StrongARM-processor, 233 MHz
16
![Page 17: Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion 1. Maskinorienterad Programmering LP3 - 2017/2018. Kursintroduktion. Lars Bengtsson,](https://reader030.fdocument.pub/reader030/viewer/2022020122/5e18f932c6d4a955e63bf2f2/html5/thumbnails/17.jpg)
Maskinorienterad programmering
Kursintroduktion
1996 – 1998 ”Referenskonstruktioner”
- ingen serieproduktion Fast NCDeskliteAcorn Stork NotebookPhoebe
http://www.computinghistory.org.uk/
17
![Page 18: Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion 1. Maskinorienterad Programmering LP3 - 2017/2018. Kursintroduktion. Lars Bengtsson,](https://reader030.fdocument.pub/reader030/viewer/2022020122/5e18f932c6d4a955e63bf2f2/html5/thumbnails/18.jpg)
Maskinorienterad programmering
Kursintroduktion
ARM - Licensierad IPEn 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-201418
![Page 19: Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion 1. Maskinorienterad Programmering LP3 - 2017/2018. Kursintroduktion. Lars Bengtsson,](https://reader030.fdocument.pub/reader030/viewer/2022020122/5e18f932c6d4a955e63bf2f2/html5/thumbnails/19.jpg)
Maskinorienterad programmering
Kursintroduktion
ARM – i dagens konsumentprodukter
19
![Page 20: Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion 1. Maskinorienterad Programmering LP3 - 2017/2018. Kursintroduktion. Lars Bengtsson,](https://reader030.fdocument.pub/reader030/viewer/2022020122/5e18f932c6d4a955e63bf2f2/html5/thumbnails/20.jpg)
Maskinorienterad programmering
Kursintroduktion 21
ARM/Thumb – Instruktionsuppsättningar
![Page 21: Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion 1. Maskinorienterad Programmering LP3 - 2017/2018. Kursintroduktion. Lars Bengtsson,](https://reader030.fdocument.pub/reader030/viewer/2022020122/5e18f932c6d4a955e63bf2f2/html5/thumbnails/21.jpg)
Maskinorienterad programmering
Kursintroduktion 22
Registeruppsättning och adresseringsmetoder
![Page 22: Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion 1. Maskinorienterad Programmering LP3 - 2017/2018. Kursintroduktion. Lars Bengtsson,](https://reader030.fdocument.pub/reader030/viewer/2022020122/5e18f932c6d4a955e63bf2f2/html5/thumbnails/22.jpg)
Maskinorienterad programmering
Kursintroduktion 23
Assemblerprogrammering
![Page 23: Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion 1. Maskinorienterad Programmering LP3 - 2017/2018. Kursintroduktion. Lars Bengtsson,](https://reader030.fdocument.pub/reader030/viewer/2022020122/5e18f932c6d4a955e63bf2f2/html5/thumbnails/23.jpg)
Maskinorienterad programmering
Kursintroduktion 24
Specifikation Registerallokering ImplementeringAssembler-programmets struktur; exempel
![Page 24: Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion 1. Maskinorienterad Programmering LP3 - 2017/2018. Kursintroduktion. Lars Bengtsson,](https://reader030.fdocument.pub/reader030/viewer/2022020122/5e18f932c6d4a955e63bf2f2/html5/thumbnails/24.jpg)
Maskinorienterad programmering
Kursintroduktion 26
Översättning av assemblerprogram
![Page 25: Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion 1. Maskinorienterad Programmering LP3 - 2017/2018. Kursintroduktion. Lars Bengtsson,](https://reader030.fdocument.pub/reader030/viewer/2022020122/5e18f932c6d4a955e63bf2f2/html5/thumbnails/25.jpg)
Maskinorienterad programmering
Kursintroduktion 27
Programutveckling i C och assembler
![Page 26: Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion 1. Maskinorienterad Programmering LP3 - 2017/2018. Kursintroduktion. Lars Bengtsson,](https://reader030.fdocument.pub/reader030/viewer/2022020122/5e18f932c6d4a955e63bf2f2/html5/thumbnails/26.jpg)
Maskinorienterad programmering
Kursintroduktion 28
Översättning av C och/eller assemblerprogram
![Page 27: Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion 1. Maskinorienterad Programmering LP3 - 2017/2018. Kursintroduktion. Lars Bengtsson,](https://reader030.fdocument.pub/reader030/viewer/2022020122/5e18f932c6d4a955e63bf2f2/html5/thumbnails/27.jpg)
Maskinorienterad programmering
Kursintroduktion 29
KompilatorkonventionerRegler för hur data kommuniceras mellan funktioner, registeranvändning
![Page 28: Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion 1. Maskinorienterad Programmering LP3 - 2017/2018. Kursintroduktion. Lars Bengtsson,](https://reader030.fdocument.pub/reader030/viewer/2022020122/5e18f932c6d4a955e63bf2f2/html5/thumbnails/28.jpg)
Maskinorienterad programmering
Kursintroduktion
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ättmedverka 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.
Kursens syften och målsättningar
30
![Page 29: Maskinorienterad Programmering LP3 - 2017/2018 · Maskinorienterad programmering Kursintroduktion 1. Maskinorienterad Programmering LP3 - 2017/2018. Kursintroduktion. Lars Bengtsson,](https://reader030.fdocument.pub/reader030/viewer/2022020122/5e18f932c6d4a955e63bf2f2/html5/thumbnails/29.jpg)
Maskinorienterad programmering
Kursintroduktion
Av speciell vikt: ”maskinorienterad programmering”
31
• 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)
void main(void){
unsigned char c;app_init();while(1){
c = (unsigned char) *(( unsigned char *) 0x40020C11 );c = (c >> 3) & 7;* ( (unsigned char *) 0x40020C14) = c;
}}
asm volatile(" LDR R0,=0x00005555\n" " LDR R1,=0x40020C00\n"" STR R0,[R1]\n") ;