Kurs PM,

EDA481 Programmering av inbyggda system (D)

DIT152 Programmering av inbyggda system (GU)

 

 

LP4, 2014-2015

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:

jesandre( at )  student.chalmers.se            JESPER ANDREASSON
antben( at )  student.chalmers.se              ANTON BENGTSSON
fritzsso( at )  student.chalmers.se            EMIL JEHRN
adism( at )  student.chalmers.se               ADIS MAHMUTOVIC
bjostr( at )  student.chalmers.se              BJÖRN STRÖMBERG

 

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, 2015, PDF) – Tryckt version tillhandahålls kostnadsfritt för kursdeltagarna.

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

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

 

Laborationsgrupper:

A: Måndag 13-15-17.00

B: Tisdag 8.00-11.45

E: Tisdag 17.15-21.00

C: Onsdag 8.00-11.45

D: Torsdag 13.15-17.00 (LV4 och LV6, helger, labpass flyttat till Onsdag kväll 17.15-21.00)

 

 

LV1(1315)

 

Tid

Plats

Lektion

Behandlar

Läsanvisning

Må 23/3
8.00-9.45

HC4

FL1
RoJ

Kursintroduktion,
översikt av MC68HCS12

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

Ti 24/3
13.15-15.00

HC4

FL2
RoJ

Assemblerprogrammering för MC68HCS12

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

To 26/3
8.00-9.45

HC4

ÖV1
VK

Programutveckling i assemblerspråk

rinnandeLjus.s12
delay.s12

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(1415)

 

Tid

Plats

Lektion

Behandlar

Läsanvisning

Må 30/3
8.00-9.45

HC4

FL3
RoJ

Synkronisering i realtid, avbrott och undantagshantering

Arbetsbok: kapitel 3

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

Ti 31/3
13.15-15.00

HC4

FL4
RoJ

Genomgång av Laborationsprojekt

Arbetsbok: kapitel 4

Laborations-PM
PIS-Laborationer.pdf

Ons 1/3
10.00-11.45

MT0,
MT14

KS1

Grupp A,B: Övningar inför laboration 1

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

Ons 1/4
13.15-15.00

ES62,
ES63

KS1

Grupp C,D: Övningar inför laboration 1

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

To 2/4
8.00-9.45

HC4

ÖV2
VK

Programutveckling i assemblerspråk, avbrott, undantag

irq4.s12
RoundRobinEmpty.s12

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(1515)

 

Tid

Plats

Lektion

Behandlar

Läsanvisning/uppgifter

Må 20/4
8.00-9.45

HC4

ÖV3
VK

Inledande C och stackens användning

main.c
myFuncs.h
myFuncs.c

Må 20/4
13.15-17.00

ED4220

LAB1

Grupp A, Laboration 1

Laborationsuppgifterna ska vara väl förberedda

Ti 21/4
8.00-11.45

ED4220

LAB1

Grupp B, Laboration 1

Laborationsuppgifterna ska vara väl förberedda

Ti 21/4
13.15-15.00

HC4

FL5
UA

Pekare och fält

pekare.pdf

Ti 21/4
17.15-21.00

ED4220

LAB1

Grupp E, Laboration 1

Laborationsuppgifterna ska vara väl förberedda

On 22/4
8.00-11.45

ED4220

LAB1

Grupp C, Laboration 1

Laborationsuppgifterna ska vara väl förberedda

Ons 22/4
10.00-11.45

MT0,
MT14

KS2

Grupp A,B: Övningar inför laboration 2

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

Ons 22/4
13.15-15.00

ES62,
ES63

KS2

Grupp C,D: Övningar inför laboration 2

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

To 23/4
8.00-9.45

HC4

ÖV4
VK

Pekare och fält

port.c
fp.c

To 23/4
13.15-17.00

ED4220

LAB1

Grupp D, Laboration 1

Laborationsuppgifterna ska vara väl förberedda

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(1615)

 

Tid

Plats

Lektion

Behandlar

Läsanvisning/uppgifter

Må 27/4
8.00-9.45

HC4

FL6
UA

Pekare, listor och absolutadressering

pekareForts.pdf

 

Må 27/4
13.15-17.00

ED4220

LAB2

Grupp A, Laboration 2

Laborationsuppgifterna ska vara väl förberedda

 

Ti 28/4
8.00-11.45

ED4220

LAB2

Grupp B, Laboration 2

Laborationsuppgifterna ska vara väl förberedda

 

Ti 28/4
13.15-15.00

HC4

ÖV5
VK

Pekare, listor och absolutadressering

list.c

 

Ti 21/4
17.15-21.00

ED4220

LAB2

Grupp E, Laboration 2

Laborationsuppgifterna ska vara väl förberedda

On 29/4
8.00-11.45

ED4220

LAB2

Grupp C, Laboration 2

Laborationsuppgifterna ska vara väl förberedda

