Seminarinformationen
Seminar - Ziel
In diesem 2-tägigen Seminar „Embedded Systems: RTOS Entwicklung mit C/C++ Grundlagen“ erlangen Sie fundierte Kenntnisse zur Entwicklung von Embedded-Systemen unter Einsatz von Echtzeitbetriebssystemen (RTOS). Der Fokus liegt darauf, die grundlegenden Mechanismen und den praktischen Nutzen von RTOS zu verstehen, um robuste und leistungsfähige Echtzeitanwendungen zu realisieren.
Das Seminar behandelt zentrale Themen wie Prozesse, Threads, Scheduling und Synchronisation und vermittelt ein tiefgehendes Verständnis dieser Konzepte. Sie lernen, Echtzeitsysteme gezielt anzuwenden, Ihre Anwendungen effizient zu strukturieren und Herausforderungen in der Multicore-Programmierung sicher zu bewältigen. Zusätzlich werden praxisnahe Methoden zur Fehleranalyse und zur Optimierung der Systemleistung vermittelt, um die Zuverlässigkeit und Effizienz Ihrer Anwendungen zu steigern.
Nach Abschluss des Seminars sind Sie in der Lage, sowohl einfache als auch komplexe Echtzeitanwendungen auf Embedded-Plattformen wie dem ESP32 zu entwickeln und systematisch zu debuggen. Der praktische Teil erfolgt mit dem ESP32, einem Dual-Core-Mikrocontroller, und beinhaltet die Arbeit mit FreeRTOS sowie Zephyr OS, um die jeweiligen Besonderheiten und Einsatzmöglichkeiten beider Systeme im direkten Vergleich zu erleben.
Teilnehmer - Zielgruppe
- Software-Entwickler
- Software-Architekt
- Projektleiter
- Alle, die ein Echtzeitbetriebssystem (RTOS) einsetzen oder dies in Zukunft planen
Kurs - Voraussetzungen
Für eine optimale Teilnahme am Kurs empfehlen wir folgende Vorkenntnisse:
- Kenntnisse in der Programmiersprache C
- Grundkenntnisse über Mikrocontroller
- C++ Kenntnisse sind hilfreich, aber nicht zwingend erforderlich
Seminardauer
- 2 Tage
- 09:00 Uhr bis 17:00 Uhr
Schulungsunterlagen
Seminar-Inhalt / Agenda
Einführung in Embedded Systems
- Aufbau typischer Embedded-Architekturen
- Zusammenspiel von Hardware, Peripherie und Firmware
- Entwicklungs-Toolchain (Compiler, Linker, Debugger, west-Build)
- Bare-Metal vs. RTOS-basierte Systeme
- Beispiel: Analyse einer minimalen „Hello-LED“-Anwendung mit GPIO-Treiber
C/C++ für Embedded Systeme
- Speicherlayout (Stack, Heap, Data, BSS, Text)
- volatile, const, static — wann und warum
- Speicher- und Laufzeitoptimierung in Embedded C++
- Verwendung von Templates und constexpr ohne Overhead
- Beispiel: Implementierung einer constexpr-Tabelle zur ADC-Wert-Umrechnung
Echtzeitprinzipien
- Definition von Echtzeit, deterministische Reaktionszeiten
- Scheduling-Strategien: kooperativ vs. präemptiv
- Interrupt-Latenz, Prioritäten, Deadlocks, Race-Conditions
- Beispiel: Simulation zweier Threads mit unterschiedlicher Priorität
Hands-on – Bare-Metal zu RTOS-Übergang
- Von der Endlosschleife zum Multithreading
- Nutzung von APIs für GPIO, Timer, Thread-Erstellung
- Logging-Subsystem
- Beispiel: LED-Blink-Projekt zuerst ohne RTOS, danach mit Thread
Einführung in RTOS-Konzepte
- Aufgaben (Tasks/Threads), Scheduler, TCB
- Queues, Semaphoren, Mutex, Event Flags
- Speicherverwaltung im RTOS
- Lebenszyklus eines Threads
- Beispiel: Implementierung einer Sensor-/Logger-Kommunikation über eine Message Queue
Arbeiten mit einem RTOS
- Aufbau des RTOS-Projekts
- Task-Erstellung und Scheduling
- Kommunikation über Queues
- Synchronisation mit Semaphore/Mutex
- Beispiel: Aufbau eines kleinen Sensordaten-Loggers mit Shell-Befehl
Systementwurf und Architektur
- Designprinzipien für sichere Echtzeitsysteme
- Modularisierung: HAL, OSAL, Service Layer
- Fehlerbehandlung, Watchdog, State Machine
- RTOS getützte Security-Mechanismen
- Beispiel: Implementierung eines Watchdog-überwachten Tasks mit automatischem System-Reset
Hands-on – Mini-Projekt
- Aufbau eines vollständigen Zephyr-Systems mit mehreren Threads
- Ereignissteuerung über Queues, Safety-Überwachung über Watchdog
- Analyse von Systemressourcen (Stack-Usage, CPU-Load, Logging)
- Diskussion: Architektur, Robustheit, Optimierung
- Beispiel: Entwicklung eines Mini-Monitoring-Systems mit Sensor-Task, Logger-Task und Safety-Watchdog-Task
Weitere Schulungen zu Thema C
- u.a. in Nürnberg, Berlin, Stuttgart, München, KölnIn diesem 3-tägigen Seminar "Grundlagen der C-Programmierung" erhalten Sie einen professionellen Einstieg in die Programmiersprache C. Sie erlernen die grundlegenden Strukturen und Eigenschaften von C. Nach Abschluss der Schulung sind Sie in der Lage, eigene ...
- u.a. in Nürnberg, Berlin, Stuttgart, München, KölnIn diesem 4-tägigen Seminar „C Programmierung Grundlagen (ohne Vorkenntnisse)“ werden Ihnen die wesentlichen Konzepte und Techniken der C-Programmierung nähergebracht. Sie erhalten einen umfassenden Überblick über die Bedeutung von Datentypen und lernen die ...
- u.a. in München, Paderborn, Koblenz, Offenbach, NordhausenIn diesem 3-tägigen Seminar "C für Linux/UNIX-Netzwerk-Programmierung" erwerben Sie grundlegende Kenntnisse der Netzwerkkommunikation und Protokolle und lernen, wie Sie mit C unter Linux/UNIX Netzwerkanwendungen entwickeln. Sie werden die Funktionsweise der ...
- u.a. in Hannover, Nürnberg, Heidelberg, Jena, NordhausenIn diesem 3-tägigen Seminar "C-Programmierung für Linux/UNIX-Systemprogrammierung" erwerben Sie grundlegende Kenntnisse und Techniken der Systemprogrammierung auf diesen Plattformen. Ziel ist es, Ihnen das nötige Wissen und die Fähigkeiten zu vermitteln, um ...