SPiC - Übungen im SS 2021
Allgemeines
Da SPiC auch dieses Semester nicht als Präsenzveranstaltung stattfinden kann, werden Tafel- und Rechnerübungen wieder online abgehalten. Für erstere stehen die Videos aus dem Sommersemester 2020 zur Verfügung und es wird eine zusätzliche wöchentliche Tafelübung/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.
Tafelübung (via BigBlueButton)
Es findet dieses Semester eine wöchentliche Tafelübung via BigBlueButton statt. Die Tafelübung ist auf etwa 60 Minuten angelegt. Nach dem Bearbeitungszeitraum einer Übungsaufgabe erarbeiten wir dort wie eine mögliche Lösung für die Aufgabe aussehen könnte. In Wochen ohne Übungsaufgabe, nutzen wir den Termin als Fragestunde zum Vorlesungs- und Übungsstoff bzw. haben für bestimmte Stoffbereiche interaktive Übungen erarbeitet.
Sie finden den Link zum BBB-Raum in diesem StudOn Ordner (Registrierung im Kurs erforderlich).
Rechnerübungen (via BigBlueButton)
Während der Rechnerübungen können Sie Fragen zu den aktuellen Übungsaufgaben stellen. Sie dürfen gerne mehrere Rechnerübungen pro Woche besuchen. Die Termine starten c.t. (also 15 Minuten später) und dauern 90 Minuten.
Die Rechnerübungen finden auf der BigBlueButton Instanz des Departments Informatik statt. Die Links sind in diesem StudOn Ordner (Registrierung im Kurs erforderlich) zu finden. Ein Beitritt ist u.U. erst möglich, nachdem das Meeting gestartet wurde. Achten Sie für Wortbeiträge bitte darauf, geeignete Mikrofone und Kopfhörer zu verwenden.
Die Rechnerübungen starten in der zweiten Vorlesungswoche (ab 19.04.2021) und enden mit den Übungsaufgaben (13.07.2021).
Übungsaufgaben
Nr. | Titel | Kurzbeschreibung | Ausgabe | Bearbeitungszeit (in Tagen) |
2er-Gruppen | Abzugebende Dateien |
Punkte |
---|---|---|---|---|---|---|---|
1 | blink | Kennenlernen der Umgebung, Implementierung eines LED-Blink-Programms |
19.04.2021 | 7 | Nein | blink.c | 3 |
2 | snake | C-Kontrollflusskonstrukte, Funktionen, SPiCboard-Elemente, Bitoperationen |
26.04.2021 | 7 | Ja | snake.c | 12 |
3 | led-modul | Zeiger, AVR I/O-Ports, modulare Programmierung |
03.05.2021 | 14 | Ja | led.c, test-led.c | 14 |
4 | spiel | Interrupts, Powersave-Modi, Nebenläufigkeit, Synchronisation, volatile |
17.05.2021 | 7 | Nein | spiel.c | 12 |
5 | ampel | Interrupts, Powersave-Modi, Nebenläufigkeit, Synchronisation, volatile |
26.05.2021 | 14 | Ja | ampel.c | 15 |
6 | concat | C unter Linux, Speicherallokation, Strings | 09.06.2021 | 7 | Nein | concat.c | 10 |
7 | printdir | POSIX, Strukturen | 16.06.2021 | 7 | Ja | printdir.c | 12 |
8 | mish | POSIX-Prozesse, Signale | 23.06.2021 | 21 | Ja | mish.c | 22 |
Folien & Aufzeichnungen der Übungen
Wir behalten uns Änderungen der Folien und Aufzeichnungen während des Semesters vor.
Abgabe und Bewertung der Übungsaufgaben
Die Abgabe erfolgt durch die SPiC-IDE und muss vor dem Abgabetermin erfolgen. Verspätete oder per eMail eingereichte Abgaben bewerten wir im Allgemeinen nicht. Zur Bearbeitung der Aufgaben wird automatisch ein Projektverzeichnis für Sie 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 es wie in
der ersten Aufgabenstellung beschrieben, da ansonsten das Abgabeprogramm
Ihre Lösung nicht finden kann.
Die abgegebenen Aufgaben werden von uns korrigiert, die Korrekturen finden Sie in im Unterordner korrektur Ihres Projektverzeichnisses. 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.