Forum: Compiler & IDEs Gentoo Linux crossdev atmega256x gcc4.1.2


von Max P. (maxpower)


Angehängte Dateien:

Lesenswert?

Hallo,

um die Unterstützung für die Atmel 256x-er Reihe auf Gentoo zum Laufen 
zu bekommen hab ich ein Skript erstellt, das die Toolchain mit gcc-4.1.2 
quasi "auf Kommando" herunterlädt, entpackt, patcht, konfiguriert, 
kompiliert und installiert - hat mich Stunden gekostet...
Vielleicht kann sich ein anderer mit den Skript die Zeit sparen :)
Es müsste auch auf anderen Distributionen als Gentoo laufen. Wenn's 
jemand versucht, wäre feedback schön...

Gruss,

Stefan

von Stefan Salewski (Gast)


Lesenswert?

Ein anderer Stefan schrieb:
>Wenn's jemand versucht, wäre feedback schön

Ich mache den Gentoo-Entwicklern auch schon seit Monaten "Druck", dass 
eine aktuelle Version von avr-gcc bereitgestellt wird -- bis jetzt 
vergeblich.
Meine Kenntnisse bezüglich CROSSDEV sind leider noch zu gering, so dass 
ich da aktiv nicht viel machen kann.

http://bugs.gentoo.org/show_bug.cgi?id=173328

Ich werde mir Dein Script daher mal ansehen, danke.

Gruß

Stefan Salewski

von André K. (freakazoid)


Lesenswert?

Sollte das der vorhandene avr-gcc-4.1.1 nicht können? Zumindest
spuckt avr-gcc-4.1.1 --target-help folgendes aus:

Known MCU names:
  avr1 avr2 avr3 avr4 avr5 avr6 at90s1200 attiny10 attiny11 attiny12
  attiny15 attiny28 at90s2313 at90s2323 at90s2333 at90s2343 attiny22
  attiny26 at90s4433 at90s4414 at90s4434 at90s8515 at90s8535 at90c8534
  at86rf401 attiny13 attiny2313 attiny261 attiny461 attiny861 attiny24
  attiny44 attiny84 attiny25 attiny45 attiny85 atmega603 atmega103
  at43usb320 at43usb355 at76c711 atmega48 atmega8 atmega83 atmega85
  atmega88 atmega8515 atmega8535 at90pwm2 at90pwm3 atmega16 atmega161
  atmega162 atmega163 atmega164p atmega165 atmega165p atmega168 
atmega169
  atmega169p atmega32 atmega323 atmega324p atmega325 atmega329 
atmega3250
  atmega3290 atmega406 atmega64 atmega640 atmega644 atmega644p atmega128
  atmega1280 atmega1281 atmega645 atmega649 atmega6450 atmega6490
  at90can32 at90can64 at90can128 at90usb646 at90usb647 at90usb1286
  at90usb1287 at94k atmega2560 atmega2561

Grüße,
Freakazoid

von Stefan Salewski (Gast)


Lesenswert?

>Sollte das der vorhandene avr-gcc-4.1.1 nicht können?

Meinst Du avr-gcc für Gentoo-Linux? Dort gibt es derzeit nur
avr-gcc 3.4.6 als offizielles ebuild. Jedenfalls war es mir nicht 
gelungen mit emerge/crossdev etwas aktuelleres zu installieren.

von Max P. (maxpower)


Lesenswert?

Stefan Salewski wrote:
>>Sollte das der vorhandene avr-gcc-4.1.1 nicht können?
Unter Gentoo gibt es für crossdev leider erst gcc-3.4.6. Deshalb der 
ganze Aufwand mit Toolchain kompilieren...

> Meinst Du avr-gcc für Gentoo-Linux? Dort gibt es derzeit nur
> avr-gcc 3.4.6 als offizielles ebuild. Jedenfalls war es mir nicht
> gelungen mit emerge/crossdev etwas aktuelleres zu installieren.

...hab mir also den gcc v4.1.2 runtergeladen und beim installieren der 
avr-libc festgestellt, dass auch er keinen atmega2561/atmega2560 
unterstützt. Hab dann gelesen, dass zuerst die binutils und gcc gepatcht 
werden müssen. Hab das dann alles in das Skript gepackt - nur für euch 
:)

edit: ohne crossdev. Das Skript hat (leider) nichts mit portage zu tun. 
Es installiert die binaries per default nach /usr/local

edit2: wo ich grad hier bin... als IDE eiget sich übrigens codeblocks 
gut ;)

