Maskinorienterad programmering

Relevanta dokument
LEU500-Maskinorienterad programmering LP3-2016/2017

Programmering av inbyggda system 2014/2015

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

Maskinorienterad Programmering LP3-2017/2018

Maskinorienterad Programmering IT2, LP2-2016/2017

Maskinorienterad Programmering LP2-2017/2018

Assemblerprogrammering för ARM del 2

Assemblerprogrammering, ARM-Cortex M4 del 3

Assemblerprogrammering - fördjupning

Assemblerprogrammering för ARM del 1

Assemblerprogrammering för ARM del 1

CE_O3. Nios II. Inför lab nios2time

F5: Högnivåprogrammering

F5: Högnivåprogrammering

Tentamen med lösningsförslag

LEU240 Mikrodatorsystem

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

Översikt Introduktion DST 1. Nicholas Wickström. IDE, Högskolan i Halmstad. N. Wickström

Tentamen med lösningsförslag

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

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

Repetition C-programmering

Digital- och datorteknik

Kursplanering för Mikrodatorteknik 4p/5p

Assemblerprogrammering för ARM del 1

Assemblerprogrammering för ARM del 3

Tentamen i. för D1 m fl, även distanskursen. lördag 19 januari 2013

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

Introduktion C-programmering

Välkommen till. Datastrukturer, algoritmer och programkonstruktion. eller DOA

Objektorienterad Programmering (TDDC77)

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Tentamen med lösningsförslag

Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1. Måndagen den 10 januari 2011,

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Digital- och datorteknik

TDIU01 - Programmering i C++, grundkurs

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

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

Tentamen med lösningsförslag

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

MIKRODATORTEKNIK 2012 INNEHÅLLSFÖRTECKNING

INGENJÖRSHÖGSKOLAN INGENJÖRSHÖGSKOLAN

Tentamen i. Programmering i språket C

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

Programmering av inbyggda system. Kodningskonventioner. Viktor Kämpe

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

GPIO - General Purpose Input Output

Grundläggande datorteknik

Lathund. C för inbyggda system

IS1200 Datorteknik. Övning CE_O4 Maskinnära programmering med C Förberedelser till hemlaboration 1

4. Maskinnära programmering i C. Förberedelser till hemlaboration 1.

Tentamen i Programmering grundkurs och Programmering C

Programmeringsteknik med C och Matlab

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

OOP Objekt-orienterad programmering

Tentamen med lösningsförslag

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

Assemblerprogrammering del 3

Tentamen i Programmering grundkurs och Programmering C

Lathund. C för inbyggda system

#include <pic.h> #include <sys.h> char LEFT,RIGHT,MOTORHASTIGHET;

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Kontrollskrivning Mikrodatorteknik CDT S2-704

Tentamen i Programmering grundkurs och Programmering C

Tentamen i. för D1 m fl, även distanskursen. lördag 26 februari 2011

Tentamen med lösningsförslag

C++ - En introduktion

EDA480/EDA485 - Maskinorienterad programmering, tentamen 2006-xx-xx 1(7)

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.

Lösningar till tentamen i EIT070 Datorteknik

Språket Python - Del 1 Grundkurs i programmering med Python

Skriv i mån av plats dina lösningar direkt i tentamen. Skriv ditt kodnummer längst upp på varje blad.

Övning2. Variabler. Data typer

Tentamen i Programmering grundkurs och Programmering C

Programbibliotek. Ur innehållet: Olika typer av bibliotek Kompilatorbibliotek C-bibliotek Run-time miljö Så skapar du ett nytt bibliotek

Assemblerprogrammering för HCS12

Assemblerprogrammering del 2

Tentamen med lösningsförslag

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

Agenda. Arrayer deklaration, åtkomst Makron Flerdimensionella arrayer Initiering Strängar Funktioner och arrayer. Övningar nu och då

Laboration 4: Knappstuds Drivrutiner för att eliminera störningar.

Datorteknik TSIU02 Lab 2 Morsesändare v0.7

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

Det finns många flaggor till g++,

Maskinorienterad programmering

Enkla datatyper minne

Lathund. Pacific C för MS-DOS

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

*Pekarvärden *Pekarvariabler & *

Programmering, grundkurs

Assemblerprogrammering del 1

Objektorienterad programmering i Java

Övning från förra gången: readword

1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1

DD1310/DD1314/DA3009 Programmeringsteknik LÄRANDEMÅL... Vilka läser kursen? ...FLER LÄRANDEMÅL. Föreläsning 1

Maskinorienterad programmering

Assemblerprogrammering, ARM-Cortex M4 del 1

Föreläsning 2. Operativsystem och programmering

Tentamen med lösningsförslag

Transkript:

Maskinorienterad programmering Sammanfattning Ur innehållet: Vi rekapitulerar kursens syften Vi repeterar kursens lärandemål Vi belyser hur den skriftliga delen av examinationen genomförs. Sammanfattning 1

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. Sammanfattning 2

1. Programutveckling i C och assemblerspråk Kunna utföra programmering i C och assemblerspråk samt kunna: beskriva och tillämpa modularisering med hjälp av funktioner och subrutiner. beskriva och tillämpa parameteröverföring till och från funktioner. beskriva och tillämpa olika metoder för parameteröverföring till och från subrutiner. beskriva och använda olika kontrollstrukturer. beskriva och använda sammansatta datatyper (fält och poster) och enkla datatyper (naturliga tal, heltal och flyttal). Sammanfattning 3

beskriva och tillämpa modularisering med hjälp av funktioner och subrutiner. Funktioners parametrar och returvärden. Lagringsklasser och synlighet. Sammanfattning 4

beskriva och tillämpa olika metoder för parameteröverföring till och från subrutiner. Sammanfattning 5

beskriva och använda olika kontrollstrukturer. Sammanfattning 6

beskriva och använda sammansatta datatyper (fält och poster) och enkla datatyper (naturliga tal, heltal och flyttal). Sammanfattning 7

2. Programutvecklingteknik Att kunna: beskriva översättningsprocessen, dvs. assemblatorns arbetssätt, preprocessorns användning, separatkompilering och länkning. konstruera, redigera och översätta (kompilera och assemblera) program testa, felsöka och rätta programkod med hjälp av avsedda verktyg. Sammanfattning 8

beskriva översättningsprocessen, dvs. assemblatorns arbetssätt, preprocessorns användning, separatkompilering och länkning. Sammanfattning 9

konstruera, redigera och översätta (kompilera och assemblera) program testa, felsöka och rätta programkod med hjälp av avsedda verktyg. Dessa lärandemål har vi kontrollerat under laborationer. Sammanfattning 10

3. Systemprogrammerarens bild Att kunna: beskriva och tillämpa olika principer för överföring mellan centralenhet och kringenheter så som: ovillkorlig eller villkorlig överföring, statustest och rundfrågning. konstruera program för systemstart och med stöd för avbrottshantering från olika typer av kringenheter. beskriva och exemplifiera olika undantagstyper: interna undantag, avbrott och återstart samt prioritetshantering vid undantag. kunna beskriva metoder och mekanismer som är centrala i systemprogramvara så som pseudoparallell exekvering och hantering av processer. beskriva och använda kretsar för tidmätning. beskriva och använda kretsar för parallell respektive seriell överföring. Sammanfattning 11

beskriva och tillämpa olika principer för överföring mellan centralenhet och kringenheter så som: ovillkorlig eller villkorlig överföring, statustest och rundfrågning. Sammanfattning 12

konstruera program för systemstart och med stöd för avbrottshantering från olika typer av kringenheter. Sammanfattning 13

beskriva och exemplifiera olika undantagstyper: interna undantag, avbrott och återstart. Sammanfattning 14

beskriva och tillämpa olika metoder för prioritetshantering vid multipla avbrottskällor (mjukvarubaserad och hårdvarubaserad prioritering, avbrottsmaskering, icke-maskerbara avbrott). Sammanfattning 15

beskriva och använda kretsar för tidmätning. Sammanfattning 16

beskriva och använda kretsar för parallell respektive seriell överföring. Sammanfattning 17

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; } } Sammanfattning 18

Kodningskonventioner Program som kräver källtexter både i C och assemblerspråk... Sammanfattning 19

Pekare och deras användning, programmeringsuppgifter eller kortare frågor. /* memcpy.c C-library function "memcpy" */ #include <string.h> void *memcpy(void *dst, void *src, size_t size) { char *d, char *s, size_t n; if (size <= 0) return(dst); s = (char *) src; d = (char *) dst; if (s <= d && s + (size - 1) >= d) { /* Overlap, must copy right-to-left */ s += size - 1; d += size - 1; for (n = size; n > 0; n--) *d-- = *s--; }else for (n = size; n > 0; n--) *d++ = *s++; return(dst); } Sammanfattning 20

Assemblerprogrammering... Att översätta enklare C-kod till assemblerspråk, med kompilatorkonventioner. Eller från en annan specifikation, text eller flödesdiagram. Sammanfattning 21

Utformning av skriftlig tentamen (max 50 poäng): Uppgifter som är direkt relaterade till laborationerna 2-4 utgör 20-25 poäng Assemblerprogrammering och kodningskonventioner (5-15 poäng): Typiskt att översätta ett C-program till assemblerkod med rätt kompilatorkonventioner Pekare (5-10 poäng) programmeringsuppgift eller en rad kortare uppgifter av frågekaraktär. Maskinorienterad programmering i C (10-15 poäng) En mer omfattande programmeringsuppgift och/eller en rad kortare uppgifter av frågekaraktär. Uppgiftstyperna beskrivna som laborationsuppgifter Uppgiftstyperna beskrivna under lektioner kompletterade med Exempelsamling på hemsidan Exempel på programmeringsuppgifter återfinns i åtskilliga äldre tentamina. Uppgifter med frågekaraktär har behandlats på föreläsningar och/eller övningar och återfinns i presentationsmaterialet. Sammanfattning 22