Embedded-Entwicklung: Qt for MCUs 1.7 spricht die Hardware scheibchenweise an

Mit dem neuen Hardware-Layer-Konzept ermöglicht das Grafikframework eine optimierte Darstellungen unterschiedlicher UI-Komponenten.

In Pocket speichern vorlesen Druckansicht 6 Kommentare lesen

(Bild: HomeArt/Shutterstock.com)

Lesezeit: 2 Min.
Von
  • Rainald Menge-Sonnentag

Die Qt Company hat Version 1.7 von Qt for MCUs veröffentlicht. Das aktuelle Release des auf die Embedded-Entwicklung ausgerichteten Grafikframeworks führt Hardware Layers ein, um die Darstellung unterschiedlicher User-Interface-Bereiche zu optimieren. Außerdem kann eine Anwendung nun mehrere Bildschirme ansprechen, und das Framework erlaubt die Pseudo-3D-Darstellung.

Die aktuelle Version bringt zusätzliche APIs für QML (Qt Modeling Language) mit, über die Entwicklerinnen und Entwickler bestimmen können, wie das Framework einzelne UI-Bestandteile rendern soll. Auf die Weise können sie die Nutzung der CPU, GPU und des Speichers optimieren.

Als Beispiel führt der Qt-Blog ein User Interface auf, das an ein Dashboard im Auto angelehnt ist und neben einem Tacho, einem Drehzahlmesser und einer Benzinstandanzeige diverse Icons darstellt. Über das Hardware-Layer-Konzept lassen sich die in Abbildung 1 weiß dargestellten statischen Bereiche über den QML-Typ imageLayer realisieren, der ein festes Bild aus dem Flash-Speicher auf den Bildschirm überträgt, ohne zwischendurch in einem Framebuffer im RAM zu landen.

Für das Rendern unterschiedlicher Bereiche eignen sich jeweils individuelle QML-Typen (Abb. 1).

(Bild: Qt)

Die im Bild blauen und roten Rechtecke zeigen dynamische Inhalte wie den beweglichen Zeiger und die angepassten Zahlen über unterschiedliche QML-Komponenten an. Durch den Einsatz des QML-Typs ItemLayer können Entwicklerinnen und Entwickler jeweils individuelle Bit-Tiefen und Refresh-Intervalle setzen, um die Hardwareauslastung möglichst gering zu halten.

Der gelb umrahmte Bereich als obere Ebene kommt wiederum ohne Framebuffer aus. Die Icons lassen sich über den QML-Typ SpriteLayer realisieren, der mehrere Images und Image Layers als Unterebenen enthalten kann.

Das Grafikframework hat zudem im aktuellen Release die QML-Typen Application und Screen an Bord, mit denen eine Anwendung zur Darstellung mehrere Bildschirme verwenden kann.

Eine Beispielanwendung zeigt die Transformationen für eine 2.5D-Darstellung von Bildern.

(Bild: Qt)

Ebenfalls neu ist die 2.5D- beziehungsweise Pseudo-3D-Darstellung, die zweidimensionale Objekte in einer Weise darstellt, die dreidimensional wirkt. Für die Umsetzung bringt Qt for MCUs 1.7 den QML-Typ Matrix4x4 mit: eine 4x4-Matrix zum Transformieren eines Objekts über Rotation, Skalierung, Parallelverschiebung (Translation) und Scherung (Shearing).

Qt for MCUs: Mit oder ohne Betriebssystem auf dem Mikrocontroller
Qt for MCUs

Qt for MCUs verbindet Qt Quick mit einer Laufzeitumgebung oder einer zusätzlichen RTOS-Schicht.

(Bild: Qt)

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.

Weitere Details zu Qt for MCUs 1.7 lassen sich dem Qt-Blog entnehmen.

(rme)