Kurs PM,

LEU500 Maskinorienterad programmering (DAI,EI,MEI)

 

 

LP3, 2014/15

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 (68HCS12). 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: Lars Bengtsson (labe AT chalmers.se), Ulf Assarsson (uffe AT chalmers.se), Lennart Hansson (hansson AT chalmers.se), Pierre Kleberger (pk AT chalmers.se)

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

 

Kursnämndsrepresentanter:

TIELL  viktoandATstudent.chalmers.se            VIKTOR ANDERSSON
TIMEL tobdanATstudent.chalmers.se              TOBIAS DANIELSSON
TIDAL aleereATstudent.chalmers.se              ALEXANDER ERENSTEDT
TIMEL hamhelgATstudent.chalmers.se             HAMPUS HELGEGREN
TIDAL esadATstudent.chalmers.se                ESAD OSMANOVIC

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: Maskinnära programmering  – laborationer  (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:

Inga ändringar sedan förra årets kurs.

 

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

KOS: Kodnings och simuleringsövning

LAB: Laboration

 

LV1(0415)

 

Tid

Plats

Lektion

Behandlar

Läsanvisning/uppgifter

Må 19/1
13.15-15.00

Babord

FL1
LB

Kursintroduktion,
översikt av MC68HCS12

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

Ti 20/1
13.15-15.00

Babord

FL2
LB

Assemblerprogrammering för MC68HCS12

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

To 22/1
8.15-10.00

Jup309
Jup310

KOS1

Inledande övningar med simulator

Arbetsbok: kapitel 1

To 22/1
15.15-17.00

Styrbord

ÖV1
PK

Programutveckling i assemblerspråk

Fr 23/1
10.15-12.00

Jup024
Jup025

KOS1

Inledande övningar med simulator

Arbetsbok: kapitel 1

Fr 23/1
13.15-15.00

Jup024
Jup025

KOS1

Inledande övningar med simulator

Arbetsbok: kapitel 1

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

 

Tid

Plats

Lektion

Behandlar

Läsanvisning/uppgifter

Må 26/1
13.15-15.00

Babord

FL3
LB

Synkronisering i realtid, avbrott och undantagshantering 

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

Må 26/1
15.15-17.00

Jup024
Jup025

KOS2

Förbered laboration 1 och 2
(följ anvisningar i lab-PM)

Arbetsbok: kapitel 4

 

Ti 27/1
13.15-15.00

Babord

FL4
LB

Genomgång av Laborationsprojekt (assemblerprogrammering)

Arbetsbok: kapitel 4

Laborations-PM
PIS-Laborationer.pdf

On 28/1
13.15-15.00

Jup024
Jup025

KOS2

Förbered laboration 1 och 2
(följ anvisningar i lab-PM)

Arbetsbok: kapitel 4

 

To 29/1
8.15-10.00

Jup309
Jup310

KOS2

Förbered laboration 1 och 2
(följ anvisningar i lab-PM)

Arbetsbok: kapitel 4

 

To 29/1
10.15-12.00

Styrbord

 

ingen lektion

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

 

Tid

Plats

Lektion

Behandlar

Läsanvisning/uppgifter

Må 2/2
13.15-15.00

Babord

ÖV2
PK

Programutveckling i assemblerspråk, avbrott/undantag

 

Må 2/2
15.15-17.00

Jup024
Jup025

KOS3

Förbered laboration 1 och 2
(följ anvisningar i lab-PM)

Arbetsbok: kapitel 4

Ti 3/2
8.15-12.00

Bryggan
Gnistan
Loggen

LAB1

MEI
Laboration 1

Laborationsuppgifterna ska vara väl förberedda

To 5/2
8.15-10.00

Jup309

Jup310

KOS3

Förbered laboration 1 och 2
(följ anvisningar i lab-PM)

Arbetsbok: kapitel 4

To 5/2
10.15-12.00

Styrbord

ingen lektion

To 5/2
13.15-17.00

Bryggan
Gnistan

LAB1

DI-a
Laboration 1

Laborationsuppgifterna ska vara väl förberedda

Fr 6/2
8.15-12.00

Bryggan
Gnistan
Loggen

LAB1

EI
Laboration 1

Laborationsuppgifterna ska vara väl förberedda

Fr 6/2
13.15-15.00

Jup024
Jup025

KOS3

Förbered laboration 1 och 2
(följ anvisningar i lab-PM)

Arbetsbok: kapitel 4

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

 

Tid

Plats

Lektion

Behandlar

Läsanvisning/uppgifter

Må 9/2
13.15-15.00

Babord

FL5
UA

Inledning till C, repetition,
Satser, programflödes­kontroll, funktioner och programstruktur

Må 9/2
15.15-17.00

Jup024
Jup025

KOS4

Förbered laboration 3

 

Ti 10/2
13.15-15.00

Babord

ÖV3
PK

Inledande C, och stackens användning

On 11/2
8.15-12.00

Bryggan
Gnistan
Loggen

LAB2

MEI
Laboration 2

Laborationsuppgifterna ska vara väl förberedda

On 11/2
13.15-12.00

Bryggan
Gnistan

LAB1

DI-b
Laboration 1

Laborationsuppgifterna ska vara väl förberedda

To 12/2
8.15-10.00

Jup309

Jup310

KOS4

Förbered laboration 3
 

 

To 12/2
10.15-12.00

Styrbord

FL6
UA

Pekare och fält

To 12/2
13.15-17.00

Bryggan
Gnistan

LAB2

DI-a
Laboration 2

Laborationsuppgifterna ska vara väl förberedda

Fr 13/2
8.15-12.00

Bryggan
Gnistan
Loggen

LAB2

EI
Laboration 2

Laborationsuppgifterna ska vara väl förberedda

Fr 13/2
13.15-15.00

Jup024
Jup025

KOS4

Förbered laboration 3

 

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

 

Tid

Plats

Lektion

Behandlar

Läsanvisning/uppgifter

Må 16/2
8.15-12.00

Bryggan
Gnistan

LAB2

DI-b
Laboration 2

Laborationsuppgifterna ska vara väl förberedda

Må 16/2
13.15-15.00

Babord

ÖV4
PK

Pekare och fält

Förberedelser för lab 4 borrmaskin

Må 16/2
15.15-17.00

Jup024
Jup025

KOS5

EI

Förbered laboration 4

 

Ti 17/2
8.15-12.00

Bryggan
Gnistan
Loggen

LAB3

MEI
Laboration 3

Laborationsuppgifterna ska vara väl förberedda

Ti 17/2
13.15-15.00

Babord

FL7
UA

Pekare, listor och absolutadressering

On 18/2
10.15-12.00

Jup024
Jup025

KOS5

DI

Förbered laboration 4

 

On 18/2
13.15-17.00

Bryggan
Gnistan

LAB3

DI-a
Laboration 3

Laborationsuppgifterna ska vara väl förberedda

To 19/2
8.15-10.00

Jup309

Jup310

KOS5

MEI
Förbered laboration 4

 

To 19/2
10.15-12.00

Styrbord

ÖV5
PK

Pekare, listor och absolutadressering

 

Fr 20/2
8.15-12.00

Bryggan
Gnistan
Loggen

LAB3

EI
Laboration 3

Laborationsuppgifterna ska vara väl förberedda

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

 

Tid

Plats

Lektion

Behandlar

Läsanvisning/uppgifter

Må 23/2
8.15-12.00

Bryggan
Gnistan

LAB3

DI-b
Laboration 3

Laborationsuppgifterna ska vara väl förberedda

Må 23/2
13.15-15.00

Babord

FL8
UA

Kodnings­konventioner, avbrott med C

 

Må 23/2
15.15-17.00

Jup024
Jup025

KOS6

EI

Förbered laboration 5

Arbeta med simuleringar/laborationer

Ti 24/2
8.15-12.00

Bryggan
Gnistan

LAB4

MEI
Laboration 4

Laborationsuppgifterna ska vara väl förberedda

Ti 24/2
13.15-15.00

Babord

ÖV6
PK

Pekare, listor och absolutadressering 2

OBS: Inställd på gr. av sjukdom.

On 25/2
10.15-12.00

Jup024
Jup025

KOS6

DI

Förbered laboration 5

Arbeta med simuleringar/laborationer

To 26/2
8.15-10.00

Jup309

Jup310

KOS6

MEI
Förbered laboration 5

Arbeta med simuleringar/laborationer

To 26/2
10.15-12.00

Styrbord

ÖV7
PK

Kodning C-assembler

To 26/2
13.15-17.00

Bryggan
Gnistan

LAB4

DI
Laboration 4

Laborationsuppgifterna ska vara väl förberedda

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

 

Tid

Plats

Lektion

Behandlar

Läsanvisning/uppgifter

Må 2/3
8.15-12.00

Bryggan
Gnistan

LAB4

DI-b
Laboration 4

Laborationsuppgifterna ska vara väl förberedda

Må 2/3
13.15-15.00

Babord

FL9
LB

Periferikretsar och IO

 

Ti 3/3
8.15-12.00

Bryggan
Gnistan
Loggen

LAB5

MEI
Laboration 5

Laborationsuppgifterna ska vara väl förberedda

Ti 3/3
13.15-15.00

Babord

ÖV8
PK

Programmering av periferikretsar

Fre 6/3
8.15-12.00

Bryggan
Gnistan

LAB4

EI Laboration 4

Laborationsuppgifterna ska vara väl förberedda

Fr 7/3
8.15-12.00

Bryggan
Gnistan

LAB5

DI-a
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(1115)

 

Tid

Plats

Lektion

Behandlar

Läsanvisning/uppgifter

Må 9/3
13.15-17.00

Bryggan
Gnistan

LAB5

DI-b
Laboration 5

Laborationsuppgifterna ska vara väl förberedda

Ti 10/3
13.15-17.00

Bryggan

LAB

Extra tillfälle

Möjlighet att redovisa laborationer för dig som ännu inte hunnit med detta.

To 12/3
10.15-12.00

Styrbord

FL10
RoJ

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

 

To 12/3
13.15-17.00

Bryggan
Gnistan

LAB5

EI
Laboration 5

Laborationsuppgifterna ska vara väl förberedda

Fr 13/3
8.15-12.00

Bryggan

LAB

Extra tillfälle

Möjlighet att redovisa laborationer för dig som ännu inte hunnit med detta.

Veckans tema:

Slutför laborationsseriern. 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.