Embedded Systems mit Yocto und Qt HMI-Software-Entwicklung nach Rezept

Hohe Anforderungen im industriell eingebetteten Systemen.
Die Programmierung von eingebetteten Systemen im industriellen Maßstab stellt besonders hohe Anforderungen an die Entwickler.

Softwareprodukte sollen individuell, performant, flexibel und nachvollziehbar sein. Wer mit so vielen Töpfen kochen will, braucht eine besondere Küche.

Begrenzte Rechenleistung, spezielle Schnittstellen und hohe Anforderungen an die Zuverlässigkeit machen die Programmierung für Embedded-Systeme anspruchsvoll. Entwickler haben dabei die Wahl zwischen verschiedenen Linux-basierten Systemen – von anderen seltener genutzten Basissystemen abgesehen. Allerdings passen Systeme von der Stange nur in seltenen Fällen oder erhöhen die Produktionskosten erheblich.

Andere Lösungen müssen her – wie zum Beispiel Yocto. Damit lässt sich maßge-schneiderte Software erstellen (Bild 1), die nicht nur den Ansprüchen an Embedded-Systeme gerecht wird, sondern auch nach Jahren noch exakt reproduziert und über den gesamten Produktlebenszyklus sicher gepflegt und weiterentwickelt werden kann.

Was ist Yocto?

Das Yocto-Projekt wird unter dem Dach der Linux Foundation gemeinschaftlich gepflegt und wird von namhaften Branchengrößen wie Intel, NXP und Texas Instruments aktiv unterstützt und genutzt. Yocto muss man sich dabei vorstellen wie einen Werkzeugkasten für individuelle GNU/Linux-Betriebssysteme. Neben den Tools zur Systemerstellung, dem Buildsystem, enthält Yocto „Beispielrezepte“. Das sind Vorlagen für die Softwareerstellung und Konfiguration.

Die Besonderheit bei Yocto ist, dass die Rezepte als Schichtsystem organisiert sind. Unterschiedliche Konfigurationen, die jeweils relevant sind für Hardware, spezifische Anwendungen oder sogar nur für eine spezifische Komponente, können gut voneinander getrennt werden.

Als Ergebnis lassen sich mit Yocto eigene, angepasste Linux-Distributionen erstellen– also spezifische Kombinationen aus Kernel, Bibliotheken und Anwendungen. Dadurch sind Entwickler nicht auf einzelne Systeme beschränkt, sondern können vielmehr ganze Plattformen nebst der notwendigen Softwarelandschaft verwalten.

Linux unterstützt von Haus aus eine große Vielfalt an unterschiedlichen Prozessor-architekturen, Chipsätzen und Mainboards und lässt sich auf zahlreichen Zielplattformen einsetzen. Einer der großen Vorteile: Die Nutzung der zur Verfügung stehenden Ressourcen wie Rechenzeit und Arbeits-speicher kann der Plattformentwickler mit Hilfe von Yocto und zahlreichen Compilerschaltern sehr fein und präzise konfigurieren, um ein performantes Gesamtsystem zu erhalten.

Detailtiefe Entwicklung

Ein Beispiel für den hohen Grad an Optimierung, der mit Yocto möglich ist, zeigt das Beispiel eines Medizinprodukts, für das der Hamburger Mikroelektronik-Spezialist Garz & Fricke ein komplettes Human Machine Interface (HMI, Bild 2) lieferte.

Zu einem HMI gehört neben dem Touchdisplay auch ein entsprechender Single Board Computer (SBC). Dabei handelte es sich zunächst um das Standard-Produkt Santino LT. Das wurde allerdings hinsichtlich des Energiebedarfs angepasst. Da das fertige Medizinprodukt völlig autark ohne Stromnetz Stunden bis Tage laufen soll, mussten die Modi „Deep Sleep“ und „Standby“ perfekt funktionieren – doch beide sind nicht trivial.

Für die Umsetzung ist detaillierte Kenntnis der Hardware erforderlich, um beispielsweise Verbraucher in der richtigen Reihenfolge ab- und wieder anzuschalten sowie die richtigen Spannungen einzustellen. Nicht nur der Kunde aus der Medizintechnik profitierte von den Anpassungen. Die Optimierungen in Sachen Standby und Energie-Aufnahme übernahm Garz & Fricke in sein Yocto-Framework, wo sie auch für künftige Projekte weitergepflegt werden.

Ein weiterer Vorteil von Yocto ist die hohe Nachvollziehbarkeit bei Anpassungen und Änderungen. Gerade die umfangreichen Release-Notes mit detaillierter Auflistung verwendeter Software und Lizenzen helfen bei der medizinischen Zulassung, auch weil die Prüfer auf einen Blick erfahren, welche Software beziehungsweise Software-Komponenten in welcher Version im fertigen System enthalten sind.

Unternehmen vermeiden wenn irgend möglich die Festlegung auf nur einen Hersteller, die sich nur mit sehr hohem Aufwand aufbrechen lässt. Das ist bei Yocto allerdings kaum zu befürchten. Denn wie Garz & Fricke liefern auch  andere Hardware-Hersteller bereits angepasste Yocto-Versionen aus, die die notwendigen individualisierten Konfigurationen und – teils proprietären – Treiber enthalten.

Für Yocto spricht darüber hinaus, dass sich die Zielplattform im Fall der Fälle mit überschaubarem Aufwand austauschen lässt und so die Wechselkosten nicht den Rahmen sprengen. Der Entwickler kann im gewohnten Software-Umfeld bleiben.