Arduino steigt auf ZephyrOS-Cores um
Nachdem ARM das bisher genutzte Mbed abgekündigt hat, steigt Arduino nun auf das quelloffene ZyphyrOS um. Erste Betaversionen können jetzt getestet werden.
(Bild: Arduino.cc)
Arduino gibt die ersten Beta-Releases von ZephyrOS-Cores für Arduino-Boards bekannt. ZephyrOS ist ein Echtzeitbetriebssystem (RTOS) mit offenem Quellcode und wird den bisher benutzten Mbed-Core ersetzen, der von ARM zum Juli 2026 abgekündigt wurde.
Core? Mbed? Zephyr?
Die Nachricht, dass ARM Mbed nicht mehr unterstützt, hat in der Community für Aufsehen gesorgt und betrifft unter anderem Marken wie micro:bit, Raspberry Pi und natürlich Arduino, die beliebten Maker-Boards mit einer Mbed-Grundlage.
Jedes Arduino-Board hat seinen entsprechenden „Core“, d. h. die Implementierung der Arduino-Programmiersprache für seine jeweilige Mikrocontroller-Architektur. Zweck der Arduino-Cores ist es, unabhängig vom verwendeten Board dieselben Befehle und Anweisungen (APIs) bereitzustellen.
Für einige Boards – hauptsächlich GIGA, Nano 33 BLE, Nano RP2040 Connect, Portenta, Nicla-Familie und Opta – hat Arduino den Arduino-Kern auf einer Mbed-OS Basis implementiert, um die Entwicklung zu beschleunigen. Die Arduino-Kerne für andere beliebte Arduino-Boards der UNO-, MKR- und Nano-Familien sind anders implementiert und verwenden kein Mbed-OS.
(Bild: Arduino.cc)
ZephyrOS!
ZephyrOS ist ein modernes quelloffenes (Apache 2.0) Echtzeitbetriebssystem, das für Embedded-Systems entwickelt wurde. Es ist modular, skalierbar und unterstützt mehrere Hardware-Architekturen, was es zu einer ausgezeichneten Wahl für die nächste Generation von (Arduino)-Boards macht. Aber auch die vorhandenen Boards (Ausnahmen siehe oben) werden unterstützt. Bei der Entwicklung stehen Echtzeitleistung (präzises Timing, hohe Reaktionsgeschwindigkeit), Flexibilität (Skalierbarkeit), Erweiterbarkeit (Libraries, Subsystems, Hardwareunterstützung) im Vordergrund. Durch den Quellcode und die Dokumentation wird die Entwicklung gut unterstützt.
Arduino-Cores
Der Arduino-Core für ZephyrOS bringt erhebliche Änderungen mit sich, wie Arduino-„Sketches“ erstellt und ausgeführt werden. Die Integration zwischen Arduino-Kern und ZephyrOS wird jedoch nahtlos im Hintergrund ausgeführt und bietet RTOS-Funktionen wie Echtzeitplanung und Multitasking, während die Entwicklung so unkompliziert wie eh und je in der Arduino IDE bleibt.
Da nur der Benutzercode und die Bibliotheken kompiliert werden, während der Rest von ZephyrOS bereits auf dem Board ist oder schon fertig kompiliert vorliegt, ist die Kompilierung schneller und die resultierenden Binärdateien sind kleiner. Die „Sketches“ (so nennt Arduino den C/C++ Quellcode des Benutzers) werden als ELF-Dateien (ein Linker-Format) kompiliert und von einer vorkompilierten Zephyr-basierten Firmware auf dem Board dynamisch geladen. Das verspricht schnellere Uploadzeiten in der Entwicklung. Das Benutzen von Funktionen wie Threading, Interprozesskommunikation und Echtzeitprogrammierung wird vereinfacht.
Für Entwickler, die einmal in das neue Zyphyr reinschauen möchten, gibt es die Quellen und eine Dokumentation auf dem GitHub von Arduino. Hier gibt es auch eine kurze Einführung, wie man Zephyr in der Arduino IDE (2.x.x) benutzt.
ZephyrOS ist in der letzten Zeit öfter mal im Fokus. Das letzte Produkt, in dem es mir als Maker aufgefallen ist (Kurzvorstellungen in Make 7/24), war der iFixit-Lötkolben und die Station dazu. Schließt man den Lötkolben per USB-C an einen Computer an, bekommt man fix einen Command-Prompt in einem Terminal-Programm, die Befehle sind nun auch in einem GitHub dokumentiert.
Videos by heise
(caw)