von André K. (freakazoid)


Lesenswert?

> Meinst Du avr-gcc für Gentoo-Linux? Dort gibt es derzeit nur
> avr-gcc 3.4.6 als offizielles ebuild. Jedenfalls war es mir nicht
> gelungen mit emerge/crossdev etwas aktuelleres zu installieren.
Jupp. Mein ich.

> ...hab mir also den gcc v4.1.2 runtergeladen und beim installieren der
> avr-libc festgestellt, dass auch er keinen atmega2561/atmega2560
> unterstützt. Hab dann gelesen, dass zuerst die binutils und gcc gepatcht
> werden müssen. Hab das dann alles in das Skript gepackt - nur für euch
> :)
> edit: ohne crossdev. Das Skript hat (leider) nichts mit portage zu tun.
> Es installiert die binaries per default nach /usr/local
Also mein crossdev klappte. Allerdings mußten die binutils nochmal neu 
'remerged' werden. Sonst hat er das irgendwie nicht gefressen. Ist aber 
schon lange her. Jörg Wunsch hatte da auch ein paar Tipps zu. Aber wie 
gesagt: Lange her.

Grüße, Freakazoid

von Stefan Salewski (Gast)


Lesenswert?

Autor:  Max Power (maxpower) schrieb:
>Es müsste auch auf anderen Distributionen als Gentoo laufen.

Auf meinem Gentoo-Linux (AMD64) funktioniert es sehr gut, der 
AT90USB1287 wird voll unterstützt! Meine USB-Firmware lässt sich sogar 
ohne Änderungen kompilieren, es gibt lediglich einige Warnungen.

Autor:  André Kronfeldt (freakazoid) schrieb:
>Also mein crossdev klappte.

Ich hatte es mit crossdev nochmals probiert und mich auch schon gefreut, 
aber leider kommt beim Kompilieren eine Meldung, dass der AT90USB nur 
beim Assemblieren unterstützt wird:

http://bugs.gentoo.org/show_bug.cgi?id=173328

Gruß

Stefan Salewski

von Max P. (maxpower)


Angehängte Dateien:

Lesenswert?

> dass der AT90USB nurbeim Assemblieren unterstützt wird

Nachdem ich das crossdev dazu gebracht hatte gcc-4.1.2 und binutils-2.17 
zu installieren hatte ich genau das selbe Problem mit dem atmega2561:
"Fehler: MCU »atmega2561« nur für Assemblierung unterstützt"
Wollte dann die toolchain nochmal - diesmal mit allen Patches - 
kompilieren, was alledings mit Fehler abgebrochen ist. Habe mir das Log 
angeschaut und festgestellt, dass in die vanilla-sources ausserdem noch 
einige Gentoo-Patches eingespielt wurden - und dann meine eigenen. Hab 
dann aufgegeben, denn die Patch-Verwaltung ist grausam, finde ich. Da 
installier ich mir das doch lieber manuell von den vanilla-sourcen aus. 
Da weiss ich wenigstens, welche Patches ich einspiele und - noch 
wichtiger - welche nicht.
Anbei noch ein aktualisiertes Skript. Das andere bricht ab, wenn man in 
ein Verzeichnis installiert, dessen 'bin' nicht in $PATH steht.

Happy compiling,

Stefan :)

von Max P. (maxpower)


Angehängte Dateien:

Lesenswert?

Moinsen,

für alle die's interessiert, eine neues script für den neuen gcc ;-)

 avr-libc-1.4.7
 gcc-4.2.2
 avr-binutils-2.18

Gruss, Stefan!



Known MCU names:
  avr1 avr2 avr3 avr4 avr5 avr6 at90s1200 attiny10 attiny11 attiny12
  attiny15 attiny28 at90s2313 at90s2323 at90s2333 at90s2343 attiny22
  attiny26 at90s4433 at90s4414 at90s4434 at90s8515 at90s8535 at90c8534
  at86rf401 attiny13 attiny2313 attiny261 attiny461 attiny861 attiny24
  attiny44 attiny84 attiny25 attiny45 attiny85 attiny43u attiny48
  atmega603 atmega103 at43usb320 at43usb355 at76c711 atmega48 atmega48p
  atmega8 atmega83 atmega85 atmega88 atmega88p atmega8515 atmega8535
  atmega8hva at90pwm1 at90pwm2 at90pwm2b at90pwm3 at90pwm3b atmega16
  atmega161 atmega162 atmega163 atmega164p atmega165 atmega165p
  atmega168 atmega168p atmega169 atmega169p atmega32 atmega323
  atmega324p atmega325 atmega325p atmega328p atmega329 atmega329p
  atmega3250 atmega3250p atmega3290 atmega3290p atmega406 atmega64
  atmega640 atmega644 atmega644p atmega128 atmega1280 atmega1281
  atmega645 atmega649 atmega6450 atmega6490 atmega16hva at90can32
  at90can64 at90can128 at90pwm216 at90pwm316 at90usb82 at90usb162
  at90usb646 at90usb647 at90usb1286 at90usb1287 at94k atmega2560
  atmega2561

