Kurs PM,

DAT016 Programmering av inbyggda system (IT)

DIT152 Programmering av inbyggda system (GU)

 

 

LP2, 2014/14

Innehåll:

            Kursens syften och lärandemål

            Personal och kursnämndsrepresentanter

            Kurslitteratur

            Ändringar sedan föregående kurstillfälle

            Examination

            Schema med veckoplanering

 

Kursens syften, innehåll och lärandemål:

 

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.

 

Kursen innehåller moment som låter eleven konstruera större och större programblock i assembler och C. Resultatet blir ett "tidsdelningssystem" för två parallella processer. Processerna styr en borrmaskin och en sifferindikator för tid- och temperaturvisning.

Första delen av kursen koncentreras kring programutveckling i assemblerspråk. Därefter inhämtas grunderna för programmering i C. Slutligen kombineras programutveckling i C och assembler.

I pedagogiskt syfte används en enkel borrmaskin och traditionella in- utmatningsenheter som tangentbord och sifferindikatorer. Utrustningen används tillsammans med en mikrodator (68HC12). Allt finns tillgängligt både i form av maskinvara och som enheter i en simulator. Utrustningen används både för C- och assemblerprogrammering.

 

Efter fullgjord kurs ska studenten kunna

·         skriva enkla assemblerprogram med användande av den valda arkitekturens instruktionsuppsättning.

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

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

 

Personal:

Kursansvarig: Roger Johansson (roger AT chalmers.se)

Övriga lärare: Ulf Assarsson (uffe AT chalmers.se), Viktor Kämpe (kampe AT chalmers.se)

Studieexpedition: DoIT, plan 4 i E-huset, ingång från Maskingränd.

 

Kursnämndsrepresentanter:

FRANCINE MÄKELÄ  francine(at)student.chalmers.se

NIKLAS TEGNANDER  nikteg(at)student.chalmers.se

HENRY YANG  henryy(at)student.chalmers.se

CHRISTOPHER ÅKERSTEN chraker(at)student.chalmers.se

Kursmaterial/Kurslitteratur:

 

Program (Windows) som används i kursen, finns såväl i STUDAT-datorer som i laborationssalar, du rekommenderas också installera dem på egna datorer du använder för dina studier.

Följande kurslitteratur används, observera att övervägande delen är på elektronisk form:

·         Lärobok: Välj mellan att använda någon av följande:

o   Vägen till C, Bilting/Skansholm, studentlitteratur ISBN 978-91-44-07606-5, bokens hemsida. Finns på Cremona.

o   The C-programming language, Kernighan/Ritchie, finns inte längre i tryckt form, men som PDF.

·         Utdrag ur lärobok: Maskinnära programmering med HC12, Johansson, som PDF.

·         Arbetsbok: Arbetsbok för MC12, Johansson/Snedsböl, finns på DC.

·         Exempelsamling: Maskinnära programmering - exempelsamling  (Inst. för D&IT, 2014, PDF)

·         Laborations PM: Programmering av inbyggda system – laborationer för IT  (Inst. för D&IT, 2014, PDF) – Tryckt version tillhandahålls kostnadsfritt för kursdeltagarna.

·         Inlämningsuppgift: Goldbach hypotes – utförs som hemuppgift inför laboration 4. (Inst. för D&IT, 2014, PDF)

·         Instruktionslista: HCS12 Reference guide - Tryckt version får användas under tentamen, som PDF

·         Quick guide: C-reference card ANSI - Tryckt version får användas under tentamen, som PDF.

Se även ”resurssidan” – för programdistributioner och ytterligare material på elektronisk form.

 

Ändringar sedan förra kurstillfället:

Detta är en utveckling av den tidigare kursen ”Maskinorienterad programmering”. Mindre ändringar har gjorts i kursinnehållet.

 

Examination:

Laborationsmoment:
·         Under laborationen  utför studenten de förberedda uppgifterna och redovisar också sina resultat för en handledare som godkänner studenten på laborationsmomentet. Laborationsmomenten bedöms U eller G.
 
