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 ./

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

[Bearbeiten] Links

'Persönliche Werkzeuge