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 ./
Für Fehler wie Error: illegal opcode movw for mcu avr3 siehe auch Problem with crossdev and AVR-GCC
[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-0010) 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 librxtxSerial.so /usr/lib64/rxtx-2/librxtxSerial.so $ ln -s RXTXcomm.jar /usr/share/rxtx-2/lib/RXTXcomm.jar
