2015/2016

02321 Hardware/software programmering

Engelsk titel:

Hardware/Software Programming

Sprog:

Point( ECTS )

10

Kursustype:

Diplomingeniør
Kurset udbydes under tompladsordningen
 

Skemaplacering:

E5B (ons 13-17) og Januar

Undervisningens placering:

Campus Lyngby

Undervisningsform:

Forelæsninger, øvelser, hjemmeopgaver og projekt.

Kursets varighed:

13-uger + 3-uger

Eksamensplacering:

E5B

Evalueringsform:

Eksamens varighed:

Hjælpemidler:

Bedømmelsesform:

Anbefalede forudsætninger:

Deltagerbegrænsning:

Maksimum: 80

Overordnede kursusmål:

At give deltagerne en generel viden om simple indlejrede computer-systemers opbygning og virkemåde ved gennemgang af de involverede komponenter og abstraktionsniveauer, som bruges til at håndtere kompleksiteten af et sådant system.
At give deltagerne en forståelse af grænsefladen mellem en indlejret processor og eksterne enheder.
At gøre deltagerne i stand til at designe, implementere, fejlfinde, teste og dokumentere et computer-system til en indlejret applikation bestående af hardware og software komponenter.

Læringsmål:

En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
  • Beskrive de forskellige abstraktionsniveauer brugt i et indlejret system.
  • Forstå forskelle og ligheder mellem et indlejret system og en PC.
  • Konstruere et indlejret system, der interfacer til I/O enheder.
  • Opdele design af et indlejret computer system af en vis kompleksitet i mindre og mere håndterbare hardware og software dele.
  • Forklare memory mapped I/O og anvende memory mapped I/O i kommunikationen mellem processor og eksterne enheder.
  • Skrive programmer, der sætter processoren i stand til at styre I/O enheder under brug af forskellige protokoller såsom I²C eller SPI.
  • Skrive software programmer ved hjælp af et højniveau programmeringssprog.
  • Beskrive og bruge pointere i programmer, eksempelvis til at konstruere simple dynamiske datastrukturer såsom lænkede lister.
  • Forstå, hvorledes programvariable lagres i hukommelsen (heap, stak, globale variable).
  • Forstå sammenhængen mellem maskinprogram (assembler kode) og et højniveau sprog (eksempelvis C).
  • Fungere som medlem af en mindre arbejdsgruppe (2-5 deltagere) og deltage konstruktivt i styringen heraf.
  • Skrive en teknisk rapport, der dokumenterer projektarbejdet.

Kursusindhold:

* ANSI C programmering eller tilsvarende programmeringssprog
* Hukommelseslayout (stak, heap osv.)
* Hardware design og implementation ved hjælp af FPGA og VHDL
* Hukommelser
* Interaktion med I/O enheder: polling, interrupts, memory mapping
* Programmer, der styrer I/O enheder
* Projekt, der involverer strukturering, design, implementering og test af en applikation, som eksekverer på et computer system af en vis kompleksitet, hvor funktionaliteten realiseres ved en kombination af maskinel og programmel
* Dette kursus er det projektbærende kursus for 3. semester CDIO projekt.

Bemærkninger:

Kravspecifikationen for 3-ugens-projektet udføres af de studerende i samarbejde med underviseren.

Mulighed for GRØN DYST deltagelse:

Kontakt underviseren for information om hvorvidt dette kursus giver den studerende mulighed for at lave eller forberede et projekt som kan deltage i DTUs studenterkonference om bæredygtighed, klimateknologi og miljø (GRØN DYST). Se mere på http://www.groendyst.dtu.dk

Institut:

01 Institut for Matematik og Computer Science

Kursushjemmeside:

http://www.imm.dtu.dk/courses/02321

Tilmelding:

I CampusNet
Sidst opdateret: 01. juli, 2016