Forum: Mikrocontroller und Digitale Elektronik ARM - Toolchain fragen


von wB (Gast)


Lesenswert?

Hallo.

Ich versuche gerade die ersten Schritte in Richtung Cross-Compiling für 
meinen Raspberry PI.
Hab da auch schon einiges gefunden im Internet, wobei manchmal von 
arm-none-linux-gnueabi- und manchmal von arm-linux-gnueabi- geprochen 
wird.
Worin liegt jetzt der Unterschied zwischen den beiden Compiler?
Den arm-linux-gnueabi bekomme ich über die Repos, das ...none-linux... 
ist da nicht vorhanden.

Teilweise habe ich auch etwas von ELDK gelesen. Ist dieses Dev-Kit für 
mich auch von bedeutung?


lgwb

von Oliver J. (skriptkiddy)


Lesenswert?

wB schrieb:
> Worin liegt jetzt der Unterschied zwischen den beiden Compiler?

Dass der eine dafür ist, Programme für Linux zu kompilieren und der 
andere erstellt Bare-Metal-Apps.

Gruß Oliver

von armgast (Gast)


Lesenswert?

Was ist Bare-Metal-Apps?
Danke!!!!!!!!!!!!!!!!!!!

von netseal (Gast)


Lesenswert?

Hallo,

der 2te tag ist der normalerweise der vendor.

arm-linux-gnueabi-
arm-none-linux-gnueabi-

sind wohl eher nicht für bare metall. Ihre Unterschiede sind wohl eher
als host und als crosscompiler zu suchen. Der crosscompiler darf ja 
nicht die Bibliotheken des Hosts referenzieren.

arm-none-eabi- oder arm-elf-
sind bare-metal.

Ahh, bare-metal, habe ich auch erst vor kurzem das erste mal gehört.
Ist wahrscheinlich so ein denglicher Begriff und bedeutet eingebettetes 
system. Also ohne nachladen von bibliotheken zur Laufzeit etc..
Grüße

von Sam P. (Gast)


Lesenswert?

"bare metal" ist nicht denglisch, es ist ganz normales englisch. 
Wörtlich "nacktes Metall", bezeichnet es die Programmierung von Hardware 
(nicht zwangsläufig embedded) ohne Betriebssystem oder vergleichbare 
Infrastruktur.

Der Raspberry PI läuft super unter Linux, weswegen man ihn wohl 
üblicherweise mit normalen Linux-Anwendungen ausstattet. Compiler, in 
deren Namen -linux- drinsteckt, sind eben solche. Ob da noch ein -none- 
drinsteckt, ist relativ egal. Diese Benennung wird nicht immer 
einheitlich verwendet, manche Toolchains haben -none- im Namen, andere 
nicht, das macht aber keinen Unterschied.

Mit cross-compilen hat das auch nichts zu tun. Einen Cross-Compiler 
erkennt man daran, dass er auf Plattform A läuft, aber Plattform B im 
Namen hat, ganz einfach. arm-linux-gnueabi-gcc auf nem AMD64-Rechner ist 
ein Cross-Compiler, arm-linux-gnueabi auf nem Raspberry PI ist keiner.

von wB (Gast)


Lesenswert?

Ok.

Jetzt bin ich schon etwas schlauer als vorher.

Ich möchte nämlich versuchen den Bootloader UBoot für den Raspberry PI 
zu kompillieren.
Dazu habe ich auch schon die benötigten Source-Files von 
http://kernelnomicon.org/?p=92 .

Leider happerte es aber noch beim kompilieren.
Wenn ich mit CROSS_COMPILE=arm-linux-gnueabi- kompiliere, bekomme ich 
zwar die *bin Datei, aber es läuft nichts.
Die Fertige *.img von dieser Seite geht aber ohne Probleme.

Ich bin mir fast sicher, dass es mit dem verwendeten Cross-Compiler bzw. 
der Toolchain zusammenhängt.
Ich habe heute einmal die von www.gnuarm.com versucht.
Leider bekomme ich hier eine Fehlermeldung:
"make: arm-none-eabi-gcc: Command not found
/bin/sh: arm-none-eabi-gcc: command not found"

Den Pfad habe ich aber zu $PATH hinzugefügt.


Vielleicht hat noch jemand Tipps für mich.

lgwB

von netseal (Gast)


Lesenswert?

Naja,

UBoot ist so ne Sache. Da gibt es schonmal Probleme mit den Compilern.
geb mal: arm-none-eabi-gcc -v ein.

von Oliver J. (skriptkiddy)


Lesenswert?

netseal schrieb:
> sind wohl eher nicht für bare metall.

Stimmt. Da habe ich mich wohl zu weit aus dem Fenster gelehnt.

Gruß Oliver

von W.B. (Gast)


Lesenswert?

Habe das Problem bereits gelöst.
Es war ein trivialer Fehler: ich habe die make-Anweisung unter Linux als 
sudo ausgeführt. Da sind die Umgebungsvariablen aber anders und somit 
war der Pfad zum Compiler nicht in der $PATH-Variable.

Jetzt funktioniert alles super.


fg

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.