Experience Embedded

Professionelle Schulungen, Beratung und Projektunterstützung

RTOS-Grundlagen und Anwendung: Mechanismen und deren Einsatz in Laufzeit-Architekturen für Embedded- und Echtzeitsysteme

Angesichts steigender Komplexität in Embedded-Software-Applikationen und immer leistungsfähigerer Hardware werden auch immer mehr Echtzeitbetriebssysteme in die Software mit eingebunden. Der Einsatz von Echtzeit-Betriebssystemen stellt neue Herausforderungen an die Entwicklung.

  • Inhalt
     
  • Ziele -
    Ihr Nutzen
  • Teilnehmer
     
  • Voraussetzungen
     

Sie kennen nach dem Training RTOS-Grundlagen 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.

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.

Grundkenntnisse über Mikrocontroller sowie Programmierkenntnisse in C.

Allgemeine Einführung in Echtzeitbetriebssysteme

  • Wichtige Grundbegriffe (Betriebssystem, Echtzeit, Task, Multitasking, Scheduler)
  • Klassifikation von Embedded-Systemen
  • Klassifikation von Betriebssystem-Arten
  • Anforderungen an Betriebssystem, Hardware, Entwicklungstools
  • Lizenzmodelle
  • Betriebssystem-Abstraktionsschicht (OSAL Operating System Abstraction Layer)
  • Nutzen, Vorteile und Nachteile beim Betriebssystem-Einsatz
  • Praxisbeispiel: Aufteilung einer Applikation in Tasks

Prozess-/Thread-/Task-Management

  • Differenzierung zwischen Prozess, Task und Thread
  • Taskzustände und Übergänge
  • Taskeigenschaften und Mehrfachinstanziierung
  • Spezifische Tasks
  • Task-Kontext-Umschaltung und Hook-Routinen
  • Designaspekte für Tasks
  • Scheduler und deren Algorithmen (Endless Loop, Time-triggerd, Priority, Time-slice, Round-Robin, EDF Earliest Deadline First)
  • Scheduler-Funktionalität und Designaspekte
  • Die richtige Scheduler-Auswahl treffen
  • Typische Anwendungen in Embedded-Software-Applikationen
  • API (Application Programming Interface) Beispiele
  • Übung: Sie programmieren eine Task, instanziieren diese zweimal mit unterschiedlichen Prioritätskombinationen und werten das Verhalten aus

Interrupt Management

  • Interrupt-Bearbeitung mit und ohne Betriebssystem
  • Interrupt-Latenzzeit und Interrupt-Blockierzeit
  • Priorisierung
  • Interrupt-Serviceroutinen
  • Interrupt-Threads/Tasks
  • Designhinweise
  • API (Application Programming Interface) Beispiele
  • Übung: Sie programmieren eine Interrupt-Service-Routine und eine Task, um einen AD-Wandler zu servicen

Time Management

  • Systemtick und Konfiguration
  • Delay-, Timeout-, Intervall-, Software-Watchdog-, Alarm-Timer
  • Typische Anwendungen in Embedded-Software-Applikationen
  • API (Application Programming Interface) Beispiele
  • Übung: Sie programmieren eine Intervall-Timer-gesteuerte Taskausführung

Koordinationsmechanismen: Synchronisation

  • Events, Signals: global, local, einzeln, als Gruppe, mit/ ohne Parameter
  • Semaphore, Promise und Future
  • Typische Anwendungen in Embedded-Software-Applikationen
  • API (Application Programming Interface) Beispiele
  • Übung: Sie programmieren eine Synchronisation zwischen einer Interrupt-Service-Routine und einer Task

Koordinationsmechanismen: Ressourcen-Management

  • Race Conditions
  • Ressource: Definition, Granularität und Blockierzeiten
  • Semaphore, Mutex, Critical Section, Condition Variable, Spinlock
  • Problemsituationen: Deadlock und Priority Inversion
  • Lösungen: Priority Inheritance, Priority Ceiling u.a.
  • Reader/ Writer Patterns
  • Typische Anwendungen in Embedded-Software-Applikationen
  • API (Application Programming Interface) Beispiele
  • Übung: Sie programmieren einen geschützten Zugriff von zwei Tasks auf eine gemeinsam genutzte Ressource

