GNU Toolchain/GCC/Entwicklung unter Linux

SIxO Sourcecode, Programmieren und Entwicklungswerkzeuge allgemein
Antworten
KTMil
Beiträge: 5
Registriert: 18 Apr 2010 - 17:22
Wohnort: G-Town

GNU Toolchain/GCC/Entwicklung unter Linux

Beitrag von KTMil »

Moin,

ich habe mal angefangen eine Linux Toolchain auf Basis des GCC zu bauen. Ganz fertig ist sie noch nicht, aber ich trage hier mal das zusammen was ich im Moment habe, vielleicht hilft es dem einen oder anderen.

Um an einen GCC fuer den M16C zu kommen gibt es zwei Wege: 1. Selber kompilieren oder 2. herunterladen. Ich hab erst spaeter rausgefunden dass es auch nen "Dosen-GCC" gibt, aber da das wahrscheinlicher einfacher ist, sei es zuerst beschrieben.

KPIT GNU Tools

Auf http://www.kpitgnutools.com gibt es Binaries (fuer x86 & Co) vom GCC fuer den M16C zum download. Dafuer muss man sich registrieren, einen kleinen Fragebogen ausfuellen, und wird dann (hoffentlich) freigeschaltet. Danach kann man diverse Tools herunterladen, darunter auch den GCC.

Das Paket steht als rpm zur Verfuegung, d.h. Redhat/SuSE User duerfen sich freuen (sofern das mit den Abhaengigkeiten denn klappt). Fuer Debian und Derivate (Ubuntu & Co), bietet sich das Programm alien an, damit kann man das rpm in ein deb umwandeln, welches sich dann per dpkg -i installieren laesst. Einziger Haken an der Sache: Abhaengigkeiten koennen bei dem konvertierten deb nicht aufgeloest werden, d.h. man muss vorher schon die entsprechenden anderen Pakete installiert haben. Dazu ist es am einfachsten aehnlich wie beim selber kompilieren die noetigen Pakete per apt-get build-dep binutils gcc-X.X zu installieren (X.X ist die Version z.B. 4.4), dann hat man garantiert alles.

Selbst ist der Mann aka Kompilieren

Den GCC/Linker/Assembler selber zu kompilieren ist an sich kein so grosser Akt, aber eine kurze Warnung vorneweg: Man sollte so grob wissen was man tut, denn wenn man den einen oder anderen Parameter vergisst, dann kann nicht nur sein dass das Resultat nicht funktioniert, sondern auch den System-nativen GCC ueberschreibt, und das ist nicht empfehlenswert ;-)

Zunaechst mal gibts auf der GCC Webseite eine gute Doku zum Kompilieren des GCC, und auch einige Hinweisen zum bauen von Crosscompilern:

http://gnu.gcc.org -> Documentation -> Version -> etc

Zum allgemeinen Ablauf:
  • binutils fuer den M16C kompilieren und installieren (enthaelt assembler und linker)
  • Laufzeit Bibliotheken und Header files installieren (C Std etc)
  • GCC kompilieren und installieren
===

Genaue Anleitung folgt, bis dahin siehe Links unten.

===

Zum Schluss noch eine kleine Linksammlung:

http://people.redhat.com/dj/m32c
Diverse Tips zum erstellen von M16C/M32C Toolchains, eine umfangreiche Testsuite mit Ergebnissen, welche Funktionen etc unterstuetzt werden usw.

http://www.fischl.de/thomas/elektronik/r8c/r8c_gcc.html
Eine deutsche Anleitung den GCC unter MacOSX aus CVS Snapshots zu kompilieren

http://www.torriefamily.org/~torriem/wi ... sscompiler
Generelle Infos zu Crosscomilern

http://psas.pdx.edu/DebianCrossCompilerHowTo
Debian-spezifische Anleitung fuer Crosscompiler
SIxO 2.0

KTMil
Beiträge: 5
Registriert: 18 Apr 2010 - 17:22
Wohnort: G-Town

Beitrag von KTMil »

Zum Resultat des ganzen: Kompilieren geht bei mir, nur gibt es scheinbar noch ein Problem mit dem far-memory model.

Dann muss noch das makefile (SIxO20.tmk) in ein Linux makefile umgewandelt werden, dann sollte der Entwicklung unter Linux nichts mehr im Wege stehen.

Zum Debuggen: Es gibt wohl einen Emulator, aber den habe ich noch nicht getestet, und ich weiss auch nicht wie einfach/moeglich es ist, dem diversen anderen (nicht-M16C) Hardwarebauteile beizubringen
SIxO 2.0

Ralf
Beiträge: 575
Registriert: 20 Feb 2004 - 11:27
Wohnort: Hannover

Beitrag von Ralf »

Super Anleitung, klar gegliedert, viele Tipps - vielen Dank!
Ich hoffe, du kannst die beiden Probleme mit 'far' und Debugger noch lösen.

Hilfreich könnte evtl. noch dieses Forum sein:
http://www.mikrocontroller.net

Ralf

emax
Beiträge: 12
Registriert: 27 Okt 2010 - 19:16

Beitrag von emax »

Wie ist den da der Stand der Dinge?
Mediamarkt?
Ich bin doch nicht blöd!

Antworten