Tentamen
·         Skriftlig tentamen, baserat på tentamensresultatet ges betygen U, 3, 4 eller 5. Resultatet från tentamen gäller som slutbetyg på kursen.

 


Schema:

FL: Föreläsning

ÖV: Demonstrationsövning

KS: Kodnings och simuleringsövning

LAB: Laboration

 

LV1(4514)

 

Tid

Plats

Lektion

Behandlar

Läsanvisning

Må 3/11
15.15-17.00

HC2

FL1
RoJ

Kursintroduktion,
översikt av MC68HCS12

Maskinnära programmering med HC12
Arbetsbok (kapitel 1)
PIS-Introduktion.pdf
PIS-MC68HCS12.pdf

Ti 4/11
13.15-15.00

HC1

FL2
RoJ

Assemblerprogrammering för MC68HCS12

Maskinnära programmering med HC12, 3-42
PIS-Assemblerprogrammering_intro.pdf

On 5/11
10.00-11.45

HC1

ÖV1
VK

Programutveckling i assemblerspråk

rinnandeLjus.s12
delay.s12

To 6/11
10.00-11.45

ED4220

KS1

Grupp A: Inledande övningar med simulator

Obs, KURSLABORATORIET

To 6/11
13.15-15.00

ED4220

KS1

Grupp B: Inledande övningar med simulator

Obs, KURSLABORATORIET

Följande uppgifter föreslås dessutom som självverksamhet under vecka 1:

Arbetsbok för MC12:

           Kapitel 1 (uppgifter 1-38)

Exempelsamling:

            1.1-1.8

Veckans tema:

Grundläggande assemblerprogrammering för HC12, in- utmatning, subrutiner.

 

Målsättningar, att efter läsvecka 1 kunna:

        konstruera, assemblera och testa enklare programsekvenser skrivna i assemblerspråk, dvs. använda ETERM6.

Detta betyder exempelvis att man ska kunna

– skriva rutiner som utnyttjar minnesadresserad in- och utmatning.

– utföra enkel testning programsekvenser i assemblerspråk.

 


 

LV2(4614)

 

Tid

Plats

Lektion

Behandlar

Läsanvisning

Må 10/11
10.00-11.45

ED4220

KS1

Grupp C: Inledande övningar med simulator

Obs, KURSLABORATORIET

Må 10/11
15.15-17.00

HC2

Reserv

ingen lektion

 

Ti 11/11
13.15-15.00

HC1

FL3
RoJ

Synkronisering i realtid, avbrott och undantagshantering

Arbetsbok: kapitel 3

Maskinnära programmering för HC12, 43-48
PIS-Synkronisering_Undantag.pdf

On 12/11
10.00-11.45

HC1

FL4
RoJ

Genomgång av Laborationsprojekt

Arbetsbok: kapitel 4

Laborations-PM
PIS-Laborationer.pdf

Fr 14/11
13.15-15.00

ES61

KS2

Grupp A Övningar inför laboration 1

Arbetsbok: kapitel 4
Laborations-PM
PIS-Laborationer.pdf

Obligatoriska förberedelser inför laboration 1, se även Lab PM:

Arbetsbok för MC12:

            39-43, 71-81

Följande uppgifter föreslås dessutom som självverksamhet under vecka 2:

Exempelsamling:

            1.9-1.11

Veckans tema:

Grundläggande assemblerprogrammering för HC12, styrstrukturer, parameteröverföring och returvärden.

 

Målsättningar, att efter läsvecka 2 kunna:

·         konstruera, assemblera och testa program i assemblerspråk.

Detta betyder exempelvis att man ska kunna

– beskriva assemblermönster som motsvarar for-, while-, if- och switch-satser.

– beskriva assemblermönster som motsvarar iteration över ett fält.

– beskriva assemblermönster som motsvarar funktions- och subrutinanrop.

– utnyttja standardmönster för att programmera styrstrukturer som iteration och val.

– utnyttja standardmönster för subrutiner, inklusive parameteröverföring.

– utföra testning av funktioner, subrutiner och program i assemblerspråk.

