Kurs
PM,
EDA481
Programmering av inbyggda system (D)
DIT152
Programmering av inbyggda system (GU)
LP4, 2014-2015
Innehåll:
Personal och
kursnämndsrepresentanter
Ändringar
sedan föregående kurstillfälle
Schema med
veckoplanering
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.
Ö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
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.
Inga
ändringar har gjorts i kursinnehållet.
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.
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 |
HC4 |
FL1 |
Kursintroduktion,
|
Maskinnära programmering med HC12 |
Ti
24/3 |
HC4 |
FL2 |
Assemblerprogrammering
för MC68HCS12 |
Maskinnära
programmering med HC12, 3-42 |
To
26/3 |
HC4 |
ÖV1 |
Programutveckling
i assemblerspråk |
|
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 |
HC4 |
FL3 |
Synkronisering
i realtid, avbrott och undantagshantering |
Arbetsbok: kapitel 3 Maskinnära
programmering för HC12, 43-48 |
Ti
31/3 |
HC4 |
FL4 |
Genomgång av Laborationsprojekt |
Arbetsbok: kapitel 4 Laborations-PM |
Ons
1/3 |
MT0, |
KS1 |
Grupp A,B: Övningar inför laboration 1 |
Arbetsbok: kapitel 4 |
Ons
1/4 |
ES62, |
KS1 |
Grupp C,D: Övningar inför laboration 1 |
Arbetsbok:
kapitel 4 |
To
2/4 |
HC4 |
ÖV2 |
Programutveckling
i assemblerspråk, avbrott, undantag |
|
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 |
HC4 |
ÖV3 |
Inledande C och stackens
användning |
|
Må
20/4 |
ED4220 |
LAB1 |
Grupp A, Laboration 1 |
Laborationsuppgifterna
ska vara väl förberedda |
Ti
21/4 |
ED4220 |
LAB1 |
Grupp B, Laboration 1 |
Laborationsuppgifterna
ska vara väl förberedda |
Ti
21/4 |
HC4 |
FL5 |
Pekare
och fält |
|
Ti
21/4 |
ED4220 |
LAB1 |
Grupp E, Laboration 1 |
Laborationsuppgifterna
ska vara väl förberedda |
On
22/4 |
ED4220 |
LAB1 |
Grupp C, Laboration 1 |
Laborationsuppgifterna
ska vara väl förberedda |
Ons
22/4 |
MT0, |
KS2 |
Grupp A,B: Övningar inför laboration 2 |
Arbetsbok: kapitel 4 |
Ons
22/4 |
ES62, |
KS2 |
Grupp C,D: Övningar inför laboration 2 |
Arbetsbok:
kapitel 4 |
To
23/4 |
HC4 |
ÖV4 |
Pekare och fält |
|
To
23/4 |
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 |
HC4 |
FL6 |
Pekare, listor och
absolutadressering |
|
||
Må
27/4 |
ED4220 |
LAB2 |
Grupp A, Laboration 2 |
Laborationsuppgifterna
ska vara väl förberedda |
|
|
Ti
28/4 |
ED4220 |
LAB2 |
Grupp B, Laboration 2 |
Laborationsuppgifterna
ska vara väl förberedda |
|
|
Ti
28/4 |
HC4 |
ÖV5 |
Pekare, listor och
absolutadressering |
|
||
Ti
21/4 |
ED4220 |
LAB2 |
Grupp E, Laboration 2 |
Laborationsuppgifterna
ska vara väl förberedda |
||
On
29/4 |
ED4220 |
LAB2 |
Grupp C, Laboration 2 |
Laborationsuppgifterna
ska vara väl förberedda |
||
Ons
29/4 |
MT0, |
KS3 |
Grupp A,B: Övningar inför laboration 3 |
Arbetsbok: kapitel 3 |
||
Ons
29/4 |
ES62, |
KS3 |
Grupp C,D: Övningar inför laboration 3 |
Arbetsbok:
kapitel 3 |
||
On 29/4 |
ED4220 |
LAB2 |
Grupp D, Laboration 1 |
Laborationsuppgifterna
ska vara väl förberedda |
||
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 |
HC4 |
FL7 |
Kodningskonventioner |
|
Må
4/5 |
ED4220 |
LAB3 |
Grupp A, Laboration 3 |
Laborationsuppgifterna
ska vara väl förberedda |
Ti
5/5 |
ED4220 |
LAB3 |
Grupp B, Laboration 3 |
Laborationsuppgifterna
ska vara väl förberedda |
Ti
5/5 |
HC4 |
FL8 |
Periferikretsar och IO |
|
Ti
5/5 |
ED4220 |
LAB3 |
Grupp E, Laboration 3 |
Laborationsuppgifterna
ska vara väl förberedda |
On
6/5 |
ED4220 |
LAB3 |
Grupp C, Laboration 3 |
Laborationsuppgifterna
ska vara väl förberedda |
Ons 6/5 |
ES62, |
KS4 |
Grupp A,B: Övningar inför laboration 4 |
OBS: EJ I MASKINBYGGNAD |
Ons
6/5 |
ES62, |
KS4 |
Grupp C,D: Övningar inför laboration 4 |
TILLFÄLLEN ÖPPNA ÄVEN FÖR Z |
To
7/5 |
HC4 |
ÖV6 |
Kodning
C/assembler, avbrott med C |
|
To
7/5 |
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 |
HC4 |
RESERV |
Ingen lektion |
|
Må
11/5 |
ED4220 |
LAB4 |
Grupp A, Laboration 4 |
Laborationsuppgifterna
ska vara väl förberedda |
Ti
12/5 |
ED4220 |
LAB4 |
Grupp B, Laboration 4 |
Laborationsuppgifterna
ska vara väl förberedda |
Ti
12/5 |
HC4 |
ÖV7 |
Periferikretsar och IO |
avbrott2.c seriekommunikation.pdf |
Ti
12/5 |
ED4220 |
LAB4 |
Grupp E, Laboration 4 |
Laborationsuppgifterna
ska vara väl förberedda |
On
13/5 |
ED4220 |
LAB4 |
Grupp C, Laboration 4 |
Laborationsuppgifterna
ska vara väl förberedda |
Ons 13/5 |
ES62, |
KS5 |
Grupp A,B: Övningar inför laboration 5 |
OBS: EJ I MASKINBYGGNAD |
Ons
13/5 |
ES62, |
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 |
ED4220 |
LAB5 |
Grupp A, Laboration 5 |
Laborationsuppgifterna
ska vara väl förberedda |
Ti
19/5 |
ED4220 |
LAB5 |
Grupp B, Laboration 5 |
Laborationsuppgifterna
ska vara väl förberedda |
Ti
19/5 |
ED4220 |
LAB5 |
Grupp E, Laboration 5 |
Laborationsuppgifterna
ska vara väl förberedda |
On
20/5 |
ED4220 |
LAB5 |
Grupp C, Laboration 5 |
Laborationsuppgifterna
ska vara väl förberedda |
To
21/5 |
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 |
HC4 |
FL9 |
Repetition,
genomgång av kursens mål och förberedelser inför tentamen |
Exempeltentamina. |
To
28/5 |
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. |