Netaddict



Werkzeugkiste

Um für den FriendlyARM selbst Dinge kompilieren zu können, benötigen wir eine so genannte Cross-Compile-Umgebung. Damit ist gemeint, man braucht einen Compiler der für die ARM-Architektur ausführbaren Code erzeugen kann. Zum Glück gibt es diese Umgebung als fertiges Paket, welches man sich auf seine Linux-Maschine herunterladen und installieren kann. Wer seine Arbeitsmaschine nicht mit einer Cross-Compile-Umgebung belasten will, kann sich auch gerne, so wie ich es gemacht habe, eine virtuelle Maschine z. B. in VirtualBox dafür aufsetzen.

Cross-Compile-Umgebung

Es gibt im Netz gute Dokumentationen1) 2), teils sogar in deutscher Sprache, wie man eine solche Umgebung (Toolchain) einrichtet. Der Vollständigkeit halber, möchte ich das hier auch kurz dokumentieren.

Download

Grundsätzlich hat man die Wahl zwischen der Originalumgebung von FriendlyARM3) (ARM-Linux GCC 4.3.2) oder einer von der Firma Codesoucery4). Ich habe beide benutzt und konnte keinen Unterschied feststellen. Ich habe mich für die Toolchain der Fa. Codesourcery entschieden. Die aktuelle Version kann man hier downloaden. Dazu wählt man als Zielplattform „GNU/Linux“ und auf der folgenden Seite wählt man das „IA32 GNU/Linux TAR“-Archiv zum Download aus.

Installation

Nach dem Download entpackt man das Archiv. Als Zielpfad verwende ich das Verzeichnis „bin“ in meinem Heimatverzeichnis, weiterhin passe ich den Namen des entpackten Verzeichnisses von „arm-2010q1“ auf „arm-cc“ an, damit ich später die Pfade nicht ständig ändern muss, falls ich eine neue Version installiere. Die Compilierumgebung liegt also jetzt im Pfad „/home/<benutzername>/bin/arm-cc/“.

~/bin/arm-cc % ls
arm-none-linux-gnueabi/  bin/  lib/  libexec/  share/

Damit der Compiler in diesem Pfad auch gefunden wird, müssen wir zwei Umgebungsvariablen anpassen. Wer möchte kann dies in seiner „.bashrc“ Datei hart verdrahten, indem er die folgenden beiden Export-Zeilen dort einbindet. Ich möchte das allerdings nicht und führe die Exports immer vor einem Kompileraufruf manuell durch.

export PATH=$PATH:/home/<benutzername>/arm-cc/bin
export CROSS_COMPILE=arm-none-linux-gnueabi-

Anschließend ist zu erkennen, dass alle Befehle vorhanden sind.

% cd ~
% cd bin/arm-cc
% ./init.sh
% arm<Tabulator-Taste>
completing external command
arm2hpdl                          arm-none-linux-gnueabi-cpp        arm-none-linux-gnueabi-gprof      arm-none-linux-gnueabi-size     
arm-cc                            arm-none-linux-gnueabi-g++        arm-none-linux-gnueabi-ld         arm-none-linux-gnueabi-sprite   
arm-none-linux-gnueabi-addr2line  arm-none-linux-gnueabi-gcc        arm-none-linux-gnueabi-nm         arm-none-linux-gnueabi-strings  
arm-none-linux-gnueabi-ar         arm-none-linux-gnueabi-gcc-4.4.1  arm-none-linux-gnueabi-objcopy    arm-none-linux-gnueabi-strip    
arm-none-linux-gnueabi-as         arm-none-linux-gnueabi-gcov       arm-none-linux-gnueabi-objdump                                    
arm-none-linux-gnueabi-c++        arm-none-linux-gnueabi-gdb        arm-none-linux-gnueabi-ranlib                                     
arm-none-linux-gnueabi-c++filt    arm-none-linux-gnueabi-gdbtui     arm-none-linux-gnueabi-readelf

weiter zu U-Boot installieren

 

 
XHTML 1.1 CSS 2 Creative Commons License
Netaddict Version 6.0 - © 1996-2017 by netaddict.de - Kontakt