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

Echtzeitsysteme - Übungen

News

25.10.2016 In unserem Wiki werden alle Infos zum Umgang mit dem EZS-Board und den entsprechenden Tools zusammengetragen.(tk)
25.10.2016 Bitte meldet eure Übungsgruppen hier an. (tk)

Ziel der Übung

Das Ziel der Übungsaufgaben ist die Entwicklung eines konkreten Echtzeitsystems auf Anwendungsebene. Zu diesem Zweck kommt in diesem Semester das Echtzeitbetriebssystem eCos als Entwicklungsplattform zum Einsatz. eCos wird in den verschiedensten Anwendungen (Kommunikation, Steuerung, ...) und Produkten (z.B. NETGEAR-Routern) eingesetzt und ist auch als Open-Source-Variante verfügbar. In den Übungen wird ein konkretes Echtzeitsystem auf Basis von eCos aufgebaut anhand dessen sich die verschiedenen Problemstellungen bei der Entwicklung solcher Systeme zeigen lassen.

Die Übungsaufgaben sind anwendungs- und praxisorientiert und sollen den Umgang mit einem Echtzeitbetriebssystem veranschaulichen. In diesem Semester entwickeln wir ein einfaches Oszilloskop für dessen korrekte Funktion gewisse Echtzeiteigenschaften eingehalten werden müssen. Dabei setzen wir die erlernten Verfahren und Konzepte aus der Vorlesung konkret um. Die Bearbeitung erfolgt teilweise auf einem STM32F411VET6 Evaluationsboard mit integriertem Hardwaredebugger, teilweise aber auch in einem Emulator (qemu, FailBochs auf x86). Das vom Lehrstuhl gestellte Evaluationsboard kann aufgrund der geringen Größe und dem integrierten Debugger auch zuhause genutzt werden.


Für die erfolgreiche Bearbeitung der Übungen sind keine Vorkenntnisse in hardwarenaher Programmierung erforderlich. Wir unterstützen dies bei Interesse in den Rechnerübungen aber gerne.

Voraussetzungen

Die Veranstaltung ist inhaltlich weitgehend in sich abgeschlossen und für alle Studierenden der genannten Studienfächern mit einer Begeisterungsfähigkeit für praktische, systemnahe Informatik geeignet. Unabhängig davon sind grundlegenden Betriebssystemkenntnissen, systemnaher Programmierung von eingebetteten Systemen und ein gewisses Durchhaltevermögen äußerst hilfreich.

Für die Bearbeitung der Übungsaufgaben sind entsprechend grundlegenden Programmierkenntnissen in C und/oder C++ notwendig. Hierfür ausreichend ist eine der folgenden Grundlagenveranstaltungen: Systemprogrammierung I/II, Softwaresysteme I, Systemnahe Programmierung in C beziehungsweise äquivalenter Veranstaltungen. Eine erfolgreiche Teilnahme ist für Nebenfächler auch auf der Basis der Grundlagen der Informatik (Programmiersprache: Java) möglich. Hierfür ist die Bereitschaft der eigenständigen (veranstaltungsbegleitenden) Aneignung grundlegender C/C++ Kenntnisse jedoch zwingend erforderlich. Entsprechende Unterlagen und Literaturempfehlungen werden von uns gerne bereitgestellt.

Fragebogen: Programmierkenntnisse

Als Hilfe zur Einordnung der eigenen C-Kenntnisse haben wir einen Aufgabenkatalog aus Systemnahe Programmierung in C zusammengestellt. Teilnehmer, die sowohl die meisten Fragen sicher beantworten können als auch die Programmieraufgabe lösen können, sollten keine handwerklichen Probleme mit den Übungsaufgaben haben und können sich voll auf die zu vermittelnden Konzepte konzentrieren. Fällt die Beantwortung der Fragen schwer, sollten die fraglichen Programmierkonzepte und die Bedeutung der unbekannten Schlüsselwörter nachrecherchiert werden, da diese nicht im Rahmen der Übung vermittelt werden können.

Weiterhin sind grundlegende Erfahrungen im Umgang mit der Linux-Umgebung in den CIP-Pools beziehungsweise deren Aneignung erforderlich.

Umfang der Übungen

Der Umfang der Übungen richtet sich nach den angestrebten Prüfung und den dafür notwendigen ECTS-Punkten (zusätzlich zu den 2,5 ECTS der Vorlesung):

2,5 ECTS: Die Bearbeitung aller Basis-Übungsaufgaben ist verpflichtend.
5,0 ECTS: Die Bearbeitung aller Basis- und Erweiterungs-Übungsaufgaben ist verpflichtend.

Sowohl Tafelübungen als auch Rechnerübungen werden zusammen stattfinden, da sich die beiden Übungsrichtungen hauptsächlich im Umfang der zu bearbeitenden Aufgaben unterscheiden.

Durchführung der Übungen

