Entwicklungstools Fenster zum Zielsystem

Cross-Entwicklung, die Entwicklung von Code für eine andere Architektur als die des Entwicklungsrechners, ist eine Embedded-Disziplin, die das Ecplise-Framework erst nachträglich erhalten hat. Dementsprechend rudimentär ist bis heute der Funktionsumfang. Doch die Situation bessert sich. Inzwischen gibt es Werkzeuge, die - als Plug-in eingebunden - den Blick ins laufende Zielsystem zulassen und damit die dynamische Beobachtung von Peripherieregistern -und Echtzeit-Variablen.

Mit Software-Entwicklern für Mikrocontroller-Applikationen kann man über nichts trefflicher streiten als über ihren Lieblingseditor oder ihre bevorzugte Entwicklungsumgebung. Erstaunlicherweise gibt es in diesem Punkt selbst in einigen großen Organisationen mit ansonsten klar definierten Prozessen offensichtlich noch immer gewisse persönliche Freiräume.

Generell ist aber bei größeren Unternehmen der Trend hin zu standardisierten Werkzeugen unübersehbar. Einheitliche Tools und bekannte Bedienkonzepte verringern den Einarbeitungsaufwand in eine neue Target-Architektur enorm und der Entwickler kann sich auf seine eigentliche Aufgabe konzentrieren. Um die notwendige Langlebigkeit und Unabhängigkeit von einem Hersteller zu garantieren, bietet ein Open-Source-Projekt wie die Eclipse-Plattform ideale Voraussetzungen für eine effiziente Umsetzung eines solchen Vorhabens.

Eclipse - Fundament für eigene Tools

Einführt wurde Eclipse ursprünglich von IBM als integrierte Entwicklungsumgebung für die Programmiersprache Java. Heute obliegt die Weiterentwicklung der rechtlich eigenständigen Eclipse Foundation, einer Non-Profit-Organisation mit Sitz in Kanada, wobei IBM allerdings weiterhin aktiv mit vielen eigenen Entwicklern zur Fortentwicklung beiträgt und die Eclipse-Technologie auch in eigenen Produkten nutzt.

Anfangs als IDE konzipiert, fungiert Eclipse seit der Version 3.0 inzwischen nur noch als Rahmen. In diesen werden sogenannte Plug-ins geladen, welche die eigentlichen Funktionen zur Verfügung stellen. Dieses flexible Konzept ebnet den Weg für den Einsatz als universell nutzbare Entwicklungsplattform.

Sowohl Eclipse selbst als auch die Plug-ins sind in Java implementiert. Dies bedeutet aber nicht, dass Plug-ins keine Funktionen aus nativen Code-Komponenten ausführen können. Auch die auf dem Standard Widget Toolkit (SWT) basierende grafische Oberfläche von Eclipse setzt auf native GUI-Komponenten des jeweiligen Betriebssystems auf, auf dem die Java-Umgebung läuft. Eclipse selbst ist - wie manche Plug-ins - also nicht komplett plattform-unabhängig, existiert aber derzeit für immerhin 14 verschiedene Betriebssysteme.

Der strukturelle Aufbau von Eclipse vereinfacht die Arbeit des Entwicklers. So stehen ihm zum Beispiel für das -Erstellen von Anwendungen durch Schrei-ben von Quelltext, Zeichnen von Diagrammen usw. sogenannte Editoren zur Verfügung. Die Eingabe in die Textfenster erfolgt bei herkömmlicher Programmierung mit Unterstützung der jeweiligen Programmiersprache durch Syntax-Hervorhebung und Eigenschaften wie z.B. Auto-Vervollständigung. Darüber hinaus sind aber auch grafische Editoren z.B. für UML oder Editoren mit Baumdarstellung für XML bekannt.

Von der Ansicht zur eigenen Perspektive

Editoren nehmen typischerweise einen großen Teil der Bedienoberfläche ein, wobei parallel mehrere Quelltexte oder Diagramme geöffnet sein können. Eine Reiteransicht mit sogenannten Tabs am oberen Rand sorgt für einen schnellen Zugriff. Das eigentliche Editor-Fenster ist von einer weiteren Fensterart, den sogenannten Views, umgeben, in denen zusätzliche Informationen angezeigt werden. Beispiele dafür sind ein Projektbaum mit allen zugehörigen Dateien, eine Explorer View zur Darstellung von Klassen, Funktionen, Variablen oder Typ-Hierarchien sowie Fenster, die das Ergebnis eines Build-Laufes oder Suchergebnisse anzeigen und eine direkte Navigation zur jeweiligen Quelltextstelle ermöglichen (Bild 1).

Elementarer Bestandteil des Eclipse-Konzepts sind auch die sogenannten Perspektiven, komplett vorkonfigurierte Anordnungen von Menüs, Toolbars, Editoren und Views. Trotz der Vorkonfiguration sind die Perspektiven in weiten Teilen an die Bedürfnisse des Anwenders anpassbar; benutzerdefinierte Einstellungen können gespeichert und später wieder geladen werden.

Eine weitere, allerdings nicht unbedingt in der Oberfläche sichtbare Grundidee ist der Eclipse-Workspace. Beim ersten Start einer installierten Eclipse-Plattform wird der Anwender zur Auswahl eines Workspace-Verzeichnisses aufgefordert. In diesem Verzeichnis werden nun künftig alle angelegten oder importierten Projekte abgelegt und organisiert. Der Vorteil ist, dass Beziehungen zwischen den Projekten nur noch aus relativen Pfadangaben in Bezug zum Workspace-Verzeichnis bestehen. Damit sind diese sehr einfach verschiebbar.

Die einzelnen Entwickler großer Projektgruppen arbeiten mit ihren lokalen Workspace-Verzeichnissen, deren konkreter Ort im lokalen Dateisystem für die Gruppe völlig bedeutungslos ist. Mit dem Workspace-Konzept erzeugt Eclipse im gewählten Verzeichnis also eine eigene, das zugrunde liegende Dateisystem nutzende Ablageordnung. Die sonst übliche starre zentrale Dateiablage ist hier nicht mehr erforderlich; sie wird durch das Repository eines Versionskontrollsystems ersetzt. Externe Referenzen werden ebenfalls nicht mehr benötigt; alle relevanten Informationen werden in das Workspace-Verzeichnis importiert bzw. kopiert.