Das GUI (Bild 4) spiegelt die Form einer generischen Programmierumgebung. Die Arbeitsbereiche sind in ein Drop-down-Menü am oberen Bildschirmrand sortiert.
Unter dieser Drop-down-leiste liegt in der Voreinstellung jeder Arbeitsbereich im Icon-Format vor: Diese Symbole fallen allerdings auch auf einem 22-Zoll-Monitor noch relativ klein aus und ihre Farb- und Symbolsprache ist wenig intuitiv – ein paar Tage benötigt ein Anwender schon um sie zu memorieren. Deshalb neigt der Anwender zu Beginn zur beschrifteten Auswahl im Drop-down-Menü, die einen Klick mehr bedeutet. Innerhalb der Symbolleiste wurden Icons zur Zielverbindung und -konfiguration in einen eigenen Bereich am rechten unteren Rand ausgegliedert. Das ist nutzerfreundlich und schnell gemerkt.
Nach erfolgreicher Verbindung werden dem Anwender am linken Rand im Target-Manager die zugänglichen Kerne, ihre Speicherbereiche und Kommunikationskanäle aufgelistet; Konfigurationen und Anweisungen werden über einen Rechtsklick auf die jeweilige Komponente erreicht. Das Beispiel Bild 4 zeigt den Cortex-Kern, seine Speicherbereiche und die beiden Trace-Kanäle Coresight-ETM und ITM-SWO.
Wurde eine vorhandene Binärdatei mit dazugehörigem C-Code eingelesen, trägt ein Symbol-Reiter im Target-Manager drei Code-Darstellungen: die C-Hierarchie, die Funktionsliste und die zusammenhängenden Speicherbereiche auf dem Ziel. Darunter befindet sich eine weitere Auflistung sämtlicher gesetzter Haltepunkte zur Aktivierung oder Deaktivierung. Eine gelistete Programmdarstellung (zum Beispiel C-Code) wird mit Doppelklick geöffnet und standardmäßig in einem neuen Fenster in der GUI-Mitte angezeigt.
Um diesen zentralen Bereich herum können beliebige Fenster, wie Registerinhalte oder eine Traceliste angedockt werden. Im Beispiel werden die MCU-Register und einige Peripherieregistergezeigt. Letztere werden aus einer Ordner-Hierarchie der I/O-Bezeichnungen gewählt. Registerinhalte werden am Haltepunkt per Doppelklick darauf modifiziert, eine Assemblerzeile per Rechtsklick mit dem integrierten Assembler. Diese Zugriffe sind sehr direkt, der Assemblercode sollte allerdings nicht ohne tiefgreifendes Wissen der Maschinenebene verändert werden.
Im Allgemeinen wird ein Anwender allerdings eine Abstraktionsebene höher arbeiten: zur Analyse des Targetzustands werden Speicheranzeige (Bild 5) und eine Liste der Variablen herangezogen. Mit dem Debugger wird die Initialisierung und Implementierung dieser Variablen in der Umgebung eines kritischen Programmschritts verfolgt. Dort wird ein Haltepunkt zur Analyse gesetzt, die Ausführung kann von diesem aus schrittweise gesteuert und überwacht werden, das sogenannte Single-Step-Debugging. Die Speichereinträge und Variablen sind dabei ebenso direkt editierbar wie die Registerwerte. Durch unmittelbare Änderung können Fehler aufgedeckt und auch die Fehleranfälligkeit an einem bestimmten Programmpunkt getestet werden. Solche Szenarien sind in erster Linie durch ein falsches Ansprechen der Hardware mit dem C-Code begründet.
Weiter mit dem GUI: Am unteren Fensterrand liegt zur Linken der Nachrichtendialog. Die darin enthaltenen UDE/UAD-Botschaften wie Fehler-, Warnmeldungen und Information an den Anwender sind mit Rechtsklick in unterschiedlicher Tiefe darstellbar. Es handelt sich aber lediglich um Status-/Fehlernachrichten und nicht um tiefgreifende Handlungsempfehlungen. Einen unterstützten Arbeitsfluss, wie in einschlägigen Systemdesigntools4, gibt es nicht.
Gegenüber zur Rechten wurde der Taskdialog angedockt. Er listet die Aufgaben und ihren Arbeitsfortschritt, gegebenenfalls mit Statistik bei Erfolg. Im Beispiel wurde gerade mit der Traceaufzeichnung begonnen. Eine weitere fortgeschrittene Visualisierung aus dem View-Menü (zum Beispiel xy- oder Säulendiagramm) wird zunächst zentral platziert. »Rechtsklick«>»Floating Frame« auf die Titelleiste eines Reiters löst selbigen aus dem Standardrahmen. Per Drag-und-Drop ist diese wieder in das Zentralfenster integrierbar, die potenzielle Position zeigt ein eingeblendeter Rahmen an.
Unsere Anwenderpräferenz: Die Kontexthilfe (nicht gezeigt) links des wie oben konfigurierten Standardrahmens halten und sämtliche fortgeschrittene Visualisierungen rechts davon ineigenständigen Fenstern platzieren (Bild 6).
Das Nutzererlebnis mit dem GUI lässt sich so beschreiben: Die Schriftsprache und Sortierung der Menüs (Bild 7) ist kanonisch und unmittelbar verständlich. Allerdings fällt es in der Fülle der Möglichkeiten schwer, diese Sortierung in kurzer Zeit einzuprägen. Der Nachrichtendialog könnte mit einfachen Botschaften einen unterstützten Arbeitsflusshtml" href="https://www.elektroniknet.de/design-elektronik/embedded/universalwerkbank-fuer-mikrocontroller-157464-Seite-6.html">4 zum Troubleshooting und somit einen deutlichen Produktivitätszuwachs bei Einsteigern bewirken. Deshalb wird man für den Einstieg die hervorragende Dokumentation im Print-Handbuch nicht beiseite legen.
Tiefer greifende Funktionen, wie die Konfiguration eines zielspezifischen Tracekanals, wird man aus der Kontexthilfe aufgreifen müssen. Die FAQ auf pls-mc.com ist ebenso hilfreich.