Übung

Allgemeines

Der Übungsbetrieb umfasst Tafel- und Rechnerübungen. Die Tafelübungen dienen der Vermittlung und Vertiefung des zur Bearbeitung der Übungsaufgaben notwendigen Wissens. In den Rechnerübungen sind die Arbeitsplätze des Rechnerraums für SPiC Studierende reserviert. In diesen Übungen sollen die Aufgaben bearbeitet werden, wobei in der Regel ein Betreuer zur Verfügung stehen wird um bei Bedarf Hilfestellung zu geben. In den Aufgaben wird die Systemprogrammierung auf zwei verschiedenen Ebenen geübt: Zum einen in Form eines Steuerprogrammes direkt auf Hardware eines AVR Mikrocontrollers, zum anderen im (stark vereinfachten) Nachbau einiger gängiger Systemwerkzeuge auf einer Linux Systemschnittstelle.

Dokumentationsbereich

Die Datenblätter für den Mikrocontroller finden Sie auf der SPiCboard Webseite, die Dokumentation für die libspicboard und die avrlibc auf der libspicboard-Doku Seite. Eine Übersicht über gängige libc Funktionen und Systemaufrufe sind in der Linux libc-Doku hinterlegt, vollständige Informationen finden Sie in den jeweiligen Manpages.

Folien der Übungen

Studierende, die die Veranstaltung GSPiC hören, müssen nur die mit blauer Farbe hinterlegten Übungen besuchen.
Nr. Thema Übungswoche Folien Material
1 Orga, IDE, Optimizations, Exercise 1 23.04.2026 Handout, Animiert
2 Data Types, Visibility, Bitoperations, Modulo, Polling, Exercise 2 30.04.2026 Handout, Animiert
3 Moduls, I/O Ports, Register, Exercise 3 07.05.2026 Handout, Animiert
4 Additions Pointers, Hands-On (Pointers) 13.05.2026 Handout, Animiert pointer.c
5 Interrupts, Synchronization, Power-Saving Modes, Exercise 4 21.05.2026 Handout, Animiert
6 Timer, Exercise 5, Hands-On (Coffee Machine) 03.06.2026 Handout, Animiert
8 Hands-on (Coffee Machine), Hands-On (Marquee) 11.06.2026 Handout, Animiert
9 Linux Programming, Error Handling, Command-Line Arguments, Strings, Exercise 6, Buffer Overflow 18.06.2026 Handout, Animiert
10 Filesystems, Exercise 7 25.06.2026 Handout, Animiert
11 Processes, Exercise 8 (Teil a)) 02.07.2026 Handout, Animiert mish_vorlage.c
12 Signals, Exercise 8 (Teil b) und c)) 09.07.2026 Handout, Animiert
13 Exam Preparation 16.07.2026 Handout, Animiert

Rechnerübung

Die Rechnerübungen starten in der zweiten Vorlesungswoche (ab 28.04.2025) und enden mit den Übungsaufgaben. Es dürfen auch mehrere Rechnerübungen besucht werden. Die Rechnerübungen finden im genannten CIP Pool (Rechnerarbeitsraum) statt, wo Studierende ein SPiCboard zur Verfügung gestellt bekommen. Als Entwicklungsplattform dient die SPiC-IDE.

Übungsaufgaben

Studierende, die die Veranstaltung GSPiC hören, müssen nur die mit blauer Farbe hinterlegten Aufgaben abgeben.
Nr. Titel Kurzbeschreibung Ausgabe Bearbeitungszeit (in Tagen) 2er-Gruppen Abzugebende Dateien Punkte
1 blink Getting to know the environment, implementation of a LED blink program 23.04.2026 7 Nein blink.c 3
2 snake C control flow structures, functions, SPiCboard elements, bitoperations 30.04.2026 7 Ja snake.c 12
3 led-modul Pointer, AVR I/O ports, modular programming 07.05.2026 14 Ja led.c, led-test.c 14
4 spiel Interrupts, powersave modes, concurrency, synchronisation, volatile 21.05.2026 14 Ja spiel.c 12
5 ampel Interrupts, powersave modes, concurrency, synchronisation, volatile 04.06.2026 14 Ja ampel.c 15
6 concat C on Linux, memory allocation, strings 18.06.2026 7 Nein concat.c 10
7 printdir POSIX, structs 25.06.2026 7 Ja printdir.c 12
8 mish POSIX processes, signals 02.07.2026 14 Ja mish.c 22

Abgabe und Bewertung der Übungsaufgaben

Die Abgabe erfolgt an den Rechnern im CIP-Pool, mit dem Skript /proj/i4spic/bin/abgabe oder durch die SPiC-IDE und muss vor dem Abgabetermin erfolgen. Eine Abgabe nach dem Abgabetermin per eMail ist nicht möglich. Zur Bearbeitung der Aufgaben wird Ihnen automatisch ein Projektverzeichnis angelegt nachdem Sie sich zu einer Übung angemeldet haben. Der Pfad zu diesem Verzeichnis lautet /proj/i4spic/<login>, wobei <login> für Ihren Benutzernamen im CIP-Pool steht. Bitte bearbeiten Sie Ihre Aufgaben in diesem Verzeichnis und verwalten Sie das Verzeichnis wie in der ersten Aufgabenstellung beschrieben, da ansonsten das Abgabeprogramm Ihre Lösung nicht finden kann. Die Ergebnisse der Abgaben sind außerdem nach Login im Waffel einsehbar.

Literaturempfehlungen

Zur Einführung in die Programmiersprache C haben wir in der Vorlesung die folgenden Bücher kurz vorgestellt:

  • C-Einführungsbuch „C als erste Programmiersprache“: verfügbar bei Springerlink online (nur aus dem Uni-Netz)
  • Karlheinz Zeiner: Programmieren lernen mit C. Carl Hanser, 4. Auflage, 2000.
  • Steve Oualline: Practical C Programming. O’Reilly, 1991.
  • Peter Darnell, Philip Margolis: C: A Software Engineering Approach. Springer, 1991.
  • Brian Kernighan, Dennis Ritchie: The C Programming Language. Prentice Hall, 1988 (in der deutschen Übersetzung 1990 bei Hanser erschienen)

Zum Thema UNIX-Systemprogrammierung sind die folgenden Bücher empfehlenswert:

  • Helmut Herold: Linux/Unix Systemprogrammierung, Addison-Wesley, München, September 2004.
  • A. S. Tanenbaum, A. S. Woodhull: Operating Systems: Design And Implementation, Prentice Hall, 1997.
  • R. W. Stevens: Advanced Programming in the UNIX Environment. Addison-Wesley, 1992.