Experience Embedded

Professionelle Schulungen, Beratung und Projektunterstützung

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

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 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.

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)
  • POSIX (pThread)
  • 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 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).

Im Preis enthalten:
Mittagessen, Getränke, Trainingsunterlagen und Ihr Teilnahmezertifikat


ALL INCLUSIVE!

Verwandte Trainings

RTOS-Anwendung: Entwicklung von Laufzeit-Architekturen für Embedded- und Echtzeitsysteme - Präsenz-Training
Anmeldecode: RTOS-RT

PXROS-HR Certified RTOS
Anmeldecode: PXROS

Embedded-Multicore-Mikrocontroller in der Praxis - Präsenz-Training
Anmeldecode: µCMULTI

Embedded C Schulung: Programmiermethoden und -tools für Embedded-Anwendungen - Präsenz-Training
Anmeldecode: EMB-C

Embedded C++: Objektorientierte Programmierung für Mikrocontroller mit C++/EC++ und UML - Präsenz-Training
Anmeldecode: EC++

Embedded C++ für Fortgeschrittene: Objektorientierte Programmierung für Mikrocontroller mit C++/EC++ - Präsenz-Training
Anmeldecode: EC++FOR

DSP-Grundlagen: Applikationen mit dem Mikrocontroller - Präsenz-Training
Anmeldecode: DSP-G

Software-Architektur-Schulung für Embedded-Systeme und Echtzeitsysteme - Präsenz-Training
Anmeldecode: EMB-AR

Coaching: Embedded- und Echtzeit-Betriebssysteme, RTOS
Anmeldecode: C-EMB-RTOS


Verwandte Trainings

Präsenz-Training

TerminPreis *Dauer
17.06. – 20.06.20242.600,00 €4 Tage 
26.11. – 29.11.20242.600,00 €4 Tage 
Anmeldecode: RTOS-AR
* Preis je Teilnehmer, in Euro zzgl. USt.
> Download Blanko-Anmeldeformular> Trainingsbeschreibung als PDF

Onsite-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

Live-Online - Deutsch

Termin Dauer
17.09. – 20.09.2024 4 Tage  
25.02. – 28.02.2025 4 Tage  

Präsenz-Training - Englisch

Termin Dauer
17.06. – 20.06.2024 4 Tage  
26.11. – 29.11.2024 4 Tage  

Live-Online - Englisch

Termin Dauer
17.09. – 20.09.2024 4 Tage  
25.02. – 28.02.2025 4 Tage  

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.

Coaching: Embedded- und Echtzeit-Betriebssysteme, RTOS

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

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)
  • POSIX (pThread)
  • 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 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).