Friedrich-Alexander-Universität Erlangen-Nürnberg  /   Technische Fakultät  /   Department Informatik

SPiC - Übungen im WS 2020/21

Allgemeines

Da SPiC auch dieses Semester nicht als Präsenzveranstaltung stattfinden kann, werden Tafel- und Rechnerübungen wieder online abgehalten. Für erstere werden die Videos aus dem Sommersemester 2020 ergänzt und es wird eine zusätzliche wöchentliche Fragestunde stattfinden.

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.

Zoom Tafel- und Rechnerübungen

Die Termine starten c.t. (also 15 Minuten später) und dauern 90 Minuten. Gibt es 30 Minuten nach Beginn der Übung keine Teilnehmer, kann der Übungsleiter sie frühzeitig beenden.

Zu jedem Übungstermin gibt es ein Zoom Meeting. Die Links sind in diesem StudOn Ordner zu finden. Zum Beitritt in das Zoom Meeting ist eine Anmeldung über die FAU Zoom Anmeldeseite nötig. Ein Beitritt ist erst möglich, wenn der Tutor das Meeting gestartet hat. Achten Sie für Wortbeiträge bitte darauf, geeignete Mikrofone und Kopfhörer zu verwenden. Nicht geeignet sind Laptop Mikrofone und die Nutzung von Lautsprechern.

Je nach Auslastung der Übung kann es sein, dass Sie stummgeschaltet werden. Um eine Frage zu stellen, nutzen Sie bitte die Hand heben (Zoom Hilfeseite [en]) Funktionalität in Zoom. Der Übungsleiter wird diese Anfragen der Reihe nach abarbeiten und Sie entsprechend bitten, Ihre Stummschaltung aufzuheben.

Tafelübungen

Um die Inhalte der Screencasts zu vertiefen, findet in diesem Semester eine wöchentliche Tafelübung in Zoom statt. Entgegen den Rechnerübungen soll es in diesem Termin nicht um die Übungsaufgaben, sondern um die Vertiefung der Vorlesungs- und Übungsvideos gehen. Es können also Verständnis- oder weitergehende Fragen gestellt werden.

Rechnerübungen

Die Rechnerübungen starten in der zweiten Vorlesungswoche (ab 09.11.2020) und enden mit den Übungsaufgaben (05.02.2021). Es dürfen beliebige (auch mehrere) Rechnerübungen besucht werden.

Bitte halten Sie Ihre IDM-Kennung bereit (zum Beispiel jy52coty), wenn der Tutor auf Ihren Code schauen soll. Um mit ihm darüber hinaus den Inhalt der SPiC-IDE zu teilen, halten Sie bitte Ihren Zugriffscode bereit (zum Beispiel SPiCxxxxxxx).

Zur Vermeidung unbeabsichtigter Plagiate können Tutoren sogenannte Breakout Räume (Zoom Hilfeseite [en]) verwenden. In diesem Raum befinden sich nur der Tutor und der Studierende mit Frage und so können auch Details im Code besprochen werden.

Bei Problemen mit Zoom, bietet das RRZE Hilfeseiten an:

Uhrzeit Mo Di Mi Do Fr
08:00-
10:00
10:00-
12:00
12:00-
14:00
14:00-
16:00
RÜ2
(von der Haar)
16:00-
18:00
RÜ1
(Faghih-Naini)

(Rheinfels)

Übungsaufgaben

Nr. Titel Kurzbeschreibung Ausgabe Bearbeitungszeit
(in Tagen)
Abzugebende
Dateien
Punkte
1 zaehler Kennenlernen der Umgebung,
Implementierung eines Zähler-Programms
02.11.2020 14 zaehler.c 6
2 izaehler Interrupts, Nebenläufigkeit, IO 16.11.2020 7 izaehler.c 12
3 button IO, Module, Tests 23.11.2020 7 button.c, test-button.c 14
4 ampel Zustandsmaschinen, Interrupts, Synchronisation 30.11.2020 14 ampel.c 15
5 concat C unter Linux, Speicherallokation, Strings 14.12.2020 7 concat.c 10
6 trac Ein-/Ausgabe 21.12.2020 7 trac.c 9
7 printdir POSIX, Strukturen 11.01.2021 7 printdir.c 12
8 mish POSIX-Prozesse, Signale 18.01.2021 21 mish.c 22

