Mikrocontrollerprogrammierung unter Gentoo (AVR Atmega etc)

Aus Gentoo Linux Wiki

Wechseln zu: Navigation, Suche
Dieser Artikel ist Teil der HOWTO Sammlung.
Installationsmethoden LiveCDs Kernel & Hardware Laptops & Notebooks Portage System Netzwerke & Services X Software Anderes alphabetischer HOWTO Index


Dieser Artikel beschreibt, wie man unter Gentoo die nötigen Tools installiert und verwendet, um Mikrocontroller von Atmel (ATMega, ..) zu programmieren.

Inhaltsverzeichnis

[Bearbeiten] Nötige Tools installieren

[Bearbeiten] avr-gcc

avr-gcc wird mit dem Tool crossdev installiert, welches seinerseits ein Portage Overlay benötigt.

$ emerge crossdev
  • mit crossdev den avr-gcc installieren
$ crossdev -t avr

[Bearbeiten] Mögliche Probleme

Die Informationen des Installationsfortschrittes werden bei Verwendung von crossdev nicht am Bildschirm ausgegeben, sondern landen in Log-Dateien. Bei Fehlern also folgende Dateien ansehen:

less /var/log/portage/cross-avr-gcc-stage1.log
less /var/log/portage/cross-avr-gcc-stage2.log

Lässt sich die Fehlerursache nicht eingrenzen, dann hilft oft das saubere Deinstallieren einer alten Version:

$ crossdev -C avr

Falls das Installieren mit der Fehlermeldung

make[1]: avr-gcc: Command not found 

abbricht, so hilft evtl. der folgender Forumthread, Forumthread2 weiter, bzw. die darin vorgeschlagene Lösung.

$ cd /usr/bin
$ ln -s ../avr/gcc-bin/3.4.4/avr-gcc ./

Hinweis: Bei mir hat die Option "--without-headers" für crossdev geholfen.

Für Fehler wie Error: illegal opcode movw for mcu avr3 siehe auch Problem with crossdev and AVR-GCC

Darin sind hauptsächlich folgende Schritte beschrieben:

mkdir -p /etc/portage/patches/cross-avr/binutils/
wget "http://bugs.gentoo.org/attachment.cgi?id=145432" -O /etc/portage/patches/cross-avr/binutils/patch.patch
crossdev -C avr && crossdev -t avr

[Bearbeiten] avr-libc, avr-binutils und avr-gdb

Nach dem installieren von avr-gcc mit crossdev sollten in $PORTDIR_OVERLAY/cross-avr neue eBuilds existieren. Diese können nun installiert werden. (wird u.U. jedoch nicht benötigt, da dieses bereits crossdev -t avr mit erledigt)

  • avr-libc installieren (nur falls nicht schon von crossdev gemacht):
$ emerge cross-avr/avr-libc
  • binutils und Debugger installieren
$ emerge cross-avr/binutils cross-avr/gdb

[Bearbeiten] Software zum Programmieren der Microcontroller

Je nach verwendeter Methode zum Programmieren, wird unterschiedliche Software benötigt.

Sehr einfach ist die In-System Programmierung (ISP) via Parallelport. Dazu kann z.B. uisp verwendet werden.

  • uisp installieren:
$ emerge uisp

Ebenfalls beliebt ist das Tool avrdude, welches z.B. mit dem USBasp Programmierer funktioniert.

  • avrdude installieren
$ emerge avrdude

[Bearbeiten] Besonderheiten beim arduino-Board

  • uisp evtl. separat installieren, wenn ATmega168 verwendet werden soll: arduino Seite
  • weitere Tools bei Verwendung eines arduino-Boards installieren
$ emerge -av --noreplace blackdown-jre jikes rxtx
  • von der Arduino-Seite aktuellstes File (derzeit arduino-0011) herunterladen und auspacken
  • symbolischen Link anlegen (2.18 durch aktuelle Version ersetzen)
$ ln -s /usr/lib/binutils/avr/2.18/ldscripts/ ~/arduino/ldscripts
  • bei einem 64-Bit-System im arduino-lib-Verzeichnis die Dateien "librxtxSerial.so" und "RXTXcomm.jar" löschen oder umbenennen und durch einen Link ersetzen.
$ cd ~/arduino/lib
$ mv librxtxSerial.so librxtxSerial_old.so
$ mv RXTXcomm.jar RXTXcomm_old.jar
$ ln -s /usr/lib64/rxtx-2/librxtxSerial.so librxtxSerial.so
$ ln -s /usr/share/rxtx-2/lib/RXTXcomm.jar RXTXcomm.jar
  • Nutzt man avrdude gern auch in der Kommandozeile, sollte man die arduino-Version durch einen Link zur eigenen Version ersetzen (Bug beachten).
$ cd ~/arduino/hardware/tools
$ mv avrdude avrdude_old
$ mv avrdude.conf avrdude_old.conf
$ ln -s /usr/bin/avrdude avrdude
$ ln -s /etc/avrdude.conf avrdude.conf

[Bearbeiten] Eclipse für AVR-GCC

[Bearbeiten] Eclipse installieren

Geht wie gewohnt mit

emerge eclipse-sdk

Das Herunterladen einer aktuelleren Version von der Eclipse Homepage (am besten gleich mit CDT) funktioniert aber auch ohne Probleme.

Je nachdem welche Version man bevorzugt, muss man noch sichergehen, dass C Development Tools installiert sind.

[Bearbeiten] AVR-Eclipse Plugin installieren

Hinweis: Die Vorgehensweise der Installation von Plugins hat sich zwischen der Eclipse Version 3.2 und 3.4 (IMHO) verändert, die folgenden Anweisungen gelten für Version 3.4 (Ganymede).

Im Menu: "Help" -> "Software Updates..." -> Tab "Available Software" -> "Add Site" -> Location: http://avr-eclipse.sourceforge.net/updatesite/ Danach das AVR Eclipse Plugin aus der Liste zum Installieren auswählen.

Hinweis: Nach dem Neustart von Eclipse kann das erste anlegen eines C/C++ Projekts längern dauern, da das AVR Plugin nach den AVR-GCC Verzeichnissen sucht.

[Bearbeiten] Probleme

[Bearbeiten] cannot open linker script file

cannot open linker script file ldscripts/avr5.x: No such file or directory

Lösung:

cd /usr/libexec/gcc/avr
ln -s /usr/lib/binutils/avr/2.18/ldscripts .

[Bearbeiten] Es wird nach jedem Neustart von Eclipse nach den AVR-GCC Verzeichnissen gesucht

Problem: 2.2.0 Version des Plugins merkt sich die Pfade nicht, daher müssen die immer neu gesucht werden. Das kann unter Umständen recht lange dauern.

Lösung: Man verwende die inoffizielle Vorabversion des Plugins, dort sollten diese Probleme behoben sein.

[Bearbeiten] Links

'Persönliche Werkzeuge