02321 Hardware/Software Programmering

2019/2020

Kursusinformation
Hardware/Software Programming
Dansk
10
Diplomingeniør
E1B (tors 13-17) og Januar
Campus Lyngby
Forelæsninger, øvelser, hjemmeopgaver og projekt.
13-uger + 3-uger
E1B, F1B
Skriftlig eksamen og bedømmelse af rapport(er)
Den endelige karakter gives på baggrund af en helhedsvurdering. Den skriftelige eksamen afholdes på den eksamensdag i december, som svarer til den skemagruppe E1B. Den afsluttende projektrapport afleveres i slutningen af 3-ugers perioden i januar.
4 timer
Alle hjælpemidler er tilladt
7-trins skala , ekstern censur
(02320/62515).­6250762505 , Færdighed i C programmering. Kendskab til grundlæggende computer arkitektur. Kendskab til digital elektronik og VHDL. Færdighed i assemblersprog programmering. Kendskab til indlejrede systemer.
Edward Alexandru Todirica , eato@dtu.dk
01 Institut for Matematik og Computer Science
http://www.imm.dtu.dk/courses/02321
I studieplanlæggeren
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
Overordnede kursusmål
At give deltagerne en god viden om moderne 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.
  • Konstruere et indlejret system, der interfacer til I/O enheder.
  • Beskrive og bruge interrupts i et computer system.
  • 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.
Sidst opdateret
20. juni, 2019