Login
Newsletter
Werbung

Do, 16. November 2017, 15:00

Warum Yocto eine gute Wahl für eingebettete und IoT-Projekte ist

Überlegungen zu eingebetteten Systemen

Die Entwicklung für Embedded Linux verwischt die Grenze zwischen Embedded- und Desktop-Entwicklung und kann das Beste beider Modelle bieten. Viele eingebettete Linux-Systeme bieten Funktionen wie einen SSH-Server, eine grafische Benutzeroberfläche und Tools für das Zielsystem, wodurch ein Entwicklungsablauf ähnlich der traditionellen Desktop-Entwicklung ermöglicht wird. Code, der in Skriptsprachen geschrieben wurde, kann direkt im implementierten System geändert und Änderungen können ohne einen kostspieligen Build / Deployment-Zyklus getestet werden. Zum Compilieren von Code ist die Leistungfähigkeit vieler solcher Systeme zu gering. Die Verwendung einer Cross-Compilation-Umgebung für solche Aufgaben ist deutlich schneller und ähnelt eher der traditionellen Embedded-Entwicklung, die dem Entwickler alle Tools und Funktionen zur Verfügung stellt, die auf dem Entwicklungs-Host-Betriebssystem verfügbar sind. Der Nutzen eines ausgewachsenen Linux-Systems auf dem Zielsystem mit der fertigen Software sowie der großen Anzahl von Software-Entwicklern, die mit der Plattform vertraut sind, überwiegt Kostenbelange, die ansonsten zur Auswahl einer kostengünstigeren Hardware führen könnten.

Das Einrichten einer Cross-Compilation-Umgebung ist notorisch schwierig. Die richtige Kombination von Toolchain-Komponenten und -Bibliotheken zu finden, kann frustrierend werden. Es kann eine Herausforderung sein, die Kernel-Header für seinen Desktop und für den eingebetteten Kernel auseinanderzuhalten. Es gibt eine Vielzahl von Optionen, um eine vorgefertigte Toolchain zu erhalten. Wenn man Glück hat, ist ein Paket über den Paketmanager auf dem Desktop-Entwicklungssystem verfügbar. Wenn nicht, kann ein Buildsystem wie crosstool-NG erforderlich sein.

Die Verbindung der Entwickler zur Ziel-Hardware erfolgt im Allgemeinen über serielle Schnittstellen und Ethernet. Glücklicherweise bietet Embedded Linux eine breite Unterstützung für diese Geräte. Die Treiberunterstützung in Windows- und MacOS-Systemen kann problematisch sein, da diese Gerätetreiber möglicherweise nicht im Standardbetriebssystem enthalten sind und die Installation von Drittanbietertreibern erfordern.

Die JTAG-Unterstützung ist in Embedded Linux etwas verstreut und eignet sich hauptsächlich für das Debuggen auf niedriger Ebene. Darüber hinaus hängt es stark von der Herstellerunterstützung des Halbleiterherstellers sowie des JTAG-Geräteherstellers ab. Das Debuggen der Anwendungen wird im Allgemeinen besser mit weithin verfügbaren und portierten Werkzeugen wie GDB durchgeführt.

Projekte in den Embedded- und IoT-Bereichen verwenden eine Vielzahl von Chip-Architekturen und Boards. Der Linux-Kernel wurde auf die überwiegende Mehrheit der kommerziell verfügbaren Boards portiert und wird aller Wahrscheinlichkeit nach bereits den gewählten Chipsatz unterstützen. Die meisten Halbleiterhersteller entwickeln Kernel-Code und Treiber direkt für die Unterstützung ihrer Produkte. Nicht alle Treiber sind aber in den Standard-Kerneln von kernel.org verfügbar, daher muss man gelegentlich Treiber selbst integrieren.

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung