Einleitung

Beruflich beschäftige ich mich immer mal wieder mit ARM Mikrocontrollern. Da lag es nahe, diese auch privat einzusetzen. Zu Hause nutze ich ein 64 Bit Ubuntu Linux (man will ja den schönen 64 Bit AMD Prozessor auch voll ausreizen). Es war nicht so einfach, eine passende fertig compilierte GCC ARM toolchain zu finden. Also blieb mir nichts anderes übrig als diese selbst zu compilieren. Ganz so trivial ist das Erstellen der toolchain leider nicht. Nach mehreren Versuchen fand ich das ganze auspacken und konfigurieren ziemlich lästig und hab mich dran gemacht, ein Skript zu schreiben.

ARM toolchain build scripts für ARM9 mit Software floating point und Cortex M4 mit Hardware floating point Unterstützung

Zuerst braucht ihr die ARM gcc toolchain build Scripte: ARM_gcc_2013_09_16.zip
Nach dem Entpacken befinden sich folgende Datei und Verzeichnisse im Verzeichnis ARM_gcc:

installVerzeichnis für die kompilierte Toolchain.
sourcesVerzeichnis für die Quellcodes (binutils, gcc, newlib und gdb).
00_settings.shSkript für die Einstellungen.
01_make_binutils.shSkript zum Compilieren der Binutils.
02_make_newlib.shSkript zum Konfigurieren der Newlib.
03_make_gcc.shSkript zum Compilieren des GCC (erster Durchgang).
04_make_newlib.shSkript zum Compilieren der newlib.
05_make_gcc.shSkript zum Compilieren des GCC (zweiter Durchgang).
06_make_gdb.shSkript zum Compilieren des GDB.
make_toolchain_clean.shSkript zum Löschen aller temporären Dateien.
make_toolchain.shSkript zum Compilieren einer toolchain (ARM9 oder CM4 - Cortex M4).
make_all_toolchains.shSkript zum Compilieren beider Toolchains.

Binutils, GCC, Newlib und GDB Sourcecode

Zum Compilieren der Toolchain wird noch der Sourcecode benötigt:

binutils: http://www.gnu.org/software/binutils (.bz2 Archiv) Version: 2.23.2
gcc: http://gcc.gnu.org (.bz2 Archiv) Version: 4.7.3
newlib: http://sourceware.org/newlib (.tar.gz Archiv) Version: 2.0.0
gdb: http://www.gnu.org/software/gdb (.bz2 Archiv) Version: 7.6

Die Sourcecodearchive müssen in das Verzeichnis sources kopiert werden. Theoretisch könnt ihr auch die neuesten Versionen der Programme downloaden und die Versionsnummern im Settings-Script anpassen. Aber das Compilieren kann dann eventuell Anpassungen in den Scripten erfordern.

Zum Compilieren müsst ihr nur noch eine Shell aufmachen, in das Verzeichnis wechseln und das Skript ausführen.

Für die ARM9 Toolchain mit Software floating point:

./make_toolchain.sh ARM9
      

Für die Cortex M4 Toolchain mit Hardware floating point:

./make_toolchain.sh CM4
      

Es können auch beide Toolchains compiliert werden:

./make_all_toolchains.sh
      

Viel Glück!