Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

crossdev_avr [2011/05/11 22:44]
terminar angelegt
crossdev_avr [2011/05/14 21:14] (aktuell)
terminar
Zeile 1: Zeile 1:
 +====== Gentoo/Sabayon crossdev avr ======
 +
 +:!::!::!:
 +WARNUNG VORAB!!! Die neueren 4.4.xer GCC Versionen funktionieren nicht mehr problemlos mit den Atmegas! :!::!::!:
 +Getestet mit atmega1284p ohne Probleme: gcc 4.3.3 \\
 +
 +Problematisch:
 +  * 4.2.4 (nur asm support für den 1284p)
 +  * 4.4.3 (hat bei Arduino mit dem avr-g++ beim 1284p Probleme mit Klassen gemacht.. sobald Serial.begin(9600) genutzt wurde, hing der Atmega, egal ob etwas in der begin() Methode steht oder nicht)
 +:!::!::!:
 +
 +
 +Bei Gentoo/Sabayon gibt es momentan etwas Probleme, 
 +
 +  - den aktuellen crossdev für avr's
 +  - mit support für den atmega1284p
 +  - mit avrdude und dem stk600 zu flashen
 +  - mit avr-g++ für Arduino
 +
 +zu mergen. 
 +
 +Die Seite hier sammelt Infos als Ansätze zusammen und ist _kein_ perfekt zu befolgendes Howto!
 +
 +atmega1284p => gcc 4.3.3
 +stk600 => avrdude 5.10 
 +
 +Infos unter
 +
 +  * http://en.gentoo-wiki.com/wiki/Crossdev
 +  * http://bugs.gentoo.org/show_bug.cgi?id=286267
 +  * http://bugs.gentoo.org/show_bug.cgi?id=340114
 +  * http://bugs.gentoo.org/show_bug.cgi?id=147155
 +
 +Der portage vom cross-avr ist übrigens z.B. bei Sabayon unter /usr/local/portage/layman/sabayon, wobei der auch wieder nur auf /usr/portage/dev-embedded/ und /usr/portage/sys-devel etc zeigt ;)
 +
 +Mit Trick funktioniert es:
 +
 +<code>
 +emerge crossdev
 +echo "PORTDIR_OVERLAY=\"/usr/local/portage\"" >> /etc/make.conf
 +echo "<cross-avr/gcc-4.3.4" >>/etc/portage/package.unmask
 +echo "<sys-devel/binutils-2.21" >>/etc/portage/package.unmask
 +echo "<sys-libs/glibc-2.11.2-r4" >>/etc/portage/package.unmask
 +
 +crossdev -t avr
 +USE="-nocxx" emerge cross-avr/gcc
 +#ln -s /usr/avr/gcc-bin/*/avr-gcc /usr/local/bin/
 +emerge cross-avr/binutils
 +emerge cross-avr/avr-libc
 +gcc-config avr-4.3.3
 +source /etc/profile
 +ln -sv /usr/lib/binutils/avr/2.21/ldscripts/ /usr/avr/lib/ldscripts
 +ln -sf /usr/lib/binutils/avr/2.21/ldscripts /usr/x86_64-pc-linux-gnu/avr/binutils-bin/2.21/ldscripts
 +</code>
 +
 +
 +Ich weiss nicht ob das einzelne mergen von cross-avr/binutils und avr-libc notwendig ist, das Thema mit den symlinks vom binutils muss aber sein. Achtung, x86_64 = 64bit system...
 +
 +Besonders bei Meldungen wie 
 +<code>
 +/usr/libexec/gcc/avr/ld: cannot open linker script file ldscripts/avr5.x: No such file or directory
 +</code>
 +
 +folgendes machen:
 +<code>
 +/usr/x86_64-pc-linux-gnu/avr/binutils-bin/2.21 $ ln -sf /usr/lib/binutils/avr/2.21/ldscripts ldscripts
 +</code>
  
 
 
         
         
   
(14977 views) crossdev_avr.txt · Zuletzt geändert: 2011/05/14 21:14 von terminar