W&T verbindet
Interfaces für TCP/IP, Ethernet, RS-232, RS-485, USB, 20mA, Glas- und Kunststoff-LWL, http, SNMP, OPC, Modbus TCP, I/O digital, I/O analog, ISA, PCI

Applikation:

Den Cross-Compiler auf einem Linuxsystem installieren


So installieren Sie den Cross-Compiler auf einem Linuxsystem, um C/C++-Quelltexte in ausführbare Programmdateien für das Zielsystem der Motherbox und der pure.box übersetzen zu können:

Um eigene C/C++-Programme für die Motherbox und die pure.box erstellen zu können, ist ein Cross-Compiler erforderlich, welcher einen Quelltext in einen für das Zielsystem ausführbaren Maschinencode übersetzt. Dieser Cross-Compiler kann in wenigen Schritten auf einem Linux-Gastsystem installiert werden.

Der Cross-Compiler kann im einfachsten Fall über die Kommandozeile des Gastsystems aufgerufen werden, um Binaries für die Motherbox und die pure.box zu erstellen. Weiterhin ist die Integration in komplexere Entwicklungsumgebungen, z.B. Eclipse, ohne weiteres möglich.

Das folgende Beispiel zeigt Schritt für Schritt, wie der Cross-Compiler installiert wird. Als Gastsystem wird ein aktuelles Ubuntu (64Bit) eingesetzt. Generell kann dieser Vorgang auf beliebigen 64Bit-Linuxsystemen durchgeführt werden.

  • Laden Sie die von W&T erstellte Toolchain herunter.
    (Stand: 04.09.2018)
  • Öffnen Sie ein Terminal und melden Sie sich mit root-Rechten an (sudo -i).
    Konsole
  • Wechseln Sie mit cd / in das Basisverzeichnis.
    cd /
  • Entpacken Sie mit nebenstehendem Befehl den Inhalt des heruntergeladenen Archivs. Haben Sie das Archiv nicht im Basisverzeichnis gespeichert, erweitern Sie den Dateinamen um die Pfadangabe.
    tar -xzf e-50511-01-swww-007.tar.gz
  • Um ein einfaches Programm über die Kommandozeile zu kompilieren, ist nebenstehender Befehl erforderlich.

    arm-linux-gcc ruft den Kompiler auf, welcher den Maschinencode erstellt.

    Die Option -I teilt dem Kompiler mit, wo die für die pure.box erforderlichen Include-Dateien zu finden sind.

    -o definiert die zu erstellende Programmdatei.

    Die Dateiangabe (hier: main.c) verweist auf den zu übersetzenden Quelltext.

    Abschließend sind noch Informationen zum Zielsystem erforderlich. Hier gibt es Unterschiede zwischen der pure.box 3 / Motherbox 3 und der pure.box 5.

    pure.box 3 und Motherbox 3:
    arm-linux-gcc -I /usr/local/arm-pkg_v5/usr/include/ -o hello_world main.c -mcpu=xscale

    pure.box 5:
    arm-linux-gcc -I /usr/local/arm-pkg_v7/usr/include/ -o hello_world main.c -mtune=marvell-pj4 -march=armv7-a -mfloat-abi=softfp