Ons 29/4
10.00-11.45

MT0,
MT14

KS3

Grupp A,B: Övningar inför laboration 3

Arbetsbok: kapitel 3
Laborations-PM

Ons 29/4
13.15-15.00

ES62,
ES63

KS3

Grupp C,D: Övningar inför laboration 3

Arbetsbok: kapitel 3
Laborations-PM

On 29/4
17.15-21.00

ED4220

LAB2

Grupp D, Laboration 1

Laborationsuppgifterna ska vara väl förberedda
OBS, Laborationstid flyttad

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(1715)

 

Tid

Plats

Lektion

Behandlar

Läsanvisning/uppgifter

Må 4/5
8.00-9.45

HC4

FL7
UA

Kodningskonventioner

kodningsKonventioner.pdf

Må 4/5
13.15-17.00

ED4220

LAB3

Grupp A, Laboration 3

Laborationsuppgifterna ska vara väl förberedda

Ti 5/5
8.00-11.45

ED4220

LAB3

Grupp B, Laboration 3

Laborationsuppgifterna ska vara väl förberedda

Ti 5/5
13.15-15.00

HC4

FL8
RJ

Periferikretsar och IO

PIS-Periferi_och_IO.pdf

Ti 5/5
17.15-21.00

ED4220

LAB3

Grupp E, Laboration 3

Laborationsuppgifterna ska vara väl förberedda

On 6/5
8.00-11.45

ED4220

LAB3

Grupp C, Laboration 3

Laborationsuppgifterna ska vara väl förberedda

Ons 6/5
10.00-11.45

ES62,
ES63

KS4

Grupp A,B: Övningar inför laboration 4

OBS: EJ I MASKINBYGGNAD
TILLFÄLLEN ÖPPNA ÄVEN FÖR Z

Ons 6/5
13.15-15.00

ES62,
ES63

KS4

Grupp C,D: Övningar inför laboration 4

TILLFÄLLEN ÖPPNA ÄVEN FÖR Z

To 7/5
8.00-9.45

HC4

ÖV6
VK

Kodning C/assembler, avbrott med C

myAdd.s12
supportFuncs.s12
avbrott.c

To 7/5
13.15-17.00

ED4220

LAB3

Grupp D, Laboration 3

Laborationsuppgifterna ska vara väl förberedda

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

            Frivillig 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(1815)

 

Tid

Plats

Lektion

Behandlar

Läsanvisning/uppgifter

Må 11/5
8.00-9.45

HC4

RESERV

Ingen lektion

 

Må 11/5
13.15-17.00

ED4220

LAB4

Grupp A, Laboration 4

Laborationsuppgifterna ska vara väl förberedda

Ti 12/5
8.00-11.45

ED4220

LAB4

Grupp B, Laboration 4

Laborationsuppgifterna ska vara väl förberedda

Ti 12/5
13.15-15.00

HC4

ÖV7
VK

Periferikretsar och IO

avbrott2.c
supportFuncs.s12
crg.h
crg.c

seriekommunikation.pdf
sci_main.c
sci.h
sci.c

 

useCaseGraphics.pdf

Ti 12/5
17.15-21.00

ED4220

LAB4

Grupp E, Laboration 4

Laborationsuppgifterna ska vara väl förberedda

On 13/5
8.00-11.45

ED4220

LAB4

Grupp C, Laboration 4

Laborationsuppgifterna ska vara väl förberedda

Ons 13/5
10.00-11.45

ES62,
ES63

KS5

Grupp A,B: Övningar inför laboration 5

OBS: EJ I MASKINBYGGNAD
TILLFÄLLEN ÖPPNA ÄVEN FÖR Z

Ons 13/5
13.15-15.00

ES62,
ES63

KS5

Grupp C,D: Övningar inför laboration 5

TILLFÄLLEN ÖPPNA ÄVEN FÖR Z

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(1915)

 

Tid

Plats

Lektion

Behandlar

Läsanvisning/uppgifter

Må 18/5
13.15-17.00

ED4220

LAB5

Grupp A, Laboration 5

Laborationsuppgifterna ska vara väl förberedda

Ti 19/5
8.00-11.45

ED4220

LAB5

Grupp B, Laboration 5

Laborationsuppgifterna ska vara väl förberedda

Ti 19/5
17.15-21.00

ED4220

LAB5

Grupp E, Laboration 5

Laborationsuppgifterna ska vara väl förberedda

On 20/5
8.00-11.45

ED4220

LAB5

Grupp C, Laboration 5

Laborationsuppgifterna ska vara väl förberedda

To 21/5
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(2015)

 

Tid

Plats

Lektion

Behandlar

Läsanvisning/uppgifter

To 28/5
8.00-9.45

HC4

FL9
RoJ

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

PIS-Sammanfattning.pdf

Exempeltentamina.

To 28/5
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.