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

Maskinorienterad Programmering IT2, LP2 - 2016/2017

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Maskinorienterad Programmering IT2, LP2 - 2016/2017

Maskinorienterad programmering

Kursintroduktion 1

Maskinorienterad Programmering IT2, LP2 - 2016/2017

KursintroduktionSyften, målsättningar, kurslitteratur och genomförande

Översikt av laborationerIntroduktion till ARM-processorn och till laborationssystemet

Page 2: Maskinorienterad Programmering IT2, LP2 - 2016/2017

Maskinorienterad programmering

Kursintroduktion

Kursens hemsida

kan nås via Ping-Pong ...

2

Page 3: Maskinorienterad Programmering IT2, LP2 - 2016/2017

Maskinorienterad programmering

Kursintroduktion 3

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 4: Maskinorienterad Programmering IT2, LP2 - 2016/2017

Maskinorienterad programmering

Kursintroduktion

Kurslitteratur

4

Page 5: Maskinorienterad Programmering IT2, LP2 - 2016/2017

Maskinorienterad programmering

Kursintroduktion

Resurser – elektroniska dokument

5

Page 6: Maskinorienterad Programmering IT2, LP2 - 2016/2017

Maskinorienterad programmering

Kursintroduktion

Resurser – programvara

6

Page 7: Maskinorienterad Programmering IT2, LP2 - 2016/2017

Maskinorienterad programmering

Kursintroduktion

Genomförande

7

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 8: Maskinorienterad Programmering IT2, LP2 - 2016/2017

Maskinorienterad programmering

Kursintroduktion

Laborationssystem

8

Page 9: Maskinorienterad Programmering IT2, LP2 - 2016/2017

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

Inför laborationerna

9

Page 10: Maskinorienterad Programmering IT2, LP2 - 2016/2017

Maskinorienterad programmering

Kursintroduktion 10

Ur innehållet:En kort historikARM/Thumb, dagens arkitekturUtvecklingssystemet - arbetsredskap...

ETERM8, GCC, GDB och CodLite

Ett enkelt assemblerprogramEtt enkelt C-program

Introduktion till ARM-processorer

Page 11: Maskinorienterad Programmering IT2, LP2 - 2016/2017

Maskinorienterad programmering

Kursintroduktion

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

ARM – Tidiga datorer

11

Page 12: Maskinorienterad Programmering IT2, LP2 - 2016/2017

Maskinorienterad programmering

Kursintroduktion

1987 – 1990 – Archimedes

32-bitars (ARM1-processor, 8 MHz)

12

Page 13: Maskinorienterad Programmering IT2, LP2 - 2016/2017

Maskinorienterad programmering

Kursintroduktion

1990 – 1992 – R260

ARM3-processor, 30 MHz

16MB minne

13

Page 14: Maskinorienterad Programmering IT2, LP2 - 2016/2017

Maskinorienterad programmering

Kursintroduktion

1992 Apple Newton

ARMv3 arkitektur

ARM610 processor

35 000 transistorer

33 MHz

14

Page 15: Maskinorienterad Programmering IT2, LP2 - 2016/2017

Maskinorienterad programmering

Kursintroduktion

1996 – RISC arbetsstation

StrongARM-processor, 233 MHz

15

Page 16: Maskinorienterad Programmering IT2, LP2 - 2016/2017

Maskinorienterad programmering

Kursintroduktion

1996 – 1998 ”Referenskonstruktioner”

- ingen serieproduktion

Fast NC

Desklite

Acorn Stork Notebook

Phoebe

http://www.computinghistory.org.uk/

16

Page 17: Maskinorienterad Programmering IT2, LP2 - 2016/2017

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-2014

17

Page 18: Maskinorienterad Programmering IT2, LP2 - 2016/2017

Maskinorienterad programmering

Kursintroduktion

ARM – i dagens konsumentprodukter

18

Page 19: Maskinorienterad Programmering IT2, LP2 - 2016/2017

Maskinorienterad programmering

Kursintroduktion

ARM – i Apple iPhone (2010)

19

Page 20: Maskinorienterad Programmering IT2, LP2 - 2016/2017

Maskinorienterad programmering

Kursintroduktion 20

ARM/Thumb – Instruktionsuppsättningar

Page 21: Maskinorienterad Programmering IT2, LP2 - 2016/2017

Maskinorienterad programmering

Kursintroduktion 21

Registeruppsättning och adresseringsmetoder

Page 22: Maskinorienterad Programmering IT2, LP2 - 2016/2017

Maskinorienterad programmering

Kursintroduktion 22

Assemblerprogrammering

Page 23: Maskinorienterad Programmering IT2, LP2 - 2016/2017

Maskinorienterad programmering

Kursintroduktion 23

Specifikation Registerallokering ImplementeringAssembler-

programmets

struktur;

exempel

Page 24: Maskinorienterad Programmering IT2, LP2 - 2016/2017

Maskinorienterad programmering

Kursintroduktion 24

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

Page 25: Maskinorienterad Programmering IT2, LP2 - 2016/2017

Maskinorienterad programmering

Kursintroduktion 25

Översättning av assemblerprogram

Page 26: Maskinorienterad Programmering IT2, LP2 - 2016/2017

Maskinorienterad programmering

Kursintroduktion 26

Programutveckling i C och assembler

Page 27: Maskinorienterad Programmering IT2, LP2 - 2016/2017

Maskinorienterad programmering

Kursintroduktion 27

Översättning av C och/eller assemblerprogram

Page 28: Maskinorienterad Programmering IT2, LP2 - 2016/2017

Maskinorienterad programmering

Kursintroduktion 28

Kompilatorkonventioner

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

Page 29: Maskinorienterad Programmering IT2, LP2 - 2016/2017

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

Kursens syften och målsättningar

29

Page 30: Maskinorienterad Programmering IT2, LP2 - 2016/2017

Maskinorienterad programmering

Kursintroduktion

Av speciell vikt: ”maskinorienterad programmering”

30

• 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"

) ;