Embedded-Entwicklung: Qt for MCUs 2.0 schreibt von rechts nach links

Neben der Darstellung von Text in beliebigen Sprachen bringt das Mikrocontroller-Framework mehr Kontrolle zum Verwalten des Speichers für grafische Ressourcen.

In Pocket speichern vorlesen Druckansicht

(Bild: HomeArt/Shutterstock.com)

Lesezeit: 3 Min.
Von
  • Rainald Menge-Sonnentag
Inhaltsverzeichnis

Zwei Jahre nach der ersten Hauptversion ist nun Qt for MCUs 2.0 erschienen. Das Grafikframework zum Erstellen von Anwendungen, die direkt auf dem Mikrocontroller laufen, erweitert im aktuellen Release die Darstellung von Texten in diversen Sprachen mit unterschiedlichen Darstellungen und Schreibweisen. Neue APIs dienen zum effizienten Verwalten der grafischen Ressourcen im Speicher, und statische Ressourcen lassen sich einfacher austauschen.

Zwar hatte das Framework bereits in der 1.x-Serie Funktionen zum Internationalisieren von Texten, aber linksläufige Schriften wie im Hebräischen und Arabischen oder komplexe Schriften wie die thailändische ließen sich bisher nicht darstellen. In Qt for MCUs 2.0 bringt Text-Shaping-Funktionen mit, die das Darstellen von bidirektionalen und komplexen Schriften erlaubt.

(Bild: Qt)

Die Darstellung nutzt die Spark-Font-Engine und benötigt laut der Qt Company zusätzlich etwa 3,5 KByte RAM und 100 KByte ROM. Wer die komplexe Textdarstellung nicht benötigt, kann sie über die CMake-Property QUL_COMPLEX_TEXT_RENDERING deaktivieren, um den Speicherbedarf der Anwendung zu verringern.

Version 2.0 bringt erweiterte Funktionen zum Verwalten grafischer Ressourcen mit. Neue CMake-Properties wie QUL_RESOURCE_STORAGE_SECTION und QUL_RESOURCE_CACHE_POLICY legen fest, wo und wie Anwendungen die Ressourcen im Speicher ablegen. Dadurch lassen sich beispielsweise einige grafische Ressourcen im internen Flash speichern, während andere im externen Flash liegen und zur Laufzeit im RAM gecacht werden.

Qt for MCUs 2.0 bietet APIs für das Speichermanagement grafischer Ressourcen.

(Bild: Qt)

Eine weitere Neuerung betrifft statische Grafikressourcen, die sich nun austauschen lassen, ohne die Anwendung neu zu flashen. Das ermöglicht beispielsweise anpassbare Skins für die Oberfläche oder ein Rebranding. Bisher war der Austausch nur für dynamische Elemente mit dem ImageProvider-Typ möglich. Für die austauschbaren statischen Elemente kümmert sich das Framework automatisch um das Caching und die Komprimierung.

Unter der Haube hat die Qt Company die Plattformabstraktion für Qt Quick Ultralite erweitert, um das Framework einfacher auf zusätzliche Plattformen oder spezielle Hardware zu bringen. Die QUL-Plattform-Libraries sind dazu neuerdings in zwei Bibliotheken aufgeteilt, von denen eine für den Portierungs-Layer und die andere für spezifische Treiber und Hardwarekonfigurationen zuständig ist.

Mit dem Release gilt die bisher als Technology Preview gekennzeichnete FreeRTOS-Integration als stabil. Beim Tooling setzt das Release auf Qt Creator 6 und Qt Design Studio 2.3.

Mit oder ohne Betriebssystem auf dem Mikrocontroller

Mit Qt for MCUs lassen sich Anwendungen erstellen, die direkt auf dem Mikrocontroller laufen. Das Framework setzt auf Qt Quick zum Erstellen von Nutzerschnittstellen mit QML (Qt Meta-object Language). Das Qt-Quick-Modul besitzt eine C++-API, um QML-Anwendungen mit C++-Code zu erweitern. Qt for MCUs enthält eine Reihe von Qt Quick Controls, also vorgefertigte Steuerelemente, die das Erstellen von Nutzerschnittstellen vereinfachen sollen.

Qt for MCUs, das seit Dezember 2019 allgemein verfügbar ist, lässt sich wahlweise direkt auf dem Prozessor oder auf einem Echtzeitbetriebssystem (Real-time Operating System, RTOS) betreiben. Für den Bare-Metal-Betrieb bringt Qt for MCUs eine eigene Laufzeitumgebung für Qt Quick mit, die sich in Kombination mit C++-Bibliotheken von Drittanbietern verwenden lässt.

Qt for MCUs 2.0 liegt leicht hinter der im April veröffentlichten Qt-Roadmap, die Version 2.0 für Herbst und das 2.1-Release für Dezember vorgesehen hatte. Das soll nun im kommenden Frühjahr erschienen, und die für Juni 2022 geplante Version 2.2 wird das erste LTS-Release (Long-term Support), das Bugfixes für mindestens 18 Monate erhält. Weitere LTS-Releases sollen im Jahrestakt folgen. Insgesamt garantiert die Qt Company Bugfixes zur 2.x-Serie für mindestens drei Jahre.

Weitere Details lassen sich dem Qt-Blog entnehmen.

(rme)