»Arduino« Maker-Tool für IoT nutzen

Rapid Application Development

11. Mai 2016, 8:20 Uhr | von Prof. Dr. Jörg Wollert
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 2

Cross-Entwicklung eingebetteter Systeme

Bild 3: Cross-Development ist Voraussetzung für Embedded- Entwicklung
Bild 3: Cross-Development ist Voraussetzung für Embedded- Entwicklung
© Prof. Wollert

In den bisherigen Ausführungen lag der Fokus auf der Hardware von eingebetteten Systemen. Es hat sich gezeigt, dass gut definierte Hardware, unterstützt von geeigneten Bibliotheken, ideal ist für »Rapid Application Development«. Einen vergleichbaren Stellenwert hat die Softwareumgebung. Im Gegensatz zu einer klassischen »self-hosted-Entwicklung« erfolgt die Programmierung von eingebetteten Systemen immer über eine Cross-Entwicklungsplattform (Bild 3). Hierbei werden auf einem Hostsystem die Entwicklungswerkzeuge vom Editor über den Compiler bis hin zu Linker und Debugger gehalten. Der gesamte Coding-Prozess läuft auf dem Host, die erzeugte Software ist dort jedoch nicht lauffähig.

Zum Überprüfen der Lauffähigkeit muss entweder ein Emulator oder das Zielsystem verwendet werden. Bei der Entwicklung von Software für beispielsweise Smartphones ist die Nutzung eines Simulators selbstverständlich – bei der Anwendung konventioneller Embedded-Targets eher nicht. Über einen Target-spezifischen Treiber oder eine dedizierte Programmierschnittstelle kann die Software auf das Zielsystem übertragen werden. Mit einem Bootloader auf dem Target kommt das Programm schließlich zur Ausführung.

Eine der größten Herausforderung in diesem Cross-Entwicklungsprozess ist das Konfigurationsmanagement. Hierunter versteht man die »richtige« Versionierung der eingesetzten Tools und Bibliotheken für das spezifische Target. Das ist alles andere als trivial und führt zu einer Abhängigkeit zwischen Hostsystem und Target. Bei den Entwicklungssystemen kann man zwei Trends deutlich erkennen:

Microsoft hat das Visual Studio so weit geöffnet, dass durch Plugins das gesamte System von Drittanbietern als eigene Entwicklungsplattform genutzt werden kann. Vorausgesetzt man mag Windows als Host-Betriebssystem, lässt sich das gewohnte Programmiersystem auch für die Embedded-Entwicklung verwendet. Das AVR Studio ist beispielsweise eine derartige Plattform.

Der zweite Trend ist die Nutzung einer Java-basierten Entwicklungsumgebung. Diese ist vom Hostsystem unabhängig und kann damit auf Hosts mit unterschiedlichsten Betriebssystemen verwendet werden. Als typische Vertreter dieser Gattung gelten Eclipse und die Arduino-Workbench.

Egal für welche Entwicklungsumgebung man sich entscheidet, so ganz vom Betriebssystem unabhängig ist eine Entwicklung niemals. Immer sind spezifische hardwarenahe Werkzeuge notwendig, die für das jeweilige Betriebssystem adaptiert werden müssen. Häufig sind diese dann auch von den jeweiligen Versionen der Betriebssysteme abhängig. Und genau diese Zuordnung, welches Target mit welcher Konfiguration tatsächlich erstellt worden ist, stellt manchmal eine echte Herausforderung dar – oder man hat die Unterstützung von entsprechenden Managementsystemen.

passend zum Thema


  1. Rapid Application Development
  2. Arduino UNO ist ATmega 328p-Minimaldesign
  3. Cross-Entwicklung eingebetteter Systeme
  4. Arduino-Softwareentwicklung

Jetzt kostenfreie Newsletter bestellen!