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
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
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
"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.
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
Naja, UBoot ist so ne Sache. Da gibt es schonmal Probleme mit den Compilern. geb mal: arm-none-eabi-gcc -v ein.
netseal schrieb: > sind wohl eher nicht für bare metall. Stimmt. Da habe ich mich wohl zu weit aus dem Fenster gelehnt. Gruß Oliver
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.