– beskriva olika principer för överföring mellan centralenhet och kringenheter, såsom pollning och avbrottsstyrning.

och att:

·         ha förberett laboration 1

 

 

 


 

LV3(4714)

 

Tid

Plats

Lektion

Behandlar

Läsanvisning/uppgifter

Må 17/11
8.00-11.45

ED4220

LAB1

Grupp A, Laboration 1

Laborationsuppgifterna ska vara väl förberedda

Må 17/11
10.00-11.45

ES63

KS2

Grupp B Övningar inför laboration 1

Arbetsbok: kapitel 4
Laborations-PM
PIS-Laborationer.pdf

Må 17/11
15.15-17.00

HC2

ÖV2
VK

Programutveckling i assemblerspråk, avbrott och undantag

PIS-ovning2.pdf

irq4.s12

RoundRobinEmpty.s12

Ti 18/11
8.00-11.45

ED4220

LAB1

Grupp B, Laboration 1

Laborationsuppgifterna ska vara väl förberedda

Ti 18/11
13.15-15.00

HC1

FL5
UA

Inledande C, satser, program-flödeskontroll, funktioner och programstruktur

PIS-intro_C-programmering.pdf

On 19/11
15.15-17.00

ES61

KS2

Grupp C Övningar inför laboration 1

Arbetsbok: kapitel 4
Laborations-PM
PIS-Laborationer.pdf

To 20/11
8.00-11.45

ED4220

LAB1

Grupp C, Laboration 1

Laborationsuppgifterna ska vara väl förberedda

To 20/11
13.15-17.00

ED4220

LAB1

Grupp D, Laboration 1

Laborationsuppgifterna ska vara väl förberedda

Fr 21/11
13.15-15.00

ES61

KS3

Grupp A Övningar inför laboration 2

Arbetsbok: kapitel 4
Laborations-PM

Obligatoriska förberedelser inför laboration 2, se även Lab PM:

Arbetsbok för MC12:

            82-101

Veckans tema:

Assemblerprogrammering för HC12, introduktion till laborationssystemet.

 

Målsättningar, att:

·         ha utfört laboration 1

·         ha förberett laboration 2

 


 

LV4(4814)

 

Tid

Plats

Lektion

Behandlar

Läsanvisning/uppgifter

Må 24/11
8.00-11.45

ED4220

LAB2

Grupp A, Laboration 2

Laborationsuppgifterna ska vara väl förberedda

 

Må 24/11

10.00-11.45

ES63

KS3

Grupp B Övningar inför laboration 2

Arbetsbok: kapitel 4
Laborations-PM

 

Må 24/11

15.15-17.00

HC2

ÖV3

VK

Inledande C och enkla exempel med pekare

 

Ti 25/11
8.00-11.45

ED4220

LAB2

Grupp B, Laboration 2

Laborationsuppgifterna ska vara väl förberedda

 

Ti 25/11
13.15-15.00

HC1

FL6
UA

Pekare och fält

PekareOchFalt.pdf

On 26/11
10.00-11.45

HC1

ÖV4

VK

Pekare och fält

On 26/11
15.15-17.00

ES61

KS3

Grupp C Övningar inför laboration 2

Arbetsbok: kapitel 4
Laborations-PM

To 27/11
8.00-11.45

ED4220

LAB2

Grupp C, Laboration 2

Laborationsuppgifterna ska vara väl förberedda

To 27/11
13.15-17.00

ED4220

LAB2

Grupp D, Laboration 2

Laborationsuppgifterna ska vara väl förberedda

Fr 28/11
13.15-15.00

ES61

KS4

Grupp A Övningar inför laboration 3

Arbetsbok: kapitel 3
Laborations-PM

Obligatoriska förberedelser inför laboration 3, se speciellt Lab PM.

Arbetsbok för MC12:

            65-67

 

Veckans tema:

Assemblerprogrammering för HC12, avbrottshantering

 

Målsättningar, att efter läsvecka 4 kunna:

·         konstruera system innefattande olika typer av undantag (interna undantag, avbrott, återstart).

Detta betyder exempelvis att man ska kunna

