thoralt.de
thoralt.de
avr-gcc 4.3.2+ unter Mac OS X 10.5
27.11.2008
Voraussetzung für das Übersetzen der Quellen ist, dass XCode installiert ist (siehe Installations-DVD von Leopard).
Download
Bevor es losgehen kann, musst Du folgende Pakete herunterladen (suche jeweils die neuesten Versionen aus):
-GMP (GNU MP Bignum Library): http://gmplib.org/#DOWNLOAD
-MPFR (Multi Precision Floating Point Library): http://www.mpfr.org/mpfr-current/#download
-binutils (binary tools): http://ftp.gnu.org/gnu/binutils/
-binutils patch: http://www.thoralt.de/download/binutils-2.19-wrong-arch.patch
-gcc-core: http://gcc-uk.internet.bs/releases/ oder wähle einen anderen Mirror: http://gcc.gnu.org/mirrors.html
-avr-libc: http://download.savannah.gnu.org/releases/avr-libc/
Ich gehe der Einfachheit halber davon aus, dass die Dateien im „Download“-Verzeichnis gespeichert werden. Wenn dies nicht der Fall ist, dann sind die unten genannten Pfade entsprechend anzupassen.
GMP
Zuerst muss die Bibliothek GMP (GNU MP Bignum Library) installiert werden. Sie ist nötig, um den avr-gcc übersetzen zu können. Dazu musst Du das heruntergeladene Archiv entpacken (z. B. durch Doppelklick auf die Datei). Öffne dann ein Terminal-Fenster (Programme > Dienstprogramme > Terminal). Führe folgende Befehle aus:
cd #
cd Downloads/gmp-4.2.1
./configure
make
sudo make install
MPFR
Die Bibliothek MPFR (Multi Precision Floating Point Library) muss ebenfalls installiert werden, bevor avr-gcc übersetzt wird. Auch dieses Archiv kann durch Doppelklick entpackt werden. Danach wird der Inhalt compiliert und installiert:
cd #
cd Downloads/mpfr-2.3.2
./configure --disable-shared
make
sudo make install
binutils
Die „binutils“ sind ein Verbund aus mehreren Kommandozeilen-Programmen, welche rund um die Verarbeitung von Quelltexten benötigt werden (z. B. der Linker „ld“ oder der Assembler „as“). Das Paket wird zunächst durch Doppelklick entpackt. Die Version 2.19 kommt leider mit einem Fehler daher, welcher den Link-Prozess bei einigen AVR-Prozessoren fehlschlagen lässt. Deswegen ist ein kleines Patch notwendig, welches vor dem Compilieren angewendet wird. Die Patchdatei (s. o.) wird in das binutils-Verzeichnis kopiert und danach werden die folgenden Befehle ausgeführt:
cd #
cd Downloads/binutils-2.19
./configure --target=avr --program-prefix="avr-" --prefix=/opt/local
patch -p0 < binutils-2.19-wrong-arch.patch
make
sudo make install
gcc-core
Mit „gcc-core“ wird der eigentliche avr-gcc installiert. Auch hier wird das Paket entpackt und dann das folgende abgearbeitet:
cd #
cd Downloads/gcc-4.3.2
mkdir obj-avr
cd obj-avr
../configure --target=avr --program-prefix="avr-" --enable-languages=c
--prefix=/opt/local --disable-libssp
make
sudo make install
avr-libc
Es ist beinahe vollbracht - es fehlt nur noch die „avr-libc“, die Standard-C-Library für die AVR-Controller, welche um viele plattformspezifische Funktionen erweitert wurde. Auch dieses Archiv muss wieder entpackt und mit den folgenden Befehlen übersetzt und installiert werden:
cd #
cd Downloads/avr-libc-1.6.4
./configure --prefix=/opt/local --build=`./config.guess` --host=avr
make
sudo make install
Nun sollte die komplette AVR-Toolchain auf dem neuesten Stand sein und ist bereit für den Einsatz. DIe hier beschriebene Vorgehensweise wurde mit den oben angegebenen Versionen der verschiedenen Pakete getestet. Für neuere Versionen muss dies nicht unbedingt zum Erfolg führen...
Neulich wollte ich ein AVR-Projekt anlegen, welches den Prozessor AT90USB162 verwendet. Ich hatte eine veraltete AVR-Toolchain installiert und musste feststellen, dass dieser Prozessor leider nicht unterstützt wird. Also habe ich mich aufgemacht, die Toolchain selbst aus den aktuellsten Quellen zu erstellen. Dies war ein Unterfangen von fast zwei Tagen und ich möchte die Erfahrungen, die ich gemacht habe, weitergeben.