Übung
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.EZS-Board
Die Bearbeitung der Übungsaufgaben erfolgt auf einem STM32F429I-DISCOVERY Evaluationsboard mit integriertem Hardwaredebugger. Das vom Lehrstuhl gestellte Evaluationsboard kann aufgrund der geringen Größe und dem integrierten Debugger auch zuhause genutzt beziehungsweise für den eigenen Bedarf erworben werden. Das zugehörige Gehäuse lässt sich leicht im FAU FabLab anhand der folgenden Baupläne nachgefertigt werden (Materialstärke 3mm): ezsboard.svg (Anleitung)Voraussetzungen
Die Veranstaltung ist inhaltlich weitgehend in sich abgeschlossen und für alle Studierenden der Informatik sowie informatiknaher Studiengänge wie beispielsweise Mechatronik, Elektrotechnik, I&K, CE, Maschinenbau oder Medizintechnik. Mit am wichtigsten ist eine Begeisterungsfähigkeit für praktische, systemnahe Informatik. Unabhängig davon sind grundlegende Kenntnisse von Betriebssystemen und systemnaher Programmierung eingebetteter Systeme sowie ein gewisses Durchhaltevermögen äußerst hilfreich. Für die Bearbeitung der Übungsaufgaben sind entsprechend grundlegende Programmierkenntnisse 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.Folien und Dokumentation
Hier werden während des Semester der Terminplan sowie die Übungsfolien und Aufgabenstellungen veröffentlicht. Die Foliensätze zu den einzelnen Übungsterminen:Kapitel | Thema | Datum | Folien |
---|---|---|---|
U1 | Organisation | 27.04.2022 | 1x1, 2x2, animiert |
U2 | Hallo Welt | 27.04.2022 | 1x1, 2x2, animiert |
U3 | Systemsoftwareentwicklung | 04.05.2022 | 1x1, 2x2, animiert |
U4 | Antwortzeit | 11.05.2022 | 1x1, 2x2, animiert |
U5 | WCET Analyse | 18.05.2022 | 1x1, 2x2, animiert |
U6 | Simple Scope | 01.06.2022 | 1x1, 2x2, animiert |
U7 | Cyclic Scope | 08.06.2022 | 1x1, 2x2, animiert |
U8 | Nicht-periodische Aufgaben, Zusteller, Extended Scope | 29.06.2022 | 1x1, 2x2, animiert |
U9 | Zugriffskontrolle | 06.07.2022 | 1x1, 2x2, animiert |
U10 | System Science | 13.07.2022 | 1x1, 2x2, animiert |
U11 | Wiederholung | 20.07.2022 | 1x1, 2x2, animiert |
Übungsaufgaben
Nr. | Titel | Kurzbeschreibung | Ausgabetermin | Fester Termin | Vorgaben |
---|---|---|---|---|---|
1 | Hallo Welt | Einführung in die Entwicklungsumgebung | 27.04.2022 | 16.05.2022 | Aufgabe 1 HalloWelt.tar.gz |
2 | Antwortzeit | Antwortzeiten von aperiodischen Aufgaben | 11.05.2022 | 23.05.2022 | Aufgabe 2 Antwortzeit.tar.gz |
3 | Ausführungszeit | Laufzeitmessung und Analyse | 18.05.2022 | 13.06.2022 | Aufgabe 3 Ausfuehrungszeit.tar.gz |
4 | Simple Scope | Umsetzung eines periodischen Echtzeitsystems am Beispiel eines (einfachen) Oszilloskops | 01.06.2022 | 20.06.2022 | Aufgabe 4 SimpleScope.tar.gz |
5 | Cyclic Scope | Einsatz von Strukturelementen für die zyklische Ablaufplanung eines Oszilloskops | 08.06.2022 | 04.07.2022 | Aufgabe 5 CyclicScope.tar.gz |
6 | Extended Scope | Aperiodische Steuerung des Oszilloskops | 29.06.2022 | 18.07.2022 | Aufgabe 6 ExtendedScope.tar.gz |
7 | Zugriffskontrolle | Zugriffskontrolle und Synchronisationsprotokolle in eCos | 06.07.2022 | 25.07.2022 | Aufgabe 7 Zugriffskontrolle.tar.gz |