Forum: Compiler & IDEs MIPS-Toolchain basteln...


von Sigint 112 (sigint)


Lesenswert?

Hallo zusammen,
  meine Frage hat zwar nur entfernt was mit Mikrocontrollern zu tun, 
aber ich hoffe hier gibts ein paar GCC-Profis.Also, ich hab versucht 
eine Toolchain für einen MIPS-basierten Netgear WGT634U zu bauen.
Alles hab ich unter CYGWIN durchgeführt.
Zuerst hab ich binutils und GCC nach folgendem Tutorial übersetzt und in 
ein extra Verzeichniss installiert:
http://www.linux-mips.org/wiki/Toolchains
 Danach konnte ich die Programme auch erfolgreich starten. Da ich ja 
noch keine LIBC hatte konnte ich noch nichts übersetzen(da ja fast alle 
Programme die LIBC benötigen).
Danach hab ich die uClibc übersetzt und konnte dann das übliche "Hallo 
Welt" Programm zum testen übersetzen. Leider kann ich nichtmehr 100%ig 
sagen, wie ich die uClibc konfiguriert hab... aber folgendes weiss ich 
noch:
MIPS-Architektur, Little-Endian, MIPS32, MMU und keine FPU.
Das Problem war jetzt, daß ich auf meinem Router immer ein "Segmentation 
Fault" bekommen habe wenn ich das HalloWelt-Programm starten wollte.

Meine Fragen sind nun:
  Gibt's irgendwo ein vollständiges Tutorial, wie man eine Toolchain für 
eine beliebige Architektur übersetzt. (also die grundlegenden 
Arbeitsschritte beschreibt)
Gibts irgendwo ne Erläuterung, wie die verschiedenen Teile einer 
Toolchain (binutils, GCC, Kernel, GLIBC) voneinander und von der 
Zielhardware abhängen.
Wenn ich z.B. binutils für target=mipsel-... übersetze kann ich die 
Tools dann für alle MIPS-Derivate und Zielplatformen einsetzen, oder 
gibt da irgendwelche einschränkungen? Wie bekomme ich heraus, welche 
targets eigentlich von irgendeinem Programm unterstüzt wird? Beim GCC 
hab ich z.B. noch nichts dazu gefunden.
Und macht es einen Unterschied ob ich "--target=mipsel" oder 
"--target=mipsel-elf-linux" oder ähnliches eingebe.

Ich hoffe irgendjemand kann mir ein paar gute Links zum Thema geben.

Und auf die Frage, warum ich keine fertige Toolchain nehme kann ich nur 
folgendes antworten: Ich möchte verstehen, wie die einzelnen Teile 
ineinandergreifen um das fertige Programm für meinen MIPS zu erstellen.

Schonmal Danke und

Mit freundlichem Gruß,
   SIGINT

P.S.: Leider hatte ich keinen GDB auf meinem MIPS, wesswegen ich das 
Testprogramm nicht debuggen konnte.

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.