– beskriva och exemplifiera de olika typerna av undantag.

– skriva program för systemstart, inklusive återstart.

– skriva enkla avbrottsrutiner för digitala komponenter.

– beskriva och tillämpa olika metoder för prioritetshantering vid multipla avbrottskällor

(mjukvaru- och hårdvarubaserad prioritering, avbrottsmaskering, icke maskerbara avbrott).

och att:

·         ha utfört laboration 2

·         ha förberett laboration 3

 

 


 

LV5(4914)

 

Tid

Plats

Lektion

Behandlar

Läsanvisning/uppgifter

Må 1/12
8.00-11.45

ED4220

LAB3

Grupp A, Laboration 3

Laborationsuppgifterna ska vara väl förberedda

Må 1/12

10.00-11.45

ES63

KS4

Grupp B Övningar inför laboration 3

Arbetsbok: kapitel 3
Laborations-PM

Må 1/12

15.15-17.00

HC2

FL7

UA

Pekare, listor och absolutadressering

PIS-pekareForts.pdf

Ti 2/12
8.00-11.45

ED4220

LAB3

Grupp B, Laboration 3

Laborationsuppgifterna ska vara väl förberedda

Ti 2/12
13.15-15.00

HC1

ÖV5
VK

Pekare, listor och absolutadressering

list.c

On 3/12
15.15-17.00

ES61

KS4

Grupp C Övningar inför laboration 3

Arbetsbok: kapitel 3
Laborations-PM

To 4/12
8.00-11.45

ED4220

LAB3

Grupp C, Laboration 3

Laborationsuppgifterna ska vara väl förberedda

To 4/12
13.15-17.00

ED4220

LAB3

Grupp D, Laboration 3

Laborationsuppgifterna ska vara väl förberedda

Fr 5/12
13.15-15.00

ES61

KS5

Grupp A Övningar inför laboration 4

Laborations-PM

Obligatoriska förberedelser inför laboration 4, se speciellt Lab PM.

            Inlämningsuppgift: ”Goldbach hypotes”

 

Veckans tema:

Inledande C-programmering, pekare

 

Målsättningar, att efter läsvecka 5 kunna:

·         skriva enkla C-program med användande av programspråkets datatyper och styrstrukturer.

Detta betyder att man till exempel ska kunna

– strukturera program med hjälp av funktioner och subrutiner, med lämpliga val av parametrar och resultattyp, samt utnyttja styrstrukturer som for-, while, if- och switchsatser på ett strukturerat sätt.

– utnyttja sammansatta datatyper som fält och poster samt använda sig av standardmönster (for-loopar) vid programmering med fält.

– på ett disciplinerat sätt kunna använda pekare, främst för överföring av referenser som parametrar.

– beskriva betydelsen av begreppen kompilering, assemblering och länkning samt genomföra dessa moment med valda verktyg.

– beskriva och genomföra separat- och korskompilering.

– använda en debugger för enkel felsökning.

 

och att:

·         ha utfört laboration 3

·         ha förberett laboration 4

 

 

 


 

LV6(5014)

 

Tid

Plats

Lektion

Behandlar

Läsanvisning/uppgifter

Må 8/12
8.00-11.45

ED4220

LAB4

Grupp A, Laboration 4

Laborationsuppgifterna ska vara väl förberedda

Må 8/12

10.00-11.45

ES63

KS5

Grupp B Övningar inför laboration 4

Laborations-PM

Må 8/12

15.15-17.00

HC2

FL8

UA

Kodningskonventioner,

Maskinnära programmering för HC12, 49-52
PIS-Kodningskonventioner.pdf
konventioner.c
konventioner.s12

Ti 9/12
8.00-11.45

ED4220

LAB3

Grupp B, Laboration 4

Laborationsuppgifterna ska vara väl förberedda

Ti 9/12
13.15-15.00

HC1

ÖV6
VK

Kodning C/assembler,

Funktionspekare:
summa.c

Avbrott med C, förberedelse för laboration 5:
main.c
cannotBeDoneInC.s12
crg.h
crg.c