von Stinke S. (stinke)


Lesenswert?

Danke! Funktionierte prima.
Crossdev is echt nich das gelbe vom Ei.

von White (Gast)


Lesenswert?

sys-devel/crossdev-0.9.18-r8

avr-gcc (Gentoo 4.3.1 p1.0) 4.3.1
cross-avr/binutils-2.18-r1

Funktioniert.

Infos auf 
http://de.gentoo-wiki.com/Mikrocontrollerprogrammierung_unter_Gentoo_(AVR_Atmega_etc)

Den patch.patch braucht man.

und auf 64Bit systemen eventuell nen:

ln -s /usr/x86_64-pc-linux-gnu/avr/lib/ldscripts 
/usr/lib/gcc/avr/4.3.1/avr5/


PS: Super Forum... schon viel gelernt hier durchs lesen.

von Stefan Salewski (Gast)


Lesenswert?

Danke für den sicherlich gut gemeinten Hinweis, aber der genannte Link 
liefert lediglich die Meldung:

(Dieser Artikel enthält momentan keinen Text)

Das nützt nicht viel.

von Stefan E. (sternst)


Lesenswert?

Stefan Salewski wrote:
> Danke für den sicherlich gut gemeinten Hinweis, aber der genannte Link
> liefert lediglich die Meldung:
>
> (Dieser Artikel enthält momentan keinen Text)
>
> Das nützt nicht viel.

Man sieht doch, dass der Link offensichtlich verstümmelt ist. Füge die 
schließende Klammer zum Link hinzu, dann geht er auch.

von Max P. (maxpower)


Angehängte Dateien:

Lesenswert?

Moinsen,

für alle die's brauchen, eine neues Update. :-)

 avr-libc-1.6.7
 gcc-4.3.2
 avr-binutils-2.19

Gruss, Stefan!



Known MCU names:
  avr1 avr2 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avrxmega1
  avrxmega2 avrxmega3 avrxmega4 avrxmega5 avrxmega6 avrxmega7 at90s1200
  attiny11 attiny12 attiny15 attiny28 at90s2313 at90s2323 at90s2333
  at90s2343 attiny22 attiny26 at90s4414 at90s4433 at90s4434 at90s8515
  at90c8534 at90s8535 attiny13 attiny13a attiny2313 attiny24 attiny44
  attiny84 attiny25 attiny45 attiny85 attiny261 attiny461 attiny861
  attiny43u attiny48 attiny88 at86rf401 at43usb355 at76c711 atmega103
  at43usb320 attiny167 at90usb82 at90usb162 atmega8 atmega48 atmega48p
  atmega88 atmega88p atmega8515 atmega8535 atmega8hva at90pwm1 at90pwm2
  at90pwm2b at90pwm3 at90pwm3b atmega16 atmega161 atmega162 atmega163
  atmega164p atmega165 atmega165p atmega168 atmega168p atmega169
  atmega169p atmega32 atmega323 atmega324p atmega325 atmega325p
  atmega3250 atmega3250p atmega328p atmega329 atmega329p atmega3290
  atmega3290p atmega406 atmega64 atmega640 atmega644 atmega644p
  atmega645 atmega649 atmega6450 atmega6490 atmega16hva at90can32
  at90can64 at90pwm216 at90pwm316 atmega16u4 atmega32c1 atmega32m1
  atmega32u4 atmega32u6 at90usb646 at90usb647 at94k atmega128
  atmega1280 atmega1281 atmega1284p atmega128rfa1 at90can128
  at90usb1286 at90usb1287 atmega2560 atmega2561 atxmega16a4
  atxmega16d4 atxmega32d4 atxmega32a4 atxmega64a3 atxmega64a1
  atxmega128a3 atxmega256a3 atxmega256a3b atxmega128a1

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.