ClickCease Beste Embedded Linux Entwicklungswerkzeuge - TuxCare

Abonnieren Sie unseren beliebten Newsletter

Schließen Sie sich 4.500+ Linux- und Open-Source-Experten an!

2x im Monat. Kein Spam.

Beste Embedded Linux Entwicklungswerkzeuge

25. August 2020. TuxCare PR Team

Beste Linux Embedded Entwicklungswerkzeuge

Die meisten Entwickler sind an eine grafische Oberfläche für die Entwicklung gewöhnt. Wenn Sie also in die Welt der IoT- und Embedded-Linux-Entwicklung eintauchen, ist das eine neue Erfahrung, die mehr Low-Level-Programmierung und Befehlszeilenausführung erfordert. Wenn Sie Systeme wie IoT, GPS, Automobiltechnik, Fertigung oder eine andere Low-Level-Elektronikprogrammierung erstellen möchten, benötigen Sie eine Embedded-Entwicklungsumgebung, mit der Sie arbeiten können.

Eingebettetes Linux ist bei den meisten dieser Systeme üblich, da es Open-Source ist und über eine umfangreiche Dokumentation verfügt, die den Einstieg in das System erleichtert, und nur sehr geringe Vorlaufkosten für die Nutzung des Betriebssystems erfordert. Aus diesem Grund arbeiten Entwickler, die sich für diesen Weg interessieren, in der Regel mit Linux-Programmierung und laden die richtigen Tools herunter, um ihre Produkte zu verbinden, zu programmieren und einzusetzen. Wir haben eine Liste der besten Embedded-Linux-Programmiertools zusammengestellt, die Ihnen den Einstieg erleichtern - egal, ob Sie Anfänger oder Profi sind und ein neues Tool suchen.

Inhalte:

  1. Redakteure für eingebettete Systeme
  2. Kompilierer
  3. Monteure
  4. Debugger
  5. Linker
  6. Emulatoren
  7. Vollständige Software-Entwicklungsumgebungen

 

Redakteure für eingebettete SystemeRedakteure für eingebettete Systeme

Entwickler sollten mit den gängigen GUI-Editoren vertraut sein, da sie täglich damit arbeiten. Visual Studio ist zum Beispiel ein gängiger Editor für C# und VB.NET. Java-Entwickler verwenden in der Regel Eclipse oder NetBeans. Python-Entwickler verwenden PyCharm. Jeder Entwickler hat seine Lieblingseditoren, und die besten Tools erleichtern es den Entwicklern, farbcodierten Code zu schreiben, um unterschiedliche Syntax leichter zu erkennen. Da die eingebettete Programmierung hauptsächlich in C oder C++ erfolgt, sollte die richtige Lösung diese beiden Sprachen unterstützen.

 

  • Geany: Geany ist viel mehr auf eine grafische Benutzeroberfläche mit Syntaxhervorhebung und Unterstützung für HTML- und XML-Tags ausgerichtet. Es ist auch mit Java, PHP, Python, Perl und Pascal kompatibel. Wir führen dieses Programm an erster Stelle auf, da es für die meisten Entwickler, die nicht mit Unix-ähnlichen Befehlen vertraut sind, das einfachste aller Tools ist.
  • Lime: Entwickler, die mit dem Sublime Text Editor vertraut sind, werden dessen Nachfolger Lime zu schätzen wissen. Die Benutzeroberfläche ist ähnlich wie bei Sublime, und er wurde in der derzeit beliebten Sprache Go entwickelt.
  • Nano: Nano ist sowohl für neue als auch für fortgeschrittene Programmierer geeignet. Es ist kommandozeilenbasiert, hebt aber dennoch Text hervor und kodiert ihn farblich, sodass die C-Syntax leicht verständlich ist.
  • Bluefish: Bluefish hat ein paar zusätzliche Funktionen als die oben genannten Tools. Es ist sowohl für die Linux- als auch für die Web-Entwicklung geeignet, arbeitet aber auch mit Remote-Dateien und verfügt über Rechtschreibprüfung und Rückgängig-Optionen. Für größere Projekte bietet Bluefish bessere Organisationsfunktionen und funktioniert gut mit mehreren Projekten.
  • Vim: vielseitiger und hochgradig konfigurierbarer Texteditor, der auf buchstäblich jeder Plattform zu finden ist. Trotz der relativ hohen Einstiegsschwelle wird er von vielen Embedded-Entwicklern verwendet, die ihn wegen der Möglichkeit, fast alles anpassen zu können, schätzen und ihn fast überall verwenden, sogar auf kleinen Embedded-Systemen, auf denen kein Grafikmodus verfügbar ist.

 

 

Kompilierer
Kompilierer

