Sök i kursutbudet

Använda sökfunktionen för att hitta i Chalmers utbildningsutbud, både vad gäller kurser och program. När det finns en kurshemsida visas en hus-symbol som leder till denna sida. Tänk på att välja det läsår du vill se information om.
Sök program och utbildningsplaner


Institutionernas kurser för doktorander

​​​​​​​​​​​​​​​​​​​​

Kursplan för

Läsår
DAT016 - Programmering av inbyggda system  
 
Kursplanen fastställd 2014-02-25 av programansvarig (eller motsvarande)
Ägare: TKITE
7,5 Poäng
Betygskala: TH - Fem, Fyra, Tre, Underkänt
Utbildningsnivå: Grundnivå
Huvudområde: Datateknik, Informationsteknik
Institution: 37 - DATA- OCH INFORMATIONSTEKNIK


Undervisningsspråk: Svenska

Modul   Poängfördelning   Tentamensdatum
Lp1 Lp2 Lp3 Lp4 Sommarkurs Ej Lp
0112 Tentamen 4,5 hp Betygskala: TH   4,5 hp   13 Jan 2015 em V,  13 Apr 2015 em M   21 Aug 2015 fm V
0212 Laboration 3,0 hp Betygskala: UG   3,0 hp    

I program

TKITE INFORMATIONSTEKNIK, CIVILINGENJÖR, Årskurs 2 (obligatorisk)

Examinator:

Univ lektor  Jan Skansholm
Univ lektor  Roger Johansson


Ersätter

DAT015   Maskinorienterad programmering

Kursutvärdering:

http://document.chalmers.se/doc/95a35940-c376-48e9-a504-63a26e5e19ec


Behörighet:

För kurser på grundnivå inom Chalmers utbildningsprogram gäller samma behörighetskrav som till de(t) program där kursen ingår i programplanen.

Kursspecifika förkunskaper

En kurs i grundläggande imperativ programmering och EDA433 Grundläggande datorteknik eller motsvarande.

Syfte

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.

Lärandemål (efter fullgjord kurs ska studenten kunna)

Programmering i assembler

* skriva enkla assemblerprogram med användande av den valda arkitekturens instruktionsuppsättning.
Detta betyder att man till exempel ska kunna
- utnyttja standardmönster för att programmera styrstrukturer som iteration och val.
- utnyttja standardmönster för subrutiner, inklusive parameteröverföring.
- skriva subrutiner som kan anropas från C, med användande av C's anropskonventioner.
- utnyttja adresseringssätt och pekare för referensöverföring.
- skriva rutiner som utnyttjar variabler på absoluta adresser (register) för minnesadresserad in- och utmatning.

Programmering i C

* 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.
- utföra enkel testning av funktioner, subrutiner och program.

* beskriva motsvarigheten i assembler till typiska programstrukturer i C.
Detta betyder att man till exempel 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 de i kursen använda verktygen för programutveckling på ett adekvat sätt.
Detta betyder att man till exempel ska kunna
- 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.

Datorn som komponent

* 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.
- beskriva och utnyttja den realtidskärna som används i kursen för att programmera händelsestyrda system.

* konstruera system innefattande olika typer av undantag (interna undantag, avbrott, återstart).
Detta betyder att man till exempel 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).

* beskriva och exemplifiera några olika typer av digitala kringkomponenter och deras användning.
Detta betyder att man till exempel ska kunna
- beskriva olika principer för överföring mellan centralenhet och kringenheter, såsom pollning och avbrottsstyrning.
- beskriva och använda kretsar för tidmätning.
- beskriva och använda kretsar för parallell och seriell överföring (RS232, användning av USB).
- beskriva och använda kretsar för DA- och AD-omvandling.

Innehåll

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.

Organisation

Schemalagd undervisning består av föreläsningar, demonstrationer och handledda simulerings- och kodningsövningar. Dessutom utförs handledda obligatoriska laborationer.
Under kursen konstruerar eleven större och större programblock i assembler och C. Teorin inhämtas genom föreläsningar och demonstrationer. Eleven konstruerar sina programblock med "papper och penna" och testar dessa med hjälp av simulatorer under simuleringsövningar och självstudier. Inför laborationer anpassar eleven sina program så att funktionen dessutom kan verifieras i hårdvara.

Litteratur

Se kursens hemsida.

Examination

För att bli godkänd på kursen krävs godkänd skriftlig tentamen samt godkända laborationer. Baserat på tentamensresultatet ges betygen U, 3, 4 eller 5.


Sidansvarig Publicerad: må 13 jul 2020.