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.
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.
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
Ü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 | 00.151-113 | Kurs T01, erwartete Teilnehmer: 16 |
| | Marius Kindermann
| | |
| | Mo | 12:15 - 13:45 | 01.151-128 | Kurs T09 (nicht belegt), erwartete Teilnehmer: 16 |
| | N.N.
| | |
| | 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 | 0.031-113 | Kurs T05, erwartete Teilnehmer: 16 |
| | Volkmar Sieh
| | |
| | Do | 10:15 - 11:45 | 02.134-113 | Kurs T04, erwartete Teilnehmer: 16 |
| | Alexander von der Haar
| | |
| | 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
| | |