Nachdem Sie Ihr Programm geschrieben haben, ist es an der Zeit, es zu kompilieren. Ein Compiler wandelt menschlichen Code in Binärdateien um, die auf einem lokalen System wie einem Laptop oder Server verwendet werden können. Bei eingebettetem Linux benötigen Sie einen Compiler, der Binärdateien für die CPU eines Zielcomputers erstellt, nicht für Ihren Hostcomputer. Compiler für die Embedded-Entwicklung werden auch als Cross-Compiler-Toolchains bezeichnet.

Sie könnten Ihren eigenen Code assemblieren, aber das ist mühsam, besonders für einen neuen Entwickler. Stattdessen gibt es mehrere Tools, mit denen Sie C-Code kompilieren, verknüpfen und assemblieren können. Wenn Sie ein Debian-basiertes Linux wie Ubuntu zum Programmieren verwenden, verfügt das Betriebssystem bereits über Tools. Führen Sie den folgenden Befehl aus, um sie zu installieren:

 

sudo apt install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi

 

Wenn Sie es vorziehen, Ihre kompilerübergreifende Toolchain selbst zu erstellen, finden Sie hier einige Tools, die Ihnen Compilerfunktionen bieten, so dass Sie sie nicht von Grund auf neu erstellen müssen:

  • Crosstool-NG: Diese einfache Cross-Compiler-Toolchain assembliert Ihren Code und erstellt die erforderlichen Link-Bibliotheken.
  • Buildroot: Buildroot eignet sich hervorragend für Anfänger, da es ein wesentlich robusteres Menüsystem und eine robustere Oberfläche hat. Es kompiliert, erstellt Bibliotheken und baut eine Verzeichnishierarchie auf, die es einfacher macht, in großen Projekten zu navigieren.
  • Yocto: Yocto geht beim Kompilieren noch einen Schritt weiter und erstellt Pakete für das eingebettete Zielsystem. Es baut auch Binärdateien und Bibliotheken, aber die Pakete machen es einfacher, sie zu verteilen und auf einem externen System zu installieren.Yocto ist die leistungsstärkste und vielseitigste Lösung auf Kosten seiner extremen Komplexität.

Lesen Sie mehr: Welche Linux-Distribution ist die beste für Embedded-Entwicklung?

 

 

Monteure

Monteure

Der menschliche Code muss in Maschinensprache übersetzt werden. Compiler wandeln menschlichen Code in Objektcode und dann in Binärdateien um. Assembler führen eine viel schnellere Umwandlung durch, indem sie Binärdateien direkt aus Low-Level-Code erstellen, der dem Maschinencode sehr viel ähnlicher ist. Assembler sind viel schneller als Compiler, aber sie sind auf Low-Level-Sprachen beschränkt. Für fortgeschrittene Entwickler, die mit Low-Level-Assemblersprachen arbeiten, kann ein Assembler verwendet werden, um die kodierten Anweisungen mit der CPU-Ausführung abzubilden.

Linux hat seinen eigenen Assembler namens GNU Assembler (auch bekannt als gas oder as). Er ist in den GNU Binutils enthalten, einer Sammlung von Binärwerkzeugen speziell für das Linux-Betriebssystem. Eine Liste der Tools, die bei der Installation mitgeliefert werden, können Sie hier einsehen.

Um Binutils zu installieren, führen Sie den folgenden Befehl aus:

sudo apt install build-essential

 

Aber wenn Sie nach arm64 kompilieren müssen, installieren Sie:

sudo apt install crossbuild-essentiell-arm64

 

 

Debugger

Debugger

Jeder Entwickler weiß, dass Code getestet und debuggt werden muss. Mit einem Debugger können Sie sehen, was bei jeder Ausführungszeile passiert. Ihr Code kann syntaktisch korrekt sein, aber Logikfehler führen zum Absturz des Programms. Mit einem Debugger können Sie diese Fehler beseitigen.

Das GNU-Projekt bietet einen Debugger zum Download an. Er ist spezifisch für C-basierte Programmierung und eignet sich daher perfekt zum Debuggen von Code für eingebettete Systeme. Um ihn über die Kommandozeile zu installieren, verwenden Sie den folgenden Befehl:

 

sudo apt-get install libc6-dbg gdb valgrind

 

Linker

Linker

Wenn Sie ein Programm erstellen, ist es üblich, dass Sie mehrere Dateien und Bibliotheken haben, die für den Betrieb des Programms notwendig sind. Diese Dateien werden während des Kompilierungsprozesses mit einem Linker verknüpft. Compiler erledigen das Linken oft für Sie, aber wenn Sie Assembler verwenden, um Low-Level-Code in Maschinensprache umzuwandeln, benötigen Sie möglicherweise einen Linker, um die Projektdateien miteinander zu verknüpfen.