Kommunikationsmechanismen

  • Nachrichtenkonzepte: System-lokal und System-übergreifend
  • Shared-Memory, Mailbox, Queue, Message Buffer, Pipe, Message Based, Socket
  • 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 CortexTM Mikrocontroller.
  • Als Echtzeit-Betriebssystem wählen Sie zwischen FreeRTOSTM oder der ARM Keil Implementierung des CMSIS-RTOS Standards.
  • 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:

  • Als Teilnehmer haben Sie die folgenden Möglichkeiten, um Ihre Übungen und die von MicroConsult entwickelten Lösungen aus dem Workshop mitzunehmen:
  • Sie nehmen die Dateien direkt auf einem von MicroConsult bereitgestellten kostenfreien USB-Stick mit, oder …
  • Sie senden sich die Dateien selbst per E-Mail zu, oder …
  • Sie erhalten auf Anfrage Zugriff auf die Dateien per Download.
  • 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) im A3 Format.


Im Preis enthalten:

Mittagessen, Getränke, Trainingsunterlagen und Teilnahmezertifikat


Für Personalabteilungen

Sie können in unserem Online-Formular bis zu 5 Teilnehmer auf ein Training buchen.
Möchten Sie mehrere Teilnehmer auf verschiedene Trainings buchen, kontaktieren Sie uns bitte!

Bitte beachten Sie auch unser Bonusprogramm bei der gleichzeitigen Buchung von mehreren Trainings und/oder Teilnehmern.

Für Personalabteilungen

Verwandte Trainings

RTOS-Anwendung: Entwicklung von Laufzeit-Architekturen für Embedded- und Echtzeitsysteme
Trainings-Code: RTOS-RTA

OSEK-Grundlagen
Trainings-Code: OSEK

Embedded-Multicore-Mikrocontroller in der Praxis
Trainings-Code: µC-MULTI

Embedded C Schulung: Programmiermethoden und -tools für Embedded-Anwendungen
Trainings-Code: EMB-C

Embedded C++: Objektorientierte Programmierung für Mikrocontroller mit C++/EC++ und UML
Trainings-Code: EC++

Embedded C++ für Fortgeschrittene: Objektorientierte Programmierung für Mikrocontroller mit C++/EC++
Trainings-Code: EC++/FOR

DSP-Grundlagen: Applikationen mit dem Mikrocontroller
Trainings-Code: DSP-WORK


Verwandte Trainings

Offenes Training

TerminPreis *Dauer
15.01. – 18.01.20182.200,00 €4 Tage 
16.04. – 19.04.20182.200,00 €4 Tage 
16.07. – 19.07.20182.200,00 €4 Tage 
08.10. – 11.10.20182.200,00 €4 Tage 
21.01. – 24.01.20192.200,00 €4 Tage 
25.03. – 28.03.20192.200,00 €4 Tage 
Anmeldecode: RTOS-ARCH
* Alle Preise zzgl. der gesetzlichen USt.


> Download Blanko-Anmeldeformular
> Trainingsbeschreibung als PDF

Inhouse Training

In maßgeschneiderten Workshops kombinieren wir Ihre konkreten Projektaufgaben mit unserem Trainingsangebot. Dabei berücksichtigen wir Ihre Anforderungen bezüglich Inhalt, Zeit, Ort, Dauer, technischem Umfeld und Vermittlungsmethodik.

Für Ihre Anfrage oder weiterführende Informationen stehen wir Ihnen gern zur Verfügung.

> Trainingsbeschreibung als PDF

Coaching

Unsere Coaching-Angebote bieten den großen Vorteil, dass unsere Experten ihr Wissen und ihre Erfahrungen direkt in Ihren Lösungsprozess einbringen und damit unmittelbar zu Ihrem Projekterfolg beitragen.

Für Ihre Anfrage oder weiterführende Informationen stehen wir Ihnen gern zur Verfügung.

RTOS-Grundlagen und Anwendung: Mechanismen und deren Einsatz in Laufzeit-Architekturen für Embedded- und Echtzeitsysteme

Inhalt

