F28HS - Hardware-Software Interface

Rosalind Deena Kumari
To be announced
Mahmoud Mousa
Alistair McConnell
Hans-Wolfgang Loidl

Course leader(s):

Aims

Syllabus

1. C programming (1.1 1. Basics of C programming, 1.2 2. Dynamic memory management and pointers, 1.3 3. Systems-oriented programming in C)

2. Low-level, assembler programming (2.1 1. Introduction to Assembler programming, 2.2 2. Basic control structures in Assembler, 2.3 3. Assembler functions and calling conventions, 2.4 4. Assembler system calls and systems-oriented programming)

3. Advanced computer architecture concepts (3.1 1. Overview of architecture concepts impacting software performance caches, multi-cores, etc, 3.2 2. Memory management and memory hierarchy covering caches etc, 3.3 3. Processor architecture covering pipelining)

4. Low-level hardware-software interface and the role of the Operating System (4.1 1. Overview of tasks for operating systems, 4.2 2. The role of low-level software within and without operating systems, 4.3 3. Advanced architecture and operating systems concepts, uch as device handling, interrupts, performance counters, BIOS etc, 4.4 4. Bare metal programming, without an operating system)

5. Embedded systems programming (5.1 1. Overview of SBC devices such as the Raspberry Pi, 5.2 2. Role of SBC devices in the landscape of computational devices, 5.3 3. Fundamentals of programming such SBC devices low-level programming, 5.4 4. Pratical exercises of programming external devices LEDs, button, LCD display, 5.5 5. Performance issues related to low-level programming, 5.6 6. Security issues related to low-level programming)

6. Resource-conscious programming techniques (6.1 1. Basic resource considerations when developing low-level code, 6.2 2. Concrete performance implication of core architecture concepts, such as caches, pipelining, parallelism etc. , 6.3 3. Relationship of explicit management of memory, runtime performance, programming techniques, tools, and monitoring, 6.4 4. Debugging low-level programs for correctness and performance)

Learning outcomes

By the end of the course, students should be able to do the following:

Further details

Curriculum explorer: Click here

SCQF Level: 8

Credits: 15