Wenn Sie einen der oben aufgelisteten Compiler verwenden, brauchen Sie wahrscheinlich keinen Linker, aber das GNU-Projekt hat einen Linker für fortgeschrittene Projekte zur Verfügung. Der Linker ist mit den Binutils verfügbar, die im Abschnitt Assembler erwähnt wurden. Die Installation von Binutils schließt den Linker mit ein. Verwenden Sie den folgenden Befehl, um die Tools zu installieren:

 

sudo apt-get install build-essential

 

Emulatoren

Emulatoren

Wenn Sie jemals für das Android-Betriebssystem programmiert haben, haben Sie wahrscheinlich mit einem Emulator gearbeitet. Ein Emulator ist ein Programm, das die Zielumgebung nachbildet. Alle Oberflächenelemente, Befehle, Ausgabebilder und Funktionen werden auf Ihrem lokalen Computer so angezeigt, wie sie den Benutzern auf ihren eingebetteten Geräten angezeigt werden würden.

Das beliebteste kostenlose Tool ist QEMU. Mit QEMU können Sie Ihre Kreationen auf verschiedenen Linux-Distributionen visualisieren. Für Debian- oder Ubuntu-Distributionen führen Sie den folgenden Befehl aus, um es zu installieren:

 

sudo apt-get install qemu

 

Vollständige Software-Entwicklungsumgebungen

Vollständige Software-Entwicklungsumgebungen

Mit der obigen Liste von Software können Sie Ihre Entwicklungsumgebung anpassen, aber es sind auch mehrere vollständige IDE-Pakete erhältlich, die die gesamte Bearbeitung und Kompilierung für Sie übernehmen, ohne dass Sie separate Ressourcen installieren müssen. Die unten aufgeführten IDE-Entwicklungsumgebungen bieten Ihnen eine vollständige grafische Benutzeroberfläche, plattformübergreifende Unterstützung und einige bieten Unterstützung für Webanwendungen, die in Ihre Projekte eingebettet werden können.

 

  • PyCharm: PyCharm wurde für Python-Entwickler entwickelt, bietet aber plattformübergreifende Unterstützung und eignet sich gut für Linux-Entwickler. JetBrains, die Entwickler von PyCharm, hat eine zusätzliche Funktion namens CLion, die speziell für die Programmierung von Embedded Linux verwendet wird.
  • Qt Creator: Qt Creator ist speziell für die Programmierung eingebetteter Systeme konzipiert. Es verfügt über einen Emulator für verschiedene Zielgeräte, einschließlich Automotive, IoT, TVs, mobile Apps und mehr.
  • MPLAB X: Diese IDE ist für die Embedded-Entwicklung von PIC-Mikrocontrollern und Signalcontrollern konzipiert.
  • Visual Studio: Die meisten Entwickler kennen Visual Studio für seine .NET-Programmierung, aber das VisualGDB-Plugin verwandelt die Visual Studio-Schnittstelle in eine plattformübergreifende Linux-Entwicklungsplattform für eingebettete Systeme.
  • Eclipse: Eclipse ist eine gängige IDE für die Java-Entwicklung, aber das Add-on Eclipse IDE for Automotive Software Developers bietet die Werkzeuge und den Compiler für die Erstellung von Lösungen für die Automobilindustrie.
  • Arduino: Für Entwickler, die die Programmierung eingebetteter Systeme ausprobieren möchten, ist Arduino ein guter Ausgangspunkt. Es enthält die Hardware und Software für eine vollständige Umgebung, die Anfängern das Lernen erleichtert.
  • ARM Keil: Als vollwertige Entwicklungsplattform kann ARM Keil zum Programmieren für fast alle ARM-basierten Geräte verwendet werden. Es ist eine IDE, die sich gut für Profis eignet, die mit populäreren Geräten auf dem Markt arbeiten müssen. Die IDE verfügt über Code-Vorlagen und Beispielprojekte für Anfänger, von denen sie lernen können.

 

Schlussfolgerung

Wenn Sie mit der Embedded-Linux-Entwicklung beginnen möchten, sind die oben genannten Tools eine vollständige Liste der Tools, die Sie benötigen, um Ihre Umgebung zum Laufen zu bringen. Die Embedded-Linux-Programmierung ist eine andere Umgebung als die Standard-Desktop-Programmierung, aber sie ist eine großartige Möglichkeit, sich in die Funktionsweise von IoT- und Automobilsystemen einzuführen.

Möchten Sie das Patchen von Sicherheitslücken ohne Kernel-Neustart, Systemausfallzeiten oder geplante Wartungsfenster automatisieren?

Erfahren Sie mehr über Live-Patching mit TuxCare

Werden Sie ein TuxCare-Gastautor

Los geht's

E-Mail

Beitreten

4,500

Linux & Open Source
Fachleute!

Abonnieren Sie
unseren Newsletter