Course syllabus

Kursplan för Maskinorienterad programmering (DAT390)

(https://www.chalmers.se/utbildning/dina-studier/hitta-kurs-och-programplaner/kursplaner/DAT390/)

 

Schema

Schema i TimeEdit.
Observera dock att vissa avvikelser kan förekomma, se föreläsningsschemat.

 

Kontaktuppgifter

Examinator:

Föreläsare:

Laborationsansvarig:

Läsvecka 4-5:

Frågor angående laborationerna i form av examination kontakta examinator ovan. För övriga frågor om laborationerna exempelvis teorifrågor, förberedelse osv utanför sim-pass. Ställ främst din fråga i diskussionsforumet under discussions i menyn till vänster. Vill du inte ställa din fråga "offentligt" kan du maila den till:

Behörighet

Grundläggande behörighet för grundnivå
Sökande med en programregistrering på ett program där kursen ingår i programplanen undantas från ovan krav.

 

Särskild behörighet

Samma behörighet som det kursägande programmet.
Sökande med en programregistrering på ett program där kursen ingår i programplanen undantas från ovan krav.

 

Kursspecifika förkunskaper

En kurs i grundläggande imperativ programmering och en kurs i grundläggande datorteknik

 

Syfte

Kursens syfte ä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 samt för de svårigheter som uppstår vid programmering av händelsestyrda system med flera indatakällor.   

 

Lärandemål (efter fullgjord kurs ska studenten kunna)

Kunskap och förståelse
  • beskriva uppbyggnaden av en enchipsdator
  • beskriva funktion och typisk användning av räknarkretsar, kretsar för parallell och seriell in- och utmatning
  • beskriva och ge exempel på undantag och undantagshantering
  • beskriva hur översättning av C-program till maskinprogram (kompilering, assemblering och länkning) utförs i den använda programutvecklingsmiljön
  • beskriva och förklara datatyper och lagringsklasser i programspråket C samt redogöra för motsvarande konstruktioner i assemblerspråk.
  • beskriva aspekter på hög nivå att tänka på när man designar hårdvara och mjukvara med medvetenhet om jämlikhet, mångfald och inkludering.

Färdigheter och förmåga
  • utnyttja den i kursen använda programutvecklingsmiljön för implementering och test av programkod i C och assemblerspråk
  • skriva enkla maskinorienterade C-program med användande av programspråkets datatyper och styrstrukturer
  • skapa och använda datatyper och lagringsklasser i programspråket C
  • speciellt använda "pekare" för maskinorienterad programmering i C
  • skapa och använda programbibliotek i den använda programutvecklingsmiljön
  • konstruera och använda sammansatta datatyper speciellt för maskinorienterad programmering 
  • översätta uttryck och styrstrukturer givna i programspråket C till instruktionssekvenser i assemblerspråk.

Värdering och förhållningssätt
  • analysera funktioner, skrivna i programspråket C och översätta dessa till assemblerkod
  • analysera enklare subrutiner, skrivna i assemblerspråk, och beskriva dessa i programspråket C
  • konstruera programvara, i C och assemblerspråk, med olika former av in- och utmatning
  • konstruera programvara, i C och assemblerspråk, för system innefattande olika typer av undantag (interna undantag, avbrott, återstart)
  • utnyttja programutvecklingsmiljöns mekanismer för kodförbättring (optimering)
  • utnyttja programutvecklingsmiljöns mekanismer för generering av effektiv och resurssnål maskinkod.

Innehåll

Programutveckling i C och assemblerspråk, test och felsökning. Strukturerad assemblerprogrammering, grunder för kodgenerering. Första nivåns systemprogrammering, dvs. hur datorn programmeras för start från spänningstillslag och hantering av olika typer av undantag så som interna fel, händelser och avbrott.
Programmering av kretsar för parallell in- och utmatning, tidshantering och programmering av räknarkretsar. Grunderna för datorkommunikation och programmering av kretsar för seriekommunikation. 

Organisation

Schemalagd undervisning består av föreläsningar, demonstrationer och handledda simulerings- och kodningsövningar. Dessutom utförs handledda obligatoriska laborationer.
Under kursen konstruerar studenten större och större programblock i assembler och C. Teorin inhämtas genom föreläsningar och demonstrationer. Studenten konstruerar sina program och testar dessa med hjälp av simulatorer under simuleringsövningar och självstudier. Inför laborationer anpassar eleven sina program så att funktionen dessutom kan verifieras i hårdvara. 

Litteratur

Följande kurslitteratur, i tryckt form, används:

Lärobok: Om du redan har en bok om grundläggande C-programmering kan du förmodligen klara dig bra med den. Det finns också åtskilligt med god litteratur om grundläggande C på nätet. Om du planerar att skaffa en ny bok för kursen vill jag gärna framhålla "The C-programming language", Kernighan/Ritchie, ett klassiskt och tidlöst verk.

Lärobok/Arbetsbok: innehåller detaljerade beskrivningar och praktiska övningar för genomförande av laborationsprojekt.

  • "Maskinorienterad Programmering med MD407, Utgåva 6.3, ", Roger Johansson. Finns på Store.

Lärobok (ej nödvändig, går en bra bit utanför kursen, men kan rekommenderas för den intresserade)

  • "The Definitive Guide to ARM® Cortex® -M3 and Cortex-M4 Processors", Third Edition, Joseph Yiu, ARM Ltd, Cambridge, UK. ISBN-13:978-0-12-408082-9.

Utöver ovanstående används material som du kan ladda ner via kursens hemsida, dokument och programdistributioner. Dessutom ges länkar till resurser på Internet, typiskt avseende grundläggande C-programmering.

Program som används i kursen, finns såväl i STUDAT-datorer som i laborationssalar,  men du måste också installera dem på egna datorer du använder för dina distansstudier. Alla sådana programvaror är kostnadsfria.

 

Examination inklusive obligatoriska moment

För att bli godkänd på kursen krävs godkänd skriftlig tentamen samt godkända laborationer. Baserat på tentamensresultatet ges betygen U,3,4 eller 5.

 

Kursens examinator får examinera enstaka studenter på annat sätt än vad som anges ovan om särskilda skäl föreligger, till exempel om en student har ett beslut från Chalmers om pedagogiskt stöd på grund av funktionsnedsättning.

Course summary:

Date Details Due