Allgemeine Einführung in Echtzeitbetriebssysteme

  • Wichtige Grundbegriffe (Betriebssystem, Echtzeit, Task, Multitasking, Scheduler)
  • Klassifikation von Embedded-Systemen
  • Klassifikation von Betriebssystem-Arten
  • Anforderungen an Betriebssystem, Hardware, Entwicklungstools
  • Lizenzmodelle
  • Betriebssystem-Abstraktionsschicht (OSAL Operating System Abstraction Layer)
  • Nutzen, Vorteile und Nachteile beim Betriebssystem-Einsatz
  • Praxisbeispiel: Aufteilung einer Applikation in Tasks

Prozess-/Thread-/Task-Management

  • Differenzierung zwischen Prozess, Task und Thread
  • Taskzustände und Übergänge
  • Taskeigenschaften und Mehrfachinstanziierung
  • Spezifische Tasks
  • Task-Kontext-Umschaltung und Hook-Routinen
  • Designaspekte für Tasks
  • Scheduler und deren Algorithmen (Endless Loop, Time-triggerd, Priority, Time-slice, Round-Robin, EDF Earliest Deadline First)
  • Scheduler-Funktionalität und Designaspekte
  • Die richtige Scheduler-Auswahl treffen
  • Typische Anwendungen in Embedded-Software-Applikationen
  • API (Application Programming Interface) Beispiele
  • Übung: Sie programmieren eine Task, instanziieren diese zweimal mit unterschiedlichen Prioritätskombinationen und werten das Verhalten aus

Interrupt Management

  • Interrupt-Bearbeitung mit und ohne Betriebssystem
  • Interrupt-Latenzzeit und Interrupt-Blockierzeit
  • Priorisierung
  • Interrupt-Serviceroutinen
  • Interrupt-Threads/Tasks
  • Designhinweise
  • API (Application Programming Interface) Beispiele
  • Übung: Sie programmieren eine Interrupt-Service-Routine und eine Task, um einen AD-Wandler zu servicen

Time Management

  • Systemtick und Konfiguration
  • Delay-, Timeout-, Intervall-, Software-Watchdog-, Alarm-Timer
  • Typische Anwendungen in Embedded-Software-Applikationen
  • API (Application Programming Interface) Beispiele
  • Übung: Sie programmieren eine Intervall-Timer-gesteuerte Taskausführung

Koordinationsmechanismen: Synchronisation

  • Events, Signals: global, local, einzeln, als Gruppe, mit/ ohne Parameter
  • Semaphore, Promise und Future
  • Typische Anwendungen in Embedded-Software-Applikationen
  • API (Application Programming Interface) Beispiele
  • Übung: Sie programmieren eine Synchronisation zwischen einer Interrupt-Service-Routine und einer Task

Koordinationsmechanismen: Ressourcen-Management

  • Race Conditions
  • Ressource: Definition, Granularität und Blockierzeiten
  • Semaphore, Mutex, Critical Section, Condition Variable, Spinlock
  • Problemsituationen: Deadlock und Priority Inversion
  • Lösungen: Priority Inheritance, Priority Ceiling u.a.
  • Reader/ Writer Patterns
  • Typische Anwendungen in Embedded-Software-Applikationen
  • API (Application Programming Interface) Beispiele
  • Übung: Sie programmieren einen geschützten Zugriff von zwei Tasks auf eine gemeinsam genutzte Ressource

Kommunikationsmechanismen

  • Nachrichtenkonzepte: System-lokal und System-übergreifend
  • Shared-Memory, Mailbox, Queue, Message Buffer, Pipe, Message Based, Socket
  • 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 CortexTM Mikrocontroller.
  • Als Echtzeit-Betriebssystem wählen Sie zwischen FreeRTOSTM oder der ARM Keil Implementierung des CMSIS-RTOS Standards.
  • 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:

  • Als Teilnehmer haben Sie die folgenden Möglichkeiten, um Ihre Übungen und die von MicroConsult entwickelten Lösungen aus dem Workshop mitzunehmen:
  • Sie nehmen die Dateien direkt auf einem von MicroConsult bereitgestellten kostenfreien USB-Stick mit, oder …
  • Sie senden sich die Dateien selbst per E-Mail zu, oder …
  • Sie erhalten auf Anfrage Zugriff auf die Dateien per Download.
  • 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) im A3 Format.

Merkzettel


Sie haben derzeit keine Trainings auf dem Merkzettel.