Die einzelnen Übungsaufgaben werden von jeweils drei Studierenden bearbeitet. Es werden dabei die in der Aufgabe geforderte Komponenten entwickelt und implementiert. In den Rechnerübungen stehen hierbei die Übungsleiter zur Beantwortung von evt. auftretenden Fragen zur Verfügung. Nach vollständiger Bearbeitung einer Übungsaufgabe stellt das jeweilige Team das Ergebnis einem Übungsleiter vor, der dann ggf. Hinweise auf nicht offensichtliche Details des Echtzeitproblems gibt. Für die Implementierung kommt die Programmiersprache C zum Einsatz.

Fragen und Antworten/Mailingliste

Für eine interaktivere Form der Meinungsfindung steht auch eine Mailingliste zur Verfügung: i4ezs@lists.informatik.uni-erlangen.de. In diese Mailingliste kann man sich hier eintragen.

Hardwarenahe Programmierung in C/C++

Für Übungsteilnehmer, die noch keine Erfahrung in der Hardwarenahen Programmierung mit C oder C++ besitzen, haben wir die größten Unterschiede zwischen eingebettetem C/C++ und Java zusammgengefasst.

Zusätzlich haben wir einige allgemeine Tipps für das Programmieren eingebetteter Systeme mit C/C++ zusammengefasst.

Folien und Dokumentation

Die Foliensätze zu den einzelnen Übungsterminen:
KapitelThemaDatumFolien
U1Organisation 24.10.2016 1x1, 2x2, animiert
U2Hallo Welt 1 1x1, 2x2, animiert
U3Hallo Welt 2 31.10.2016 1x1, 2x2, animiert
U4Antwortzeit 07.11.2016 1x1, 2x2, animiert
U5WCET Analyse 14.11.2016 1x1, 2x2, animiert
U6Simple Scope 21.11.2016 1x1, 2x2, animiert
U7System Science; Wiederholung 05.12.2016 1x1, 2x2, animiert
U8Cyclic Scope 12.12.2016 1x1, 2x2, animiert
U9Wiederholung 19.12.2016
U10Extended Scope 09.01.2017 1x1, 2x2, animiert
U11Zusteller 16.01.2017 1x1, 2x2, animiert
U12Zugriffskontrolle 23.01.2017 1x1, 2x2, animiert
U13Vorlesungswiederholung 30.01.2017
U14Vorlesungswiederholung 06.02.2017

Übungsaufgaben

Nr. Titel Kurzbeschreibung Ausgabetermin Abgabe Vorgaben
1 Hallo Welt Einführung in die Entwicklungsumgebung 24.10.2016 04.11.2016 & 08.11.2016 Aufgabe 1
GDB Einführung
HalloWelt.tar.gz
2 Antwortzeit Antwortzeiten von aperiodischen Aufgaben 07.11.2016 15.11.2016 & 18.11.2016 Aufgabe 2
Antwortzeit.tar.gz
3 Ausführungszeit Laufzeitmessung und Analyse 14.11.2016 05.12.2016 & 09.12.2016 Aufgabe 3
Ausfuehrungszeit.tar.gz
4 Simple Scope Umsetzung eines periodischen Echtzeitsystems am Beispiel eines (einfachen) Oszilloskops 21.11.2016 12.12.2016 & 16.12.2016 Aufgabe 4
SimpleScope.tar.gz
5 Cyclic Scope Einsatz von Strukturelementen für die zyklische Ablaufplanung eines Oszilloskops 12.12.2016 09.01.2017 & 13.01.2017 Aufgabe 5
CyclicScope.tar.gz
6 Extended Scope Aperiodische Steuerung des Oszilloskops 09.01.2017 23.01.2017 & 27.01.2017 Aufgabe 6
ExtendedScope.tar.gz
7 Extended Scope2 Erweiterte Aufgaben zu ExtendedScope 16.01.2017 23.01.2017 & 27.01.2017 Aufgabe 7
ExtendedScope2.tar.gz
8 Zugriffskontrolle Zugriffskontrolle und Synchronisationsprotokolle in eCos 23.01.2017 30.01.2017 & 03.02.2017 Aufgabe 8
Zugriffskontrolle.tar.gz

Evaluationsergebnis WS 2016/17

  • LQI: 1,74
  • Evaluationsergebniss:

Terminübersicht (Wochenplanung)

Mo Di Mi Do Fr
08:00
09:00
10:00
10:15 - 11:45
Ü EZS
(ab 24.10., nicht 28.11.)
(Wägemann)
0.031-113
10:15 - 11:45
Ü EZS
(ab 26.10., nicht 30.11.)
(Klaus)
0.031-113
11:00
12:00
13:00
14:00
14:00 - 16:00
RÜ EZS
(ab 25.10.)
(Schmaus)
02.151a-113, 02.151b-113
14:00 - 16:00
RÜ EZS
(ab 28.10.)
(Schmaus)
02.135-113
15:00
16:00
16:00 - 18:00
RÜ EZS
(ab 25.10.)
(Schmaus)
02.151a-113, 02.151b-113
17:00