Zephyr-RTOS Übersicht Und Status

Zephyr-RTOS Übersicht Und Status

Zephyr-RTOS Übersicht und Status ECC 1. Juni 2021, © Markus Kappeler About me ● Markus Kappeler ● 25 years in business ● Soft- and Hardware development ● Founder of bytesatwork ● Sailing, Skiing Hiking and Mountain-Biking Agenda ● Zephyr ● Was ist Zephyr ● Features ● Roadmap ● RTOS – Realtime ● Footprint ● Bootloader mcuboot Zephyr Project ● Opensource Realtime Betriebsystem ● Lebendige Community ● Mehrere Architekturen ● Modular und Konfigurierbar ● Bereit für Produkt-Entwicklung Zephyr Hardware Architekturen Zephyr Projekt Mitglieder Februar 2016 2021 Upstream commits last year Momentum 2016 2021 Entwickler 80 969 Commits 2806 52591 Boards 4 250+ Zephyr Board-Unterstützung Siehe auch: https://docs.zephyrproject.org/latest/boards/index.html Zephyr Ecosystem Kernel / HAL Zephyr OS Zephyr “Community” • Scheduler • Kernel objects und services • Kernel und HAL Zephyr Project • low-level Architektur und BSP • OS Services wie IPC, Logging, file • Power Management und low level systems, crypto Interfaces zur Hardware Zephyr Project OS Services and Low level APIs • Plattform spezifische Treiber Zephyr OS • Generisches I/O API • SDK, Tools und Kernel / HAL Entwicklungsumgebung • File systems, Logging, Debugging und IPC • Zusätzliche Middleware OS Services • Cryptography Services • Device Management und Application Services Bootloader • Networking und Connectivity Application Services Zephyr Community • High Level APIs • Zugang zu standardisierten Daten • 3rd Party Module und Bibliotheken Modellen • Support für Zephyr in 3rd Party • High Level Netzwerk Protokoll Projekte: Jerryscript, Micropython, Iotivity Architektur ● Cooperative und Pre-emptive Threading ● Speicher wird typischerweise statisch alloziert, auf Heap auch möglich ● Memory Protection: stack overflow Protection, Kernel object und Driver tracking, Thread isolation ● Integrierte Device Driver Schnittstelle ● Native und integrierter Netzwerk Stack ● BLE 5.2 controller und host, BLE Mesh ● USB 2.0 ● Tolerante Lizenz Native IP stack ● Neu implementiert ● Dual Mode IPv4 / IPv6 ● Mehrere Interfaces ● Time Sensitive Network (TNS, PTP) ● BSD-socket basiertes API ● raw socket ● Compliance und Security-Tested ● > 500 automatisierte Tests Zephyr Networking Features High-Level Protokolle Unterstützte Schnittstellen Netzwerk Management • CoAP v1 • Ethernet ● Statische IP oder DHCP • Ethernet over USB ● hostname • MQTT Client v3.1.1 • WiFi ● net shell Commands • HTTP • IEEE 802.15.4 with 6Lo ● API mit Event-Callbacks • HTTP Server • Bluetooth LE with 6Lo • Native HTTP Client • CANbus • Websocket Client • PPP • SOCKS5 • LWM2M • Thread • OpenThread Project Zephyr Bluetooth Features ● Bluetooth 5.2 compliant ● Low Energy & Bluetooth Classic ● Multiple HCI transports ● Qualified for LE and Mesh ● Aktive Community entwickelt an neuen Standards ● Mesh & GATT Referenz Stack in Bluetooth SIG ● Unterstützung von mehreren BLE HW ● Nordic mit ARM Cortex-M ● Vegaboard mit RISC-V ● Viele Optimierungen in den letzten Releases ● Latency, CPU und Power consumption Zephyr USB Device Stack ● Implementationen für mehrere MCU (STM32, Kinetis, nRF, SAM, ..) ● USB 2.0 Unterstützung ● Full und High-speed ● Unterstützte Klassen ● CDC ACM, ECM und EEM ● RNDIS ● HID ● Mass storage ● Bluetooth ● Device Firmware Update (DFU) ● WebUSB Zephyr ist unter Apache 2.0 Lizenz ● Man darf Software unter dieser Lizenz frei in jedem Umfeld verwenden, modifizieren und verteilen. ● Eine Kopie der Lizenz muss dem Paket beiliegen. ● Änderungen am Quellcode der unter der Apache- Lizenz stehenden Software müssen nicht zum Lizenzgeber zurückgeschickt werden. ● Eigene Software, die unter Apache-Lizenz stehende Software verwendet, muss nicht unter der Apache- Lizenz stehen. Zephyr Roadmap ● LTS ist v1.14. ● > 2 jährig ● Aktuell v2.5 ● Next v2.6 ist rc1 ● v2.7 soll LTS2 werden ● 2 Jahre Support Zephyr RTOS - Realtime ● Aussage über Interrupt – Contextswitch jitter ● Test mit GPIO und Oszilloskop ● GPIO Input Interrupt triggert GPIO Output ● Input via Frequenz-Generator ● Task wartet blockiert auf Semaphore ● GPIO Interrupt setzt Semaphore ● Task bekommt Semaphore und setzt GPIO Output Zephyr RTOS - Realtime Zephyr RTOS - Realtime ● Test mit einem 150MHz getakten Cortex-M4 ● Context Switch mit Semaphore: 5.3 uSec ● Input via message-queue in Task übergeben: 6.3 uSec Zephyr RTOS - Realtime ● Verteilung bei 10000 Input-Events – small deviation Linux RT-Patch ● Vergleich cyclictest mit iMX6 @998MHz mit RT-Patch Zephyr Footprint STM32f474 – 512KB flash and 128KB RAM ● C «hello world» ca. 12KB Flash ● C++ mit allen Features > 225KB Zephyr Bootloader ● Zephyr unterstützt mcuboot ● Signierte Images (Public Key in ROM) ● Rückgängig machbare Updates (test, confirm) ● 2 Slots: aktiv ● Device-Management via ● mcumgr : go Cmd-Line Programm ● hawkbit: Update Server von Eclipse ● newtmgr: Apache mynewt ● Ziel ist Secure-Boot Zephyr mcuboot ● Im Projekt einschalten CONFIG_BOOTLOADER_MCUBOOT=Y ● Flash Partitionen eintragen in devicetree ● Boot Partition für MCU-Boot ● Slot-0 für aktive Applikation ● Slot-1 für neue Version ● Scratch Partition für Swap Zephyr mcuboot ● Build und Installation von mcu-boot ● west flash –hex-file mcubuild/zephyr/zephyr.hex ● Build, Signierung und Installation von Applikation ● west sign -t imgtool --no-bin -H orig.hex --key mykey.pem --version 1.0.0 ● west flash --hex-file orig.hex Zephyr mcuboot ● Devicemanagement via smp: simple management protocol ● smp unterstützt Transports für: ● UART ● UDP ● BLE ● Signierung der Applikation via west Command ● west sign -t imgtool --no-hex -B next.bin --key mykey.pem --version 1.1.0 ● Installation in slot-1 via Host-Tool mcumgr Zephyr Links Doku: ● https://docs.zephyrproject.org/latest/ ● https://www.zephyrproject.org/developer-resources/#how-to-contribute ● https://docs.zephyrproject.org/latest/contribute/index.html ● Github: https://github.com/zephyrproject-rtos/zephyr ● Mail Liste: https://lists.zephyrproject.org/g/main ● Slack: https://tinyurl.com/y5glwylp Ein Mitglied der Vielen Dank an - Kate Stewart von der Linux Foundation Ein Teil der Präsentation basiert auf ihren Slides [email protected] http://www.bytesatwork.io.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    27 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us