Typische Anwendungen in Embedded-Software-Applikationen
API (Application Programming Interface) Beispiele
Übung: Sie programmieren die Kommunikation zwischen einer Interrupt-Service-Routine und einer Task sowie zwischen zwei Tasks mit dem Mailbox-Konzept
Speichermanagement
Speichersegmente (BSS, Stack, Heap)
Stack-Überwachung
Dynamisches Speichermanagement
Pool-Allocation-Pattern: Speicherpools und Speicherblöcke
MPU (Memory Protection Unit) und MMP (Memory Management Unit) Unterstützung
Typische Anwendungen in Embedded-Software-Applikationen
API (Application Programming Interface) Beispiel
Risiken erkennen und Stolpersteine vermeiden
Input/Output Management
Softwareschichten-Architektur
Treiberkonzepte
Beispiele mit serieller und Ethernet-Kommunikation
Typische Anwendungen in Embedded-Software-Applikationen
API (Application Programming Interface) Beispiel
Debugging auf der Ebene von Betriebssystem-Mechanismen
Trace auf Betriebsmittelebene
Vorstellung und Bewertung verschiedener Trace-Möglichkeiten und Darstellungsformen
Vorführung mit Logik-Analyzer und professionellen Trace Tools (Percepio Tracealyzer und ARM Keil MDK)
Vorgehensweise beim Entwurf von Embedded- und Echtzeitsoftware
Von der Idee zur fertigen Laufzeitarchitektur
Laufzeitarchitektur-Pattern und deren Einsatz für konkrete Aufgabenstellungen
Transformation einer bestehenden Software-Architektur ohne Betriebssystem auf eine mit Betriebssystem unter optimaler Ausnutzung der Betriebssystem-Mechanismen
Vorstellung und Vergleich verschiedener Laufzeitarchitektur-Konzepte - mit, aber auch ohne Betriebssystem
Vorhersagbarkeit und Berechenbarkeit der verschiedenen Laufzeitarchitektur-Konzepte
Auswahlhilfen für das richtige Laufzeitarchitektur-Konzept
Praxisbeispiel Messgeräte-Applikation
Übung: Sie entwickeln auf Basis von ausformulierten Anforderungen und einer Software-Architektur eine dazu passende Laufzeitarchitektur für ein real existierendes Embedded-System
Multicore- und Multiprozessor-Aspekte
Hardware- und Software-Architekturen
Aufgabenverteilung
Möglichkeiten des Betriebssystem-Einsatzes
Virtualisierung und Hypervisor
Interrupt- und Treiber-Konzepte
Wichtige Designaspekte
Dokumentation und Kommunikation
Die geeignete Darstellungsform einer Laufzeitarchitektur
Auszüge aus der UML (Unified Modeling Language)
Praxistipps
Übung: Sie nutzen Notationen und Diagramme der UML zur Darstellung der Laufzeitarchitektur
Betriebssystem-Abstraktion (OSAL Operating System Abstraction Layer)
Nutzendarstellung, Vor- und Nachteile
Programmierung
Praxisbeispiel mit FreeRTOSTM
Betriebssystem-Auswahlhilfen und aktuelle Produktübersicht
Leitfaden zur Betriebssystem-Auswahl
Praxistipps zum Vergleich von Betriebssystemen
Aktuelle Produktübersicht für Embedded-Software
Checkliste mit wichtigen Auswahlkriterien
Praktische Übungen
In der durchgängigen Programmierübung nutzen Sie Betriebssystem-Mechanismen, um Schritt für Schritt eine Messgeräte-Applikation zu entwickeln.
Zur Übungsdurchführung verwenden Sie das Arm Keil MDK (Microcontroller Development Kit) zusammen mit einer realen Hardware basierend auf einem Arm Cortex Mikrocontroller.
Als Echtzeit-Betriebssystem wählen Sie zwischen FreeRTOS oder dem CMSIS-RTOS Standard als Betriebssystem-Abstraktion.
Sie entwickeln und dokumentieren eine Laufzeitarchitektur für eine komfortable Elektromotor-Steuerung und setzen dazu Betriebssystem-Mechanismen ein.
Zur Übungsdurchführung nutzen Sie wahlweise den Enterprise Architect von Sparx Systems oder Papier und Bleistift.
MicroConsult Plus:
Sie erhalten von uns Ihre Übungsverzeichnisse und Lösungsbeispiele für alle Übungsaufgaben.
Sie erhalten zur Messgeräte-Applikation den Programmcode und ein UML-Modell sowie zur Elektromotor-Steuerung ebenfalls ein UML-Modell.
Sie erhalten eine Tool- und Software-Komponentenübersicht inklusive einer aktuellen Betriebssystem-Übersicht.
Sie erhalten zudem eine Checkliste mit Betriebssystem-Auswahlkriterien.
Sie bekommen hilfreiche Notationsübersichten für UML (Unified Modeling Language) und SysML (Systems Modeling Language).
Lernziele
Sie kennen nach dem RTOS-Grundlagen-Training die Mechanismen moderner Echtzeit-Betriebssysteme und können damit neue Software-Laufzeitarchitekturen entwickeln und bestehende warten - unabhängig von dem konkreten Echtzeitbetriebssystem-Produkt.
Sie können Software-Laufzeitarchitekturen dokumentieren und kommunizieren und eine fundierte Betriebssystem-Auswahl treffen.
Mit dem Betriebssystem und zusätzlichen Kommunikationsstacks machen Sie Ihr System IoT-fähig.
Zielgruppe
Der RTOS-Kurs richtet sich an Programmierer, Software-Entwickler, Software-Designer und Software-Architekten, die aktuell oder zukünftig ein Echtzeitbetriebssystem in ihrer Embedded-Software-Applikation einsetzen.
Voraussetzungen
Grundkenntnisse über Mikrocontroller sowie Programmierkenntnisse in C.