Ü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, Benutzerumgebung, Optimierungen, Aufgabe 1 02.05.2022 1x1, 1x2, 2x2
2 Datentypen, Sichtbarkeit, Bitoperationen, Modulo, Polling, Aufgabe 2 09.05.2022 1x1, 1x2, 2x2
3 Module, I/O Ports, Register, Aufgabe 3 16.05.2022 1x1, 1x2, 2x2
4 Vertiefung (Zeiger), Hands-On (Zeiger) 23.05.2022 1x1, 1x2, 2x2 pointer.c
5 Interrupts, Synchronisation, Stromsparmodi, Aufgabe 4 30.05.2022 1x1, 1x2, 2x2
6 Timer, Aufgabe 5, Hands-On (Kaffeemaschine) 06.06.2022 1x1, 1x2, 2x2
7 Hands-on (Kaffeemaschine), Hands-On (Laufschrift) 13.06.2022 1x1, 1x2, 2x2
8 Linux-Umgebung, Fehlerbehandlung, Kommandozeilenparameter, Strings, Aufgabe 6, Buffer Overflow 20.06.2022 1x1, 1x2, 2x2
9 Dateisystem, Aufgabe 7 27.06.2022 1x1, 1x2, 2x2
10 Prozesse, Aufgabe 8 (Teil a)) 04.07.2022 1x1, 1x2, 2x2 mish_vorlage.c
11 Signale, Aufgabe 8 (Teil b) und c)) 11.07.2022 1x1, 1x2, 2x2
12 Klausurvorbereitung 18.07.2022 1x1, 1x2, 2x2
13 Vorstellung Aufgabe 8, Klausurvorbereitung (forts.) 25.07.2022 1x1, 1x2, 2x2

Rechnerübung

Die Rechnerübungen starten in der zweiten Vorlesungswoche (ab 02.05.2022) und enden mit den Übungsaufgaben (bis 22.07.2022). 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 Kennenlernen der Umgebung, Implementierung eines LED-Blink-Programms 02.05.2022 7 Nein blink.c 3
2 snake C-Kontrollflusskonstrukte, Funktionen, SPiCboard-Elemente, Bitoperationen 09.05.2022 7 Ja snake.c 12
3 led-modul Zeiger, AVR I/O-Ports, modulare Programmierung 16.05.2022 14 Ja led.c, led-test.c 14
4 spiel Interrupts, Powersave-Modi, Nebenläufigkeit, Synchronisation, volatile 30.05.2022 7 Ja spiel.c 12
5 ampel Interrupts, Powersave-Modi, Nebenläufigkeit, Synchronisation, volatile 06.06.2022 14 Ja ampel.c 15
6 concat C unter Linux, Speicherallokation, Strings 20.06.2022 7 Nein concat.c 10
7 printdir POSIX, Strukturen 27.06.2022 7 Ja printdir.c 12
8 mish POSIX-Prozesse, Signale 04.07.2022 21 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 abgegebenen Aufgaben werden von uns korrigiert. Die korrigierten Abgaben finden Sie in ihrem Projektordner im Unterordner korrektur. Die Ergebnisse der Korrektur sind ausserdem 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.

UnivIS Informationen

Nachstehende Übungstermine sind vorläufig und werden sich vermutlich noch ändern bzw. erweitert werden.

Rechnerübungen zu Systemnahe Programmierung in C (RÜ SPiC)

Verantwortliche
Tim Rheinfels, M. Sc., Maximilian Ott, M. Sc., Phillip Raffeck, M. Sc.

Angaben
Übung
2 SWS
für FAU Scientia Gaststudierende zugelassen, Sprache Deutsch

Studienfächer / Studienrichtungen
PF ME-BA 2
WPF M-BA 2
WPF TM-BA 2
WPF MT-BA ab 5
WPF MT-MA-BDV 2
PF EEI-BA 2
WF Ph-BA 2

Kurse
      
Mo  8:15 - 9:45  01.153-113 CIP
Kurs R01
Marius Kindermann
      
Mo  10:15 - 11:45  01.153-113 CIP
Kurs R08 (nicht belegt)
N.N.
      
Mo  12:15 - 13:45  01.153-113 CIP
Kurs R09 (nicht belegt)
N.N.
      
Mo  14:15 - 15:45  01.153-113 CIP
Kurs R10 (nicht belegt)
N.N.
      
Di  8:15 - 9:45  01.153-113 CIP
Kurs R02
Nick Reitemeyer
      
Mi  8:15 - 9:45  01.153-113 CIP
Kurs R03
Quirin Gebert
      
Mi  16:15 - 17:45  01.153-113 CIP
Kurs R04
Jannik Hausladen
      
Do  10:15 - 11:45  01.153-113 CIP
Kurs R05
Milan Stephan
      
Do  12:15 - 13:45  01.153-113 CIP
Kurs R06
Maximilian Ott
      
Do  16:15 - 17:45  01.153-113 CIP
Kurs R11 (nicht belegt)
N.N.
      
Fr  8:15 - 9:45  01.153-113 CIP
Kurs R12 (nicht belegt)
N.N.
      
Fr  10:15 - 11:45  01.153-113 CIP
Kurs R07
Alexander von der Haar


Übungen zu Systemnahe Programmierung in C (Ü SPiC)

Verantwortliche
Tim Rheinfels, M. Sc., Maximilian Ott, M. Sc., Phillip Raffeck, M. Sc.

Angaben
Übung
2 SWS
für FAU Scientia Gaststudierende zugelassen, Sprache Deutsch

Studienfächer / Studienrichtungen
PF ME-BA 2
WPF M-BA 2
WPF TM-BA 2
WPF MT-BA ab 5
WPF MT-MA-BDV 2
PF EEI-BA 2
WF Ph-BA 2

Voraussetzungen / Organisatorisches
Details zur Organisation werden im Rahmen der ersten Vorlesung besprochen!

Kurse
      
Mo  12:15 - 13:45  01.151-128
Kurs T09 (nicht belegt), erwartete Teilnehmer: 16
N.N.
      
Mo  12:15 - 13:45  00.151-113
Kurs T01, erwartete Teilnehmer: 16
Marius Kindermann
      
Mo  14:15 - 15:45  01.151-128
Kurs T10 (nicht belegt), erwartete Teilnehmer: 16
N.N.
      
Mo  14:15 - 15:45  0.031-113
Kurs T02, erwartete Teilnehmer: 16
Maximilian Ott
      
Do  8:15 - 9:45  00.151-113
Kurs T03, erwartete Teilnehmer: 16
Jannik Hausladen
      
Do  10:15 - 11:45  02.134-113
Kurs T04, erwartete Teilnehmer: 16
Alexander von der Haar
      
Do  10:15 - 11:45  0.031-113
Kurs T05, erwartete Teilnehmer: 16
Volkmar Sieh
      
Do  12:15 - 13:45  0.031-113
Kurs T06, erwartete Teilnehmer: 16
Milan Stephan
      
Do  12:15 - 13:45  01.151-128
Kurs T11 (nicht belegt), erwartete Teilnehmer: 16
N.N.
      
Fr  8:15 - 9:45  0.031-113
Kurs T07, erwartete Teilnehmer: 16
Nick Reitemeyer
      
Fr  8:15 - 9:45  02.134-113
Kurs T12 (nicht belegt), erwartete Teilnehmer: 16
N.N.
      
Fr  10:15 - 11:45  00.151-113
Kurs T08 (bevorzugt ME), erwartete Teilnehmer: 16
Quirin Gebert