Grundlagen der Systemprogrammierung
PDF Lehrveranstaltungsverzeichnis English Version: GSP
Version: 2 | Letzte Änderung: 16.09.2019 10:26 | Entwurf: 0 | Status: vom verantwortlichen Dozent freigegeben
| Langname | Grundlagen der Systemprogrammierung |
|---|---|
| Anerkennende LModule | GSP_BaTIN |
| Verantwortlich |
Prof. Dr. Lothar Thieling
Professor Fakultät IME |
| Gültig ab | Sommersemester 2021 |
| Niveau | Bachelor |
| Semester im Jahr | Sommersemester |
| Dauer | Semester |
| Stunden im Selbststudium | 60 |
| ECTS | 5 |
| Dozenten |
Prof. Dr. Lothar Thieling
Professor Fakultät IME |
| Voraussetzungen | grundlegende prozedurale Programmierkenntnisse Grundlegende Funktionsweise eines Von-Neumann-Rechners Grundlagen der Digitaltechnik Automatem u. Zustandsüberführungsdiagramme |
| Unterrichtssprache | deutsch |
| separate Abschlussprüfung | Ja |
| Märtin: Rechnerarchitektur, Fachbuchverlag Leipzig (Carl Hanser) |
| Oberschelp/Vossen: Rechneraufbau und Rechnerstrukturen, Oldenbourg Verlag |
| Vogt, C: C für Java-Programmierer |
| Tanenbaum, Goodman: Computerarchitektur, Pearson Studium (Prentice Hall) |
| Details | Die Studierenden sollen in einer schriftlichen Klausur folgende Kompetenzen nachweisen: 1.) Sicherer Umgang mit grundlegenden Begrifflichkeiten, Mechanismes und Konnzepten. 2.) Programmierung unter C. 3.) Entwicklung von einfachen Hardwaretreibern. 4.) Entwicklung von Problemlösungen aus dem Bereich Messen-Steuern-Regeln unter Verwendung eines Mikrocontrollers nebst Echtzeitbetriebssystem. |
|---|---|
| Mindeststandard | Mindestens 50% der möglichen Gesamtpunktzahl. |
| Prüfungstyp | Klausur |
| Zieltyp | Beschreibung |
|---|---|
| Kenntnisse | Grundlagen der C-Programmierung Konstanten, Variablen, Datentypen Ausdrücke, Anweisungen, Kontrollstrukturen Präprozessoranweisungen Zeiger und Zeigerarithmetik Strukturierte Datentypen (Felder, Strukturen) Funktionen Standardbibliotheken Aufbau von Mehrdateienprogrammen mit Zugriff auf Bibliotheken Software-Entwicklungsumgebung Compiler Linker Debugger Simulator |
| Kenntnisse | hardwarenahe I/O-Programmierung in C Aufbau digitaler I/O-Ports Erreichbarkeit von I/O-Ports Memory-Mapped-I/O seperater I/O-Adressbereich Zugriff auf I/O-Ports mittels Zeiger Zugriff auf I/O-Ports mittels Treiberbibliotheken Implementierung von Treiberbibliotheken in C Bitbasierte Ein-Ausgabe und Auswertung von Daten mittels C |
| Kenntnisse | Programmierung von Aufgaben des Messens, Steuerns und Regelns in C Realisierung von Moore- und Mealy-Automaten in C Optimierung von zyklischen Zugriffen auf I/O-Daten |
| Kenntnisse | Aufbau und Funktionsweise eines Echtzeitbetreibssystems Anforderungen und Vergleich zu "normalen" Betriebssystemen Multitasking kooperativ und preemtive Priorität und Zustände einer Task Mutex, Semaphoren ereignisgesteuertes Multitaskig Intertask-Kommunikation mittels Queues Deadlocks und Race-Conditions |
| Kenntnisse | I/O-Schnittstellen eines Rechnersystems und deren Nutzung mittels C (am Beispiel des dedizierten Kleinrechnersystems) digitale Ports (siehe oben) Timer/Counter (inkl. Digital-Analog-Wandlung mittel Pulsweitenmodulation) Analog-Digital-Wandler serielle Schnittstelle Nutzung der I/O-Schnittstellen aus C heraus |
| Kenntnisse | Interrupts Interrupt-Quellen und -Arten (extern, intern, hardware, software) Interruptsverwaltung Interupt-Vektor-Tabelle Interrupts-Service-Routine zeitlicher Ablauf der Interruptsbearbeitung Mechanismen zur Bearbeitung konkurrierender Interrupts Priorisierung Unterbrechung Problenspezifischer Einsatz dieser Mechanismen Nutzung von I/O-Schnittstellen mittels Interrupt unter C |
| Kenntnisse | Laufzeitsystem für C-Programme Unterprogrammaufruf in Assembler Stack und Assemblerbefehle zur Stackmanipulation Programmzustandsrettung und -wiederherstellung mittels Stack C-Funktions-Parameterübergabe mittels Stack Verwaltung lokalen C-Variablen mittels Stack dynamischer Stackauf und -abbau bei geschaltelten C-Funktionsaufrufen manuelle Interpretation des Stackinhalts mittels Debugger |
| Fertigkeiten | Verstehen und erläutern der Arbeitsweise eines Mikrocontroller-System (Hardware und Echtzeitbetriebssystem) |
| Fertigkeiten | Detaillierten technischen Spezifikationen von I/O-Schnittstellen interpretieren, so dass zielgerichtete sinnvolle Konfigurationen erstellt werden können |
| Fertigkeiten | Erstellen von Treiberbibliotheken in C für verschiedene I/O-Schnittstellen mit Unterstützung ihrer Interruptfähigkeit digitale Ports Timer/Counter Analog-Digital-Wandler serielle Schnittstellen |
| Fertigkeiten | Systemverhalten aus spezifizierenden Texten herleiten technische Texte erfassen implizite Angaben erkennen und verstehen fehlende Angaben erkennen ableiten erfragen |
| Fertigkeiten | Erarbeitung von Problemlösungen aus dem Bereich Messen-Steuern-Regeln, die sich mit C-Programmen realisieren lassen Systemverhalten aus spezifizierenden Text herleiten Auswahl und Konfiguration der benötigten I/O-Schnittstellen Erarbeitung eines Softwarekonzeptes Aufteilung der Aufgaben in Prozesse Kommunikationskonzept Interruptskonzepte Aufstellen des Zustandsüberführungsdiagramms Auswahl der geeigneten Spezifikationsform (Moore versus Mealy) Bewertung der Spezifikation Vollständigkeit Determiniertheit Lebendigkeit Implementierung mittels C |
| Fertigkeiten | Laufzeitsystem für C-Programme analysieren und beschreiben dynamischer Stackauf und -abbau bei geschachtelten C-Funktionsaufrufen ermitteln und beschreiben dynamischen Stackaufbau mittels Debugger analysieren und bescheiben |
| Typ | Präsenzzeit (h/Wo.) |
|---|---|
| Vorlesung | 2 |
| Übungen (ganzer Kurs) | 1 |
| Übungen (geteilter Kurs) | 1 |
| Tutorium (freiwillig) | 0 |
|
keine |
| Begleitmaterial |
elektronische Vortragsfolien zur Vorlesung , elektronische Übungsaufgabensammlung , elektronische Software-Entwicklungsumgebung zum Compilieren, Linken, Debuggen, Simulieren , elektronische Sammlung von Beispiel-Programmen , elektronische Tutorials für Selbststudium Handhabung der Entwicklungsumgebung |
|---|---|
| Separate Prüfung | Nein |
| Zieltyp | Beschreibung |
|---|---|
| Fertigkeiten | siehe Fertigkeiten, die unter "Vorlesung/Übung->Lernziele->Fertigkeiten" aufgeführt sind |
| Fertigkeiten | zielgerichtetes Handhaben der Software-Entwicklungsumgebung |
| Fertigkeiten | komplexere Aufgaben in einem Kleinteam bewältigen |
| Fertigkeiten | Erarbeitung von komplexeren Problemlösungen aus dem Bereich Messen-Steuern-Regeln, die sich mit C-Programmen unter Verwendungf eines Echtzeitbetriebssystems realisieren lassen |
| Typ | Präsenzzeit (h/Wo.) |
|---|---|
| Praktikum | 1 |
| Tutorium (freiwillig) | 0 |
|
keine |
| Begleitmaterial |
elektronische Aufgabenstellung (Problembeschreibung) , elektronische Software-Entwicklungsumgebung zum Compilieren, Linken, Debuggen, Simulieren , elektronische Sammlung von Beispiel-Programmen , elektronische Tutorials für Selbststudium Handhabung der Entwicklungsumgebung |
|---|---|
| Separate Prüfung | Nein |
© 2022 Technische Hochschule Köln