Kurs
PM,
DAT016
Programmering av inbyggda system (IT)
DIT152
Programmering av inbyggda system (GU)
LP2, 2014/14
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:
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
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.
Detta
är en utveckling av den tidigare kursen ”Maskinorienterad programmering”.
Mindre ä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
LV1(4514) |
|
|||
Tid |
Plats |
Lektion |
Behandlar |
Läsanvisning |
Må
3/11 |
HC2 |
FL1 |
Kursintroduktion,
|
Maskinnära programmering med
HC12 |
Ti
4/11 |
HC1 |
FL2 |
Assemblerprogrammering
för MC68HCS12 |
Maskinnära
programmering med HC12, 3-42 |
On
5/11 |
HC1 |
ÖV1 |
Programutveckling
i assemblerspråk |
|
To
6/11 |
ED4220 |
KS1 |
Grupp A: Inledande övningar med simulator |
Obs, KURSLABORATORIET |
To
6/11 |
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 |
ED4220 |
KS1 |
Grupp C: Inledande övningar med simulator |
Obs, KURSLABORATORIET |
Må
10/11 |
HC2 |
Reserv |
ingen lektion |
|
Ti
11/11 |
HC1 |
FL3 |
Synkronisering
i realtid, avbrott och undantagshantering |
Arbetsbok: kapitel 3 Maskinnära
programmering för HC12, 43-48 |
On
12/11 |
HC1 |
FL4 |
Genomgång av Laborationsprojekt |
Arbetsbok: kapitel 4 Laborations-PM |
Fr
14/11 |
ES61 |
KS2 |
Grupp A Övningar inför laboration 1 |
Arbetsbok: kapitel 4 |
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 |
ED4220 |
LAB1 |
Grupp A, Laboration 1 |
Laborationsuppgifterna
ska vara väl förberedda |
Må
17/11 |
ES63 |
KS2 |
Grupp B Övningar inför laboration 1 |
Arbetsbok: kapitel 4 |
Må
17/11 |
HC2 |
ÖV2 |
Programutveckling i assemblerspråk,
avbrott och undantag |
|
Ti
18/11 |
ED4220 |
LAB1 |
Grupp B, Laboration 1 |
Laborationsuppgifterna
ska vara väl förberedda |
Ti
18/11 |
HC1 |
FL5 |
Inledande
C, satser, program-flödeskontroll, funktioner och programstruktur |
|
On
19/11 |
ES61 |
KS2 |
Grupp C Övningar inför laboration 1 |
Arbetsbok: kapitel 4 |
To
20/11 |
ED4220 |
LAB1 |
Grupp C, Laboration 1 |
Laborationsuppgifterna
ska vara väl förberedda |
To
20/11 |
ED4220 |
LAB1 |
Grupp D, Laboration 1 |
Laborationsuppgifterna
ska vara väl förberedda |
Fr
21/11 |
ES61 |
KS3 |
Grupp A Övningar inför laboration 2 |
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(4814) |
|
|||||
Tid |
Plats |
Lektion |
Behandlar |
Läsanvisning/uppgifter |
||
Må
24/11 |
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 |
|
|
Må
24/11 15.15-17.00 |
HC2 |
ÖV3 VK |
Inledande
C och enkla exempel med pekare |
|
||
Ti
25/11 |
ED4220 |
LAB2 |
Grupp B, Laboration 2 |
Laborationsuppgifterna
ska vara väl förberedda |
|
|
Ti
25/11 |
HC1 |
FL6 |
Pekare
och fält |
|||
On
26/11 |
HC1 |
ÖV4 VK |
Pekare
och fält |
|||
On
26/11 |
ES61 |
KS3 |
Grupp C Övningar inför laboration 2 |
Arbetsbok: kapitel 4 |
||
To
27/11 |
ED4220 |
LAB2 |
Grupp C, Laboration 2 |
Laborationsuppgifterna
ska vara väl förberedda |
||
To
27/11 |
ED4220 |
LAB2 |
Grupp D, Laboration 2 |
Laborationsuppgifterna
ska vara väl förberedda |
||
Fr
28/11 |
ES61 |
KS4 |
Grupp A Övningar inför laboration 3 |
Arbetsbok: kapitel 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(4914) |
|
|||
Tid |
Plats |
Lektion |
Behandlar |
Läsanvisning/uppgifter |
Må
1/12 |
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 |
Må
1/12 15.15-17.00 |
HC2 |
FL7 UA |
Pekare,
listor och absolutadressering |
|
Ti
2/12 |
ED4220 |
LAB3 |
Grupp B, Laboration 3 |
Laborationsuppgifterna
ska vara väl förberedda |
Ti
2/12 |
HC1 |
ÖV5 |
Pekare,
listor och absolutadressering |
|
On
3/12 |
ES61 |
KS4 |
Grupp C Övningar inför laboration 3 |
Arbetsbok: kapitel 3 |
To
4/12 |
ED4220 |
LAB3 |
Grupp C, Laboration 3 |
Laborationsuppgifterna
ska vara väl förberedda |
To
4/12 |
ED4220 |
LAB3 |
Grupp D, Laboration 3 |
Laborationsuppgifterna
ska vara väl förberedda |
Fr
5/12 |
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 |
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 |
Ti
9/12 |
ED4220 |
LAB3 |
Grupp B, Laboration 4 |
Laborationsuppgifterna
ska vara väl förberedda |
Ti
9/12 |
HC1 |
ÖV6 |
Kodning
C/assembler, |
Funktionspekare: |
On
10/12 |
ES61 |
KS5 |
Grupp C Övningar inför laboration 4 |
Laborations-PM |
To
11/12 |
ED4220 |
LAB4 |
Grupp C, Laboration 4 |
Laborationsuppgifterna
ska vara väl förberedda |
To
11/12 |
ED4220 |
LAB4 |
Grupp D, Laboration 4 |
Laborationsuppgifterna
ska vara väl förberedda |
Fr
12/12 |
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 |
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 |
ED4220 |
LAB5 |
Grupp B, Laboration 5 |
Laborationsuppgifterna
ska vara väl förberedda |
Ti
16/12 |
HC1 |
F9 |
Periferikretsar
och IO |
|
On
16/12 |
HC1 |
ÖV7 |
Programmering
av periferikretsar |
|
On
10/12 |
ES61 |
KS6 |
Grupp C Övningar inför laboration 5 |
Laborations-PM |
To
11/12 |
ED4220 |
LAB5 |
Grupp C, Laboration 5 |
Laborationsuppgifterna
ska vara väl förberedda |
To
11/12 |
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 |
HC3 |
FL10 |
Repetition,
genomgång av kursens mål och förberedelser inför tentamen |
Exempeltentamina. |
To
8/1 |
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. |