• Navigation überspringen
  • Zur Navigation
  • Zum Seitenende
Organisationsmenü öffnen Organisationsmenü schließen
Friedrich-Alexander-Universität Lehrstuhl für Informatik 4 (Systemsoftware)
  • FAUZur zentralen FAU Website
  1. Friedrich-Alexander-Universität
  2. Technische Fakultät
  3. Department Informatik
Suche öffnen
  • English
  • Campo
  • StudOn
  • FAUdir
  • Stellenangebote
  • Lageplan
  • Hilfe im Notfall
  1. Friedrich-Alexander-Universität
  2. Technische Fakultät
  3. Department Informatik
Friedrich-Alexander-Universität Lehrstuhl für Informatik 4 (Systemsoftware)
Menu Menu schließen
  • Lehrstuhl
    • Team
    • Aktuelles
    • Kontakt und Anfahrt
    • Leitbild
    • 50-jähriges Jubiläum
    Portal Lehrstuhl
  • Forschung
    • Forschungsbereiche
      • Betriebssysteme
      • Confidential Computing
      • Eingebettete Systemsoftware
      • Verteilte Systeme
    • Projekte
      • AIMBOS
      • BALu
      • BFT2Chain
      • DOSS
      • Mirador
      • NEON
      • PAVE
      • ResPECT
      • Watwa
    • Projektkampagnen
      • maRE
    • Seminar
      • Systemsoftware
    Portal Forschung
  • Publikationen
  • Lehre
    • Sommersemester 2025
      • Applied Software Architecture
      • Ausgewählte Kapitel der Systemsoftware
      • Betriebssystemtechnik
      • Projekt angewandte Systemsoftwaretechnik
      • System-Level Programming
      • Systemnahe Programmierung in C
      • Systemprogrammierung 1
      • Verteilte Systeme
    • Wintersemester 2024/25
      • Betriebssysteme
      • Middleware – Cloud Computing
      • Systemprogrammierung 2
      • Verlässliche Echtzeitsysteme
      • Virtuelle Maschinen
      • Web-basierte Systeme
    Portal Lehre
  • Examensarbeiten
  1. Startseite
  2. Lehre
  3. Sommersemester 2024
  4. System-Level Programming
  5. Lecture

Lecture

Bereichsnavigation: Lehre
  • System-Level Programming
    • Lecture
      • Exercises
        • Slides
        • Assignments
      • Exam
        • Intern
          • Contact

        Lecture

        Overview of the Lecture

        Based on the computer science knowledge from Algorithms, Programming, and Data Representation and first programming experience with the Python programming language, the lecture aims to impart basic knowledge of system-level programming. While modern application-level programming primarily focuses on concepts and algorithms to idiomatically address problems, the different interactions of low-level components largely are abstracted and often overlooked. System-level programming fills this gap between the internals of the computer/microcontroller architecture and its use by applications. A commonly used programming language in this domain is C, which will serve as the basis for the lecture and practical exercises in this course. Although the creation of C dates back several decades and it is often criticized for the development of larger applications, a large proportion of today’s software is still written and actively maintained in C. In specialized fields, such as embedded systems or operating systems, C is considered as the default language. The main focus of this course lays on the principles of system-level software and their realization using the C programming language (e.g. pointers in C, virtual memory). Furthermore, problematic aspects of C from a programming point of view and the resulting exploitations will be highlighted.

        Overview of the Tutorial

        The default development platform is Linux and the custom SPiC IDE, which includes all the required functionality to program, test, and debug the SPiCboard as well as Linux applications. The SPiCboard can be soldered by the students themselves during a separate soldering event. Using this tools, the overall learning objective of this course is about recognizing and understanding typical problems and solutions for hardware-related microcontroller programming. This also includes the efficient use of resources (e.g memory and energy) and the creation of correct and robust system software. In the second part of the course, the previously gathered insights will be applied to system-level programming using the Linux operating system. Hereby, the use of operating system interfaces is practiced and parallels are drawn to development (without an operating system) on the microcontroller.

        Lecture Slides

        The slides form the thread through the lecture. They can (and shall) not replace supplementary lecture notes and full description of the topics in the technical literature (see also below).

        Variants
        • Handout
        • Presentation

        Last Changed: 19.03.2024

        Slide of Lecture 1

        Slide of Lecture 2

        Slide of Lecture 3

        Slide of Lecture 4

        Slide of Lecture 5

        Slide of Lecture 6

        Slide of Lecture 7

        Slide of Lecture 8

        Slide of Lecture 9

        Slide of Lecture 10

        Slide of Lecture 11

        Slide of Lecture 12

        Slide of Lecture 13

        Slide of Lecture 14

        Slide of Lecture 15

        Slide of Lecture 16

        Slide of Lecture 17

        Slide of Lecture 18

        Slide of Lecture 19

        Slide of Lecture 20

        Hinweis: Vorlesungsteil E ist seit dem SS2021 vorgezogen.

        Slide of Lecture 33

        Slide of Lecture 34

        Slide of Lecture 35

        Slide of Lecture 36

        Slide of Lecture 21

        Slide of Lecture 22

        Slide of Lecture 23

        Slide of Lecture 24

        Slide of Lecture 25

        Slide of Lecture 26

        Slide of Lecture 27

        Slide of Lecture 28

        Slide of Lecture 29

        Slide of Lecture 30

        Slide of Lecture 31

        Slide of Lecture 32

        Examples

        We reserve the right to regularly improve and update the script. However, changes do not usually affect the entire script. The slides show when the relevant chapter was last changed.

        All slides are copyrighted © 2006–2024 by Daniel Lohmann, Jürgen Kleinöder, Volkmar Sieh, and Peter Wägemann, University of Erlangen-Nürnberg, Germany. Use without prior written permission of the authors is not permitted!

        Friedrich-Alexander-Universität
        Erlangen-Nürnberg

        Schlossplatz 4
        91054 Erlangen
        • Impressum
        • Datenschutz
        • Barrierefreiheit
        • Facebook
        • RSS Feed
        • Xing
        Nach oben