SPiC - Übungen im SS 2019
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
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.
Folien der Übungen
Studierende, die die Veranstaltung GSPiC hören, müssen nur die mit blauer Farbe hinterlegten Übungen besuchen.
Kurzbeschreibung |
Übungswoche |
A4 (1x1) |
A5 (1x2) |
A6 (2x2) |
Material |
1 |
Orga, Benutzerumgebung, Optimierungen, Aufgabe 1 |
29.04.2019 |
PDF |
PDF |
PDF |
|
2 |
Datentypen, Sichtbarkeit, Bitoperationen, Modulo, Polling, Aufgabe 2 |
06.05.2019 |
PDF |
PDF |
PDF |
|
3 |
Module, I/O Ports, Register, Aufgabe 3 |
13.05.2019 |
PDF |
PDF |
PDF |
|
4 |
Vertiefung (Zeiger), Hands-On (Zeiger) |
20.05.2019 |
PDF |
PDF |
PDF |
pointer.c |
5 |
Interrupts, Synchronisation, Stromsparmodi, Aufgabe 4 |
27.05.2019 |
PDF |
PDF |
PDF |
|
6 |
Timer, Aufgabe 5, Hands-On (Kaffeemaschine) |
03.06.2019 |
PDF |
PDF |
PDF |
|
7 |
Hands-on (Kaffeemaschine), Hands-On (Laufschrift) |
10.06.2019 |
PDF |
PDF |
PDF |
|
8 |
Linux-Umgebung, Fehlerbehandlung, Kommandozeilenparameter, Strings, Aufgabe 6, Buffer Overflow |
17.06.2019 |
PDF |
PDF |
PDF |
|
9 |
Dateisystem, Aufgabe 7 |
24.06.2019 |
PDF |
PDF |
PDF |
|
10 |
Prozesse, Aufgabe 8 (Teil a)) |
01.07.2019 |
PDF |
PDF |
PDF |
mish_vorlage.c |
11 |
Signale, Aufgabe 8 (Teil b) und c)) |
08.07.2019 |
PDF |
PDF |
PDF |
|
12 |
Klausurvorbereitung |
15.07.2019 |
PDF |
PDF |
PDF |
|
13 |
Vorstellung Aufgabe 8, Klausurvorbereitung (forts.) |
22.07.2019 |
PDF |
PDF |
PDF |
|
Ü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 |
29.04.2019 |
7 |
Nein |
blink.c |
3 |
2 |
snake |
C-Kontrollflusskonstrukte, Funktionen, SPiCboard-Elemente, Bitoperationen |
06.05.2019 |
7 |
Ja |
snake.c |
12 |
3 |
led-modul |
Zeiger, AVR I/O-Ports, modulare Programmierung |
13.05.2019 |
14 |
Ja |
led.c, test-led.c |
14 |
4 |
spiel |
Interrupts, Powersave-Modi, Nebenläufigkeit, Synchronisation, volatile |
27.05.2019 |
7 |
Nein |
spiel.c |
12 |
5 |
ampel |
Interrupts, Powersave-Modi, Nebenläufigkeit, Synchronisation, volatile |
03.06.2019 |
14 |
Nein |
ampel.c |
15 |
6 |
concat |
C unter Linux, Speicherallokation, Strings |
17.06.2019 |
7 |
Nein |
concat.c |
10 |
7 |
printdir |
POSIX, Strukturen |
24.06.2019 |
7 |
Ja |
printdir.c |
12 |
8 |
mish |
POSIX-Prozesse, Signale |
01.07.2019 |
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 und in
/proj/i4gspic/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.
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
- Benedict Herzog, M. Sc., Bernhard Heinloth, M. Sc.
- Angaben
- Übung
2 SWS, 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
| | | | Florian Simon Julius Gohsrich
| | |
| | | | Fabian Benschuh Fabian Hofbeck
| | |
| | | | Maxim Ritter von Onciul
| | |
| | | | Ouadie Touijer
| | |
| | | | Jens Wächtler
| | |
| | | | Lisa Wernet
| | |
| | | | Alexander von der Haar
| | |
| | | | Michael Baron
| | |
| | | | Lukas Geyer Stefan Schwanecke
| | |
| | | | Stefan Sächerl
| | |
| | | | Philipp Santer
| | |
| | | | Dennis Weber
| | |
| | | | Jonas Neuser Sebastian Scherbel
| | |
Übungen zu Systemnahe Programmierung in C (Ü SPiC)
- Verantwortliche
- Benedict Herzog, M. Sc., Bernhard Heinloth, M. Sc.
- Angaben
- Übung
2 SWS, 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!
Im Studiengang EEI wird für die Übungen zu "Grundlagen der systemnahen Programmierung in C" ein geringerer Stoffumfang behandelt, so dass die Veranstaltung hierfür insges. 1 SWS umfasst.
Kurse
| | Mo | 8:30 - 10:00 | 0.151-115 | Kurs T01, erwartete Teilnehmer: 23 |
| | Julius Gohsrich
| | |
| | Mo | 10:15 - 11:45 | 01.151-128 | Kurs T02, erwartete Teilnehmer: 23 |
| | Fabian Hofbeck
| | |
| | Mo | 12:15 - 13:45 | 00.153-113 | Kurs T03, erwartete Teilnehmer: 23 |
| | Maxim Ritter von Onciul
| | |
| | Mo | 12:15 - 13:45 | 0.154-115 | Kurs T04, erwartete Teilnehmer: 23 |
| | Florian Simon
| | |
| | Di | 8:30 - 10:00 | 0.151-115 | Kurs T05, erwartete Teilnehmer: 23 |
| | Lisa Wernet
| | |
| | Di | 10:15 - 11:45 | 0.031-113 | Kurs T06, erwartete Teilnehmer: 23 |
| | Volkmar Sieh
| | |
| | Di | 14:15 - 15:45 | 01.153-113 | Kurs T07, erwartete Teilnehmer: 23 |
| | Jens Wächtler
| | |
| | Mi | 8:15 - 9:45 | 00.153-113 | Kurs T08, erwartete Teilnehmer: 23 |
| | Alexander von der Haar
| | |
| | Mi | 12:15 - 13:45 | 00.151-113 | Kurs T09, erwartete Teilnehmer: 23 |
| | Stefan Schwanecke
| | |
| | Mi | 12:15 - 13:45 | 0.151-115 | Kurs T10, erwartete Teilnehmer: 23 |
| | Lukas Geyer
| | |
| | Mi | 14:15 - 15:45 | 00.151-113 | Kurs T11, erwartete Teilnehmer: 23 |
| | Stefan Sächerl
| | |
| | Do | 8:30 - 10:00 | 00.151-113 | Kurs T12, erwartete Teilnehmer: 23 |
| | Michael Baron
| | |
| | Do | 10:15 - 11:45 | 00.151-113 | Kurs T14, erwartete Teilnehmer: 23 |
| | Fabian Benschuh
| | |
| | Do | 10:15 - 11:45 | 00.153-113 | Kurs T15, erwartete Teilnehmer: 23 |
| | Jonas Neuser
| | |
| | Do | 10:15 - 11:45 | T 0.75 | Kurs T13, erwartete Teilnehmer: 23 |
| | Philipp Santer
| | |
| | Do | 16:15 - 17:45 | 02.134-113 | Kurs T16, erwartete Teilnehmer: 23 |
| | Ouadie Touijer
| | |
| | Fr | 8:15 - 9:45 | 00.152-113 | Kurs T17, erwartete Teilnehmer: 23 |
| | Sebastian Scherbel
| | |
| | Fr | 10:15 - 11:45 | 0.031-113 | Kurs T18, erwartete Teilnehmer: 23 |
| | Dennis Weber
| | |