SPiC - Übungen im SS 2020
Allgemeines
Da Präsenzveranstaltungen dieses Semester nicht möglich sind, ist der übliche Übungsbetrieb bestehend aus Tafel- und Rechnerübungen nicht möglich. Statt der Tafelübungen wird es Aufzeichnungen geben und statt der Rechnerübungen wird es Online-Rechnerübungen 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
finden Sie auf der libspicboard-Doku Seite.
Eine Übersicht über gängige libc
Funktionen und Systemaufrufe finden Sie auf der Linux libc-Doku Seite und auf den entsprechenden Manpages.
Zoom Rechnerübungen
Die Rechnerübungen starten in der zweiten Vorlesungswoche (ab 27.04.2020). Es dürfen beliebige (auch mehrere) Online Rechnerübungen besucht werden.
Die Rechnerübungen enden am 07.08.2020.
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. Bitte achtet darauf geeignete Mikrofone und Kopfhörer zu verwenden. Nicht geeignet sind Laptop Mikrofone und die Nutzung von Lautsprechern. Am besten geeignet sind Hör-Sprech-Kombinationen (Headsets). Die Rechnerübungen starten c.t. (also 15 Minuten später) und dauern 90 Minuten. Gibt es 30 Minuten nach Start der Rechnerübung keine Teilnehmer, kann der Tutor die Rechnerübung frühzeitig beenden.
Je nach Auslastung der Übung kann es sein, dass ihr Stumm geschalten werdet. Um eine Frage zu stellen, nutzt bitte die Hand heben (Zoom Hilfeseite [en]) Funktionalität in Zoom. Der Tutor wählt anschließend einen Studierenden mit Frage aus und entfernt temporär die Stummschaltung. Bitte haltet eure IDM-Kennung bereit (zum Beispiel jy52coty
), wenn der Tutor auf euren Code schauen soll. Soll der Tutor auf eure SPiC-IDE zugreifen, haltet bitte den Zugriffscode bereit (zum Beispiel SPiCxxxxxxx
).
Um unabsichtliche Plagiate zu verhindern, können euch Tutoren in sogenannte Breakout Räume (Zoom Hilfeseite [en]) einladen. 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 |
Ü03 (Gohsrich) |
Ü10 (Stenzel) |
|||
10:00- 12:00 |
Ü01 (Hofbeck) |
Ü04 (Hemp) |
Ü06 (Baron) |
Ü11 (Faghih-Naini) |
Ü14 (Weber) |
12:00- 14:00 |
Ü02 (Benschuh) |
Ü07 (Felsheim) |
Ü12 (Sächerl) |
Ü15 (Schwab) |
|
14:00- 16:00 |
Ü05 (Brohm) |
Ü08 (v.d. Haar) |
Ü13 (Gebert) |
||
16:00- 18:00 |
Ü09 (Traut) |
Übungsaufgaben
Studierende, die die Veranstaltung GSPiC (2,5 ECTS) hören (also nicht SPiC oder InfoEEI), müssen nur die mit blauer Farbe hinterlegten Aufgaben abgeben.
Nr. | Titel | Kurzbeschreibung | Ausgabe | Bearbeitungszeit (in Tagen) |
Abzugebende Dateien |
Punkte |
---|---|---|---|---|---|---|
1 | blink | Kennenlernen der Umgebung, Implementierung eines LED-Blink-Programms |
27.04.2020 | 14 | blink.c | 3 |
2 | snake | C-Kontrollflusskonstrukte, Funktionen, SPiCboard-Elemente, Bitoperationen |
11.05.2020 | 14 | snake.c | 12 |
3 | led-modul | Zeiger, AVR I/O-Ports, modulare Programmierung |
25.05.2020 | 14 | led.c, test-led.c | 14 |
4 | spiel | Interrupts, Powersave-Modi, Nebenläufigkeit, Synchronisation, volatile |
08.06.2020 | 7 | spiel.c | 12 |
5 | ampel | Interrupts, Powersave-Modi, Nebenläufigkeit, Synchronisation, volatile |
15.06.2020 | 14 | ampel.c | 15 |
6 | concat | C unter Linux, Speicherallokation, Strings | 29.06.2020 | 7 | concat.c | 10 |
7 | printdir | POSIX, Strukturen | 06.07.2020 | 14 | printdir.c | 12 |
8 | mish (optional) | POSIX-Prozesse, Signale | 20.07.2020 | 14 | mish.c | 0 |
Folien & Aufzeichnungen der Übungen
Studierende, die die Veranstaltung GSPiC (2,5 ECTS) hören (also nicht SPiC oder InfoEEI), müssen nur die mit blauer Farbe hinterlegten Übungen bearbeiten.
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. 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.