Architektur und Entwicklung
Zephyr ist ein Open-Source-Echtzeitbetriebssystem für Bereiche, wo Linux zu groß ist: schon mit wenigen Kilobyte RAM ist es damit möglich, vernetzte Steuerungsgeräte zu bauen.
In diesem Seminar wird der Aufbau des Betriebssystems Zephyr veranschaulicht und basierend auf diesen theoretischen Grundlagen werden anhand von praktischen Anwendungsbeispielen die vom Betriebssystem angebotenen Mechanismen erlernt.
Die Übungen finden auf einem embedded Board (Olimex-STM32-E407) statt. Neben dem Board wird für das Seminar auch ein JTAG-Adapter sowie Sensoren für die Anbindung gestellt und in den Übungen verwendet.
Grosser Wert wird darauf gelegt, dass die theoretischen Teile mit praktischen Beispielen abgeschlossen werden, so dass der Teilnehmer nach dem Seminar in der Lage ist, das Erlernte auch im Projektalltag umzusetzen.
Trainer und Dozenten
Andreas Klinger ist selbstständiger Trainer und Entwickler. Schwerpunkte seiner Arbeit sind Linux Kerneltreiber sowie Embedded- und Echtzeit-Linux. Er submittet regelmässig zum Linux-Kernel und anderen Open-Source-Projekten.
Als Autor von Fachartikeln und als Referent auf Kongressen vermittelt er Know-How zu Open-Source.
Seit 2021 beschäftigt er sich intensiv mit der Verwendung von Zephyr im industriellen Umfeld und hat dazu bereits einen Kongressvortrag gehalten und einen Fachartikel (gerade im Veröffentlichungsprozess) erstellt.
Voraussetzungen
Programmierung in C
Grundlegende Kenntnisse in der Linux-Shell
Inhalt
Betriebssystem
- Monolithischer Aufbau des Betriebssystems
- Apache-2.0-Lizenz
- Threading-Modell, Kernel und Userspace, Syscalls
- Security
- Cryptographische Algorithmen und Protokolle
- Scheduling, kooperative und preemptive Threads, EDF-Scheduling
- Preemptor-Threads als Bottom-Halve zu Interrupts
- Timer, tickless Kernel
- Speicherverwaltung, Allokationen auf dem Heap, Stack
- Speicheranalyse zur Linkzeit und zur Laufzeit, Stack-Overflow
- Libraries, IPC, Logging, User-Allokationen
Repository und Tooling
- Installation der Entwicklungsumgebung (Zephyr-Repo, SDK, ...)
- Repository- und Projektstruktur
- Architektur-, SOC- und boardabhängige Sourcen und Konfigurationen
- Zephyr-Meta-Tool west
- Konfiguration, projektspezifische Defaults
- JTAG-Debugging mit openocd und gdb
- Analyse von Core-Dumps
- Tracen von Stack-Overflows
Entwicklung
- Device-Tree und Overlays (board- und projektspezifisch)
- Logging und Tracing
- Hardwareanbindung, GPIO, I2C, SPI
- Anbindung von Sensoren (am Beispiel BME680)
- Verwendung von Timern
- Messung von Latenzzeiten
- Anlegen eigener Shell-Kommandos
- Generierung von Systemlast (Interrupts, CPU, Memory, ...)
- Networking (DHCP, TCP/IP), Socketverbindung zu Server
- Installation der Entwicklungsumgebung (Zephyr-Repo, SDK, ...)
- Repository- und Projektstruktur
- Architektur-, SOC- und boardabhängige Sourcen und Konfigurationen
- Zephyr-Meta-Tool west
- Konfiguration, projektspezifische Defaults
- JTAG-Debugging mit openocd und gdb
- Analyse von Core-Dumps
- Tracen von Stack-Overflows
Entwicklung
- Device-Tree und Overlays (board- und projektspezifisch)
- Logging und Tracing
- Hardwareanbindung, GPIO, I2C, SPI
- Anbindung von Sensoren (am Beispiel BME680)
- Verwendung von Timern
- Messung von Latenzzeiten
- Anlegen eigener Shell-Kommandos
- Generierung von Systemlast (Interrupts, CPU, Memory, ...)
- Networking (DHCP, TCP/IP), Socketverbindung zu Server
Kurszeiten
Wer möchte, reist bis 22 Uhr am Vortag an und nutzt den Abend bereits zum Fachsimpeln am Kamin oder im Park.
An den Kurstagen dann von 9-18 Uhr (mit 2 Kaffee- und 1 Mittagspause) etwa 60% Schulungen und 40% Übungen. Selbstverständlich arbeitet jeder Teilnehmer am von uns gestellten Notebook oft parallel zum Referenten mit.
Anschließend Abendessen und Angebote für Fachsimpeln, Ausflüge uvm. Wir schaffen eine Atmosphäre, in der Fachleute sich ungezwungen austauschen. Wer das nicht will, wird zu nichts gezwungen und findet auch jederzeit Ruhe.
Termine und Anmeldung
-
27. Juli 2023, 2 Tage
Zephyr anmelden