Mikrocontrollerprogrammierung unter Gentoo (AVR Atmega etc)
Aus Gentoo Linux Wiki
| 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.
- falls noch nicht vorhanden: Portage Overlay
- crossdev installieren:
$ 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.
