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