At give deltagerne en generel viden om simple indlejrede computersystemers 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 gøre deltagerne i stand til at designe, implementere, fejlfinde, teste og dokumentere et computer system til en indlejret applikation bestående af både 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 computer system.
Konstruere et simpelt computer system (indeholdende processor, hukommelse og I/O enheder).
Opdele designet af et computer system af en vis kompleksitet til mindre og håndterbare dele af hardware og software.
Forklare memory mapped I/O og anvende dette til at tillade processoren at kommunikere med enheder på et computer system.
Konstruere små programmer der tillader processoren at kontrollere I/O enheder.
Forklare og konstruere simple programmer skrevet i assembly sprog eller maskinkode.
Konstruere software programmer ved hjælp af et højniveau programmeringssprog.
Beskrive og bruge pointere i programmer, eksempelvis til at konstruere simple dynamiske datastrukturer som lænkede lister.
Fungere som medlem af en mindre arbejdsgruppe og deltage konstruktivt i styringen af denne.
Skrive en teknisk rapport der dokumenterer projektarbejdet.
Kursusindhold:
* ANSI C programmering * Assembly- og maskinkodeprogrammering. * Hukommelseslayout (Stack, heap etc.) * Hardware design ved hjælp af VHDL * Virkemåde og intern konstruktion af hukommelser. * Arkitektur og instruktionssæt for en simple CPU * Interaktion med I/O enheder: polling, interrupts, memory mapping * Hardware implementation på FPGA af I/O enheder, som f.eks. et serielt interface (UART) eller styreenheder til I/O enheder, som f.eks. tastaturer eller skærme. * Projekt der involverer strukturering, design, implementering og test af en applikation, som kører på et computer system af en vis kompleksitet, hvor funktionaliteten er baseret på kombination af HW og SW. * Dette kursus indeholder tredje semesters CDIO design-build projekt, som udgør halvdelen af kurset.