Zephyr - Der kleine Bruder vom Tux
Sie haben die Aufgabe, ein Zephyr-Target aufzubauen?
Wie fange ich damit an?
Was benötige ich dazu?
Der Aufbau und die Funktionsweise eines Zephyr-Systems mit harten Echtzeiteigenschaften stehen im Mittelpunkt.
Im Seminar wird nur frei zugängliche Open-Source-Software eingesetzt.
Software-Entwickler und Hardware-Entwickler
Sichere Programmierkenntnisse in ANSI-C sowie Linux-Grundlagenkenntnisse (für den Entwicklungsrechner) sind von Vorteil.
Zephyr als RTOS
- Besonderheiten von Zephyr als RTOS
- Apache 2.0 Lizenzierung
- Cross-Development Toolchain
- Meta-Tool west
- Repository-Struktur: Architektur-, Board- und Projekt-Layer
- Emulation mit QEMU
Entwicklung
- Kernel und Userspace
- Multithreading
- Logging
- Shell
- Netzwerk-Anbindung
Speicherverwaltung
- Kernel- und Userspace Heap
- Speicheranalyse
- Slab Allocator
Debugging und Tracing
- Generierung und Auswertung von Core Dumps
- Tracing mit dem CTF-Format
Interprozesskommunikation
- FIFO
- ZBUS
Hardware-Anbindung
- Device-Tree: Syntax und Verwendung, Overlays
- Anbindung von Devices aus dem Device Tree
- Analyse von Buildproblemen mit Devices
- GPIO
- GPS, GNSS
- I2C-Bus
Interrupts
- Interrupt-Subsystem
- Interrupt-Sperren
- Preemptor Threads (Meta-IRQs)
- Kernel Timer
- Timer Tick
Scheduling
- Kooperative und preemptive Tasks
- Deadline Tasks
- Scheduler Lock
Übungen
- Alle Übungsaufgaben werden für ein STM32-Target (Olimex-STM32-E407) unter Verwendung frei zugänglicher Open-Source-Tools mit einem Linux-Hostsystem durchgeführt.
- Zu allen Themenfeldern gibt es praktische Übungen, so dass das Gelernte gleich ausprobiert und vertieft werden kann.
- Am Ende des Seminars haben die Teilnehmenden ein Beispielprojekt (Logging von Sensordaten) mit häufig benötigten Features (Logging, Shell, Netzwerk, GPIO, I2C) erstellt.