Forum: Compiler & IDEs Probleme mit kompilieren der avr-libc-1.2.0


von Guido Gerlach (Gast)


Lesenswert?

Hallo allerseits.

Ich möchte den AT90CAN128 einsetzen, welcher von der jüngsten Version
der avr-libc unterstützt wird.

Beim Compilieren der avr-Libc bricht ./domake mit der Meldung
" as: unbekannte Option -mmcu=avr3 "

ab.
Ich benutze gcc in der Version 3.3.4-13 . Die Verzeichnisse unter /avr3
sind angelegt.

Was mache ich falsch?

Danke, Guido

PS: Meine Linux-Vergangenheit ist noch recht überschaubar, trivile
newbie Fehler sind also nicht auszuschliessen.

von Jörg Wunsch (Gast)


Lesenswert?

Du musst die AVR Binutils benutzen.  Wenn er "as" nehmen will (statt
"avr-as"), ist da was foul.

von Guido Gerlach (Gast)


Lesenswert?

Die binutils-avr sind installiert. Der passende gcc damit auch. Auf der
Kommandozeile kann ich sie aufrufen (avr-as --help fördert die
erwartete Hilfe zutage).

Muss ich vielleicht noch Pfade eintragen?

Guido

Debian-Testing, Kernel 2.6.8-1

von Jörg Wunsch (Gast)


Lesenswert?

Der GCC ist übrigens nicht Bestandteil der binutils.

Wie hast Du denn das configure aufgerufen?  Wahrscheinlich nimmst Du
komplett den falschen Compiler, also gcc statt avr-gcc.

von Guido Gerlach (Gast)


Lesenswert?

> Der GCC ist übrigens nicht Bestandteil der binutils.
Entschuldigung, ich habe mich unklar ausgedrückt: den avr-gcc habe ich
per apt-get manuell installiert.

das configure rufe ich im avr-libc-Verzeichnis mit ./doconf auf.

Ich habe jetzt sowohl die avr-binutils als auch den avr-gcc
deinstalliert und wieder installiert, alles mit atp-get.
Interessanterweise liefen jetzt

./doconf
./domake
./domake install

erfolgreich durch. Der Versuch ein Demoprogramm zu übersetzen
scheiterte dennoch.
Die Übersetzung überlasse ich make. Der Compileraufruf im makefile
lautet

CC=avr-gcc
OBJCOPY=avr-objcopy

CFLAGS=-g -mmcu=AT90CAN128

Den Controller AT90CAN128 finde ich in der io.h unter
/usr/local/avr/include/avr
gelistet.

Habe ich doch noch einen Pfad vergessen?

Guido

von Wolf-Ruediger Juergens (Gast)


Lesenswert?

Da ich mein Linux geupdatet (SuSe 9.1 -> 9.2) habe bin ich auch bei der
Gelegenheit den GCC auf 3.4.3 und die avr-libc auf 1.2 neu kompiliert.
Ging soweit problemlos. Nur die Doku wurde nicht erstellt. Es fehlte
fig2dev, allerdings hat domake keine Fehlermeldung ausgegeben. Man muß
das Paket transfig und netpbm installieren, dann kann man im Ordner
build nochmal make anstoßen und erhält die Doku im HTML und PS Format.
Nur falls es jemandem genauso geht...

Wolf

von Jörg Wunsch (Gast)


Lesenswert?

Die neuen AVRs wie AT90CAN128 werden von den bislang freigegebenen
Versionen von GCC und Binutils leider noch nicht unterstützt, sondern
die muss man manuell noch patchen.

Die avr-libc enthält zwar bereits den Support für diese AVRs, kann ihn
aber nur nutzen, wenn auch binutils und GCC Support dafür haben
(configure erkennt das und passt sich entsprechend an).

von Guido Gerlach (Gast)


Lesenswert?

Das verstehe ich nicht ganz:

Wenn configure durchgelaufen ist sollte der GCC auf dem aktuellen Stand
sein und den AT90CAN128 kennen? Das make zum Demoprogramm findet aber
den µC nicht ("not supportet mmcu" ... sry, habe ich im letzten Post
vergessen mit zu schreiben).

Oder muss ich jetzt den GCC+binutils noch händisch patchen? (bitte
nicht, da bin ich an-die-Wand-gestellt)

von Jörg Wunsch (Gast)


Lesenswert?

Nein!

Wie geschrieben: alle bislang freigegebenen Versionenen (aka:
``releases'') von GCC unterstützen diese Chips noch nicht.
Lediglich
der CVS-Code des GCC hat sie bereits eingepflegt.

binutils meiner Meinung nach dasselbe.

Du musst händisch patchen.  WinAVR hat dies als Geste zu seinen
Nutzern bereits gepatcht.

Die Patches geistern irgendwo im Netz 'rum.  Ich glaube, in diesem
Patch-Artikel kannst Du die Referenzen finden:

http://savannah.nongnu.org/patch/index.php?func=detailitem&item_id=2923

(Die avr-libc betreffenden Teile brauchst Du natürlich nicht mehr, die
sind ja schon in der 1.2.0 mit drin.)

Es könnte auch lohnen, Eric Weddington mal selbst danach zu befragen.

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.