Folien & Aufzeichnungen der Übungen

Wir behalten uns Änderungen der Folien und Aufzeichnungen während des Semesters vor.

Die Folien und Aufzeichnungen stammen aus dem vorherigen Sommersemester. Die Gliederung ist jedoch an die Aufteilung des Stoffs im Wintersemester angepasst und soll eine grobe Hilfe bieten in welcher Reihenfolge es sinnvoll ist die Videos zu bearbeiten. Videos die im Wintersemester neu hinzukommen sind mit dem Kürzel (WS) im Namen gekennzeichnet und werden im Laufe des Wintersemesters hochgeladen.

Kurzbeschreibung Video Folien Annotierte
Folien
Material
Übungswoche 1
02.11.2020
WS.1 Organisatorisches (WS)
01.2 Übungsumgebung einrichten
01.3 Entwicklungsumgebung (SPiC IDE)
01.4 Hands-On (Licht)
02.1 Compileroptimierungen
02.2 Hands-On (Signallampe)
03.1 Variablen
03.2 Bitoperationen
WS.2 Aufgabe (zaehler) (WS)
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF




PDF
PDF
PDF
PDF

Übungswoche 2
09.11.2020
Übungswoche 3
16.11.2020
04.1 Ein-/Ausgabe über Pins
04.2 Hands-On (IO)
05.2 Zeiger und Felder
07.1 Interrupts
07.2 Synchronisation
07.3 Schlafmodi
07.4 Hands-On (Einfacher Interruptzähler)
WS.3 Aufgabe (izaehler) (WS)
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF


Übungswoche 4
23.11.2020
05.1 Module
05.3 Hands-On (Statistikmodul)
WS.4 Aufgabe (button) (WS)
PDF
PDF
PDF
PDF


Übungswoche 5
30.11.2020
08.1 Zustandsautomaten
08.2 Zeitgeber
08.3 Hands-On (Kaffeemaschine)
08.4 Aufgabe (ampel)
PDF
PDF
PDF
PDF
PDF
PDF

PDF
Übungswoche 6
07.12.2020
09.1 Strings
09.2 Hands-On (Laufschrift)
PDF
PDF
PDF

Übungswoche 7
14.12.2020
10.1 Linux Einführung
10.2 Stringfunktionen
10.3 Dynamische Speicherverwaltung
10.4 Fehlerbehandlung
10.5 Die Funktion main()
10.6 Hands-On (Linux, GCC & Valgrind)
10.7 Aufgabe (concat)
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF


PDF
Übungswoche 8
21.12.2020
11.2 GNU make
11.3 Hands-On (sgrep)
WS.5 Aufgabe (trac) (WS)
PDF
PDF
PDF
PDF


Übungswoche 9
11.01.2021
11.1 Dateien und Dateisysteme
11.4 Aufgabe (printdir)
PDF
PDF
PDF
PDF
Übungswoche 10
18.01.2021
12.1 Prozesse
12.2 Minimale Shell
12.3 Hands-On (run)
12.4 Aufgabe (mish - Teil A)
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF



mish_vorlage
Übungswoche 11
25.01.2021
13.1 Signale
13.2 Hands-On (Stoppuhr)
13.3 Aufgabe (mish - Teil B & C)
PDF
PDF
PDF
PDF
PDF
PDF
Übungswoche 12
01.02.2021
Übungswoche 13
08.02.2021

Abgabe und Bewertung der Übungsaufgaben

Die Abgabe erfolgt 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 und in /proj/i4spic/pub/ (beides 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.