On 10/12
15.15-17.00

ES61

KS5

Grupp C Övningar inför laboration 4

Laborations-PM

To 11/12
8.00-11.45

ED4220

LAB4

Grupp C, Laboration 4

Laborationsuppgifterna ska vara väl förberedda

To 11/12
13.15-17.00

ED4220

LAB4

Grupp D, Laboration 4

Laborationsuppgifterna ska vara väl förberedda

Fr 12/12
13.15-15.00

ES61

KS6

Grupp A Övningar inför laboration 5

Arbetsbok kapitel 5

Laborations-PM

Obligatoriska förberedelser inför laboration 5, se speciellt Lab PM.

 

Följande uppgifter föreslås dessutom som självverksamhet under vecka 6:

Exempelsamling:

            2.9, 2.10, 2.17, 2.21, 2.22, 2.36, 2.38

 

Veckans tema:

Maskinnära programmering i C

 

Målsättningar, att efter läsvecka 6 kunna:

– skriva subrutiner som kan anropas från C, med användande av C’s anropskonventioner.

– använda ”typedef” och instruktioner till C:s preprocessor (makron) på ett disciplinerat sätt

– utnyttja adresseringssätt och pekare för referensöverföring.

– skriva C-rutiner som utnyttjar variabler på absoluta adresser (register) för minnesadresserad in- och utmatning.

 

och att:

·         ha utfört laboration 4

·         ha förberett laboration 5

 

 


 

LV7(5014)

 

Tid

Plats

Lektion

Behandlar

Läsanvisning/uppgifter

Må 15/12
8.00-11.45

ED4220

LAB5

Grupp A, Laboration 5

Laborationsuppgifterna ska vara väl förberedda

Må 15/12

10.00-11.45

ES63

KS6

Grupp B Övningar inför laboration 5

Laborations-PM

Må 15/12

15.15-17.00

HC2

Reserv

ingen lektion

 

Ti 16/12
8.00-11.45

ED4220

LAB5

Grupp B, Laboration 5

Laborationsuppgifterna ska vara väl förberedda

Ti 16/12
13.15-15.00

HC1

F9
RJ

Periferikretsar och IO

PIS-Periferi_och_IO.pdf

On 16/12
10.00-11.45

HC1

ÖV7
RJ

Programmering av periferikretsar

 

On 10/12
15.15-17.00

ES61

KS6

Grupp C Övningar inför laboration 5

Laborations-PM

To 11/12
8.00-11.45

ED4220

LAB5

Grupp C, Laboration 5

Laborationsuppgifterna ska vara väl förberedda

To 11/12
13.15-17.00

ED4220

LAB5

Grupp D, Laboration 5

Laborationsuppgifterna ska vara väl förberedda

Veckans tema:

Programmering av periferikretsar

 

Målsättningar, att efter läsvecka 7 kunna:

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

– beskriva och använda kretsar för parallell och seriell överföring (RS232).

– beskriva och använda kretsar för DA- och AD-omvandling.

och att:

·         ha utfört laboration 5

 

 

 


 

 

LV8(0215)

 

Tid

Plats

Lektion

Behandlar

Läsanvisning/uppgifter

On 7/1
13.15-15.00

HC3

FL10
RoJ

Repetition, genomgång av kursens mål och förberedelser inför tentamen

PIS-Sammanfattning.pdf

Exempeltentamina.

To 8/1
13.15-17.00

ED4220

LAB

Extra tillfälle

Möjlighet att redovisa laborationer för dig som inte hann med detta före helgerna.

Veckans tema:

Repetition och sammanfattning, kursens lärandemål

 

Efter fullgjord kurs ska studenten kunna

* medverka vid konstruktion och programmering av enkla inbyggda system med givna komponenter.

Detta betyder att man till exempel ska kunna

– beskriva och exemplifiera uppbyggnaden av enkla inbyggda system.

– använda en microcontroller och några digitala komponenter för programmering av ett inbyggt system.

– beskriva de svårigheter som uppstår vid konstruktion av program som ska hantera asynkrona händelser från flera kringkomponenter.