LVGL oder wie eine kostenlose GUI-Bibliothek STM32-MPUs in mehr Anwendungen bringt und Entwicklern das Leben erleichtert

3D render of graphical user interface for professional software

Ein möglichst starkes Ökosystem aufzubauen bedeutet, mit Partnern wie LVGL (Light and Versatile Graphics Library) zusammenzuarbeiten, einem Mitglied des ST Partner Program, das kostenlose (MIT-lizenzierte) GUI-Bibliotheken für ST-Bausteine bereitstellt, etwa für unsere STM32MP-Mikroprozessoren. Konkret hat unsere Zusammenarbeit es LVGL ermöglicht, eine Bibliothek zu entwickeln, die sehr wenig Speicher benötigt und plattformübergreifende Anforderungen abdeckt, sodass Entwickler, die mit unseren MPUs arbeiten, ihre Benutzeroberflächen auf vielen anderen Geräten wiederverwenden können. Denn wir bei ST wissen: Ein tragfähiges Ökosystem entsteht durch Werkzeuge, die Entwicklern auch bei Sonderfällen oder besonderen Anforderungen weiterhelfen.

Die Herausforderungen bei Portabilität und Flexibilität

Die herausragende Stellung von TouchGFX

image 2
Das STM32MP25F-EV1 mit einem Display, auf dem eine mit LVGL erstellte Benutzeroberfläche läuft

Unter dem Dach von TouchGFX bieten wir eine kostenlose GUI-Bibliothek samt Werkzeugen für unsere Mikrocontroller an. Da wir sie selbst entwickeln, können wir sie problemlos in unsere anderen Tools wie STM32CubeMX integrieren und für unsere Bausteine optimieren. So aktualisieren wir Werkzeuge wie den TouchGFX Designer regelmäßig, damit sie unsere neuesten Mikrocontroller und Entwicklungsboards unterstützen. Und wie treue Leser des ST-Blogs wissen, veröffentlichen wir regelmäßig Updates, die den Speicherverbrauch optimieren, innovative Framebuffer-Strategien einführen und anspruchsvollere GUIs auf allen STM32-Mikrocontrollern ermöglichen. TouchGFX bleibt damit für viele Designer eine zentrale Bibliothek, wie die wachsende Zahl der Anwender belegt.

Die vielfältigen Realitäten der großen Embedded-Welt

Wir wissen jedoch, dass TouchGFX nie die Anforderungen jedes einzelnen Mitglieds der STM32-Community erfüllen wird, und das soll es auch gar nicht. Manche Teams müssen mit Mikrocontrollern verschiedener Hersteller arbeiten, was zum Problem wird, wenn eine Benutzeroberfläche auf unterschiedlichen Geräten laufen muss. Theoretisch könnten Entwickler für jeden MCU-Hersteller eine eigene Codebasis pflegen, in der Praxis ist das jedoch äußerst mühsam und teuer. Ebenso müssen manche Designer mit Geräten sehr unterschiedlicher Rechenleistung arbeiten, wobei sich ihre Projekte oft im Grenzbereich zwischen MPUs und MCUs bewegen. Der Speicherbedarf muss daher klein sein, und die Laufzeitumgebung darf nur wenig Rechenleistung beanspruchen, um eine gemeinsame Grundlage für alle Geräte zu schaffen.

Ein weiterer, neuerer Aspekt für viele Entwickler ist, dass sich die Landschaft der Embedded-GUIs verändert hat: Heute sind deutlich mehr Unternehmen beteiligt als noch vor fünf oder zehn Jahren. Früher waren Teams weitgehend auf sich allein gestellt. Sie mussten ihren Code von Grund auf schreiben und jeden Aspekt ihrer Anwendung an die eigenen Bedürfnisse anpassen. Heute bieten viele Unternehmen ein Echtzeitbetriebssystem oder eine Embedded-Linux-Distribution an, mit der Teams ein Board in wenigen Minuten einrichten und direkt loslegen können. Das spart enorm viel Zeit, bedeutet aber auch, dass die Entwickler von GUI-Bibliotheken eng mit all diesen Akteuren zusammenarbeiten müssen, damit ihre Angebote für diese neuen Lösungen optimiert sind.

Die Lösungen, die LVGL STM32-Entwicklern bietet

Mehr Anwendungen

image 2
Benutzeroberflächen für ein breiteres Spektrum an Anwendungen

ST und LVGL arbeiten eng zusammen, damit Entwickler diese neuen Herausforderungen direkt angehen können. Es geht darum, ihnen Zugang zu den bestmöglichen Bibliotheken zu verschaffen. So haben wir gemeinsam sichergestellt, dass LVGL alle Ressourcen eines STM32MP1 und eines STM32MP2 nutzt, um die Performance zu optimieren. Ein weiteres Beispiel ist die Möglichkeit, OpenGL auf unseren Mikroprozessoren zu verwenden, ohne die LVGL-APIs zu ändern. Entwickler entscheiden einfach, ob sie das OpenGL-Modul einsetzen möchten, und LVGL nutzt dann Hardwarebeschleunigung wie OpenGL oder die auf STM32MP-Bausteinen verfügbaren GPU-Engines. Ebenso bietet das Unternehmen Bare-Metal-Lösungen für MPUs wie den STM32MP13 an, die Code ohne Linux-Betriebssystem ausführen können.

Mehr Kooperationen

Ein weiterer Grund für unsere enge Zusammenarbeit mit LVGL sind dessen umfangreiche Initiativen mit vielen Industriepartnern. Ein Beispiel dafür ist Zephyr. Auch ST engagiert sich in diesem bekannten Projekt und unterstützt es nach Kräften, wie wir unter anderem gezeigt haben, indem wir unsere SensorTile.box PRO in das Betriebssystem eingebracht haben. LVGL kann jedoch aufgrund seiner Ausrichtung Partnerschaften mit Zephyr eingehen, die das Angebot von ST ergänzen, darunter vorkompilierte Binärdateien und weitere Integrationen, mit denen Ingenieure schneller eine Benutzeroberfläche entwickeln. Ebenso arbeitet LVGL mit anderen Mitgliedern des ST Partner Program zusammen, etwa mit Riverdi, das STM32 Embedded Displays herstellt, um die Entwicklung zu beschleunigen.

Mehr Optimierungen

Kurz gesagt: LVGL eröffnet der STM32-Entwickler-Community eine ganze Reihe von Werkzeugen, Umgebungen und Lösungen für außergewöhnliche Anforderungen, wie sie etwa bei plattform- oder geräteübergreifenden Anwendungen entstehen. Deshalb arbeiten wir beispielsweise mit LVGL daran, die Bibliothek für Funktionen unserer MCUs wie DMA, Chrom-ART oder NeoChrom zu optimieren. Wenn ein Team eine einheitliche Benutzeroberfläche für unsere MPUs und MCUs benötigt, kann es sicher sein, dass diese mit minimalen Änderungen an der Codebasis optimal auf STM32MPx- und STM32-Bausteinen läuft. Darüber hinaus ist das Unternehmen kürzlich auf eine „Monorepo“-Struktur umgestiegen, um die Entwicklung zu vereinfachen, und bietet inzwischen eine Closed-Source-Benutzeroberfläche für eine sicherheitskritische Anwendung an.

•  Erfahren Sie mehr über LVGL

Nach oben scrollen