Forum: Compiler & IDEs AVRGCC und ATTiny26


von Matthias (Gast)


Lesenswert?

Hi

unterstützt der GCC (C-Compiler) den ATTiny26 in der aktuellen Version? 
Ich konnte in den Docs auf www.gnu.org leider keinen Hinweis finden.

Matthias

von Sascha Weitkunat (Gast)


Lesenswert?

Also ich weiss nicht ganz genau ob ich die neuste Version drauf habe, 
aber da eine "iotn26.h" existiert wird dieser wohl auch unterstützt, 
rausgenommen werden sie ihn wohl kaum haben ;)

von Dieter Brüggemann (Gast)


Lesenswert?


von Matthias (Gast)


Lesenswert?

Hi

danke. Dann sind die GNU-Docs einfach ein bischen hinterher.

BTW:
Ich bin grade dabei auf Linux (z.Z. eine Suse 8.2) umzusteigen. Dort 
meldet mir aber der GCC (3.3 20030226 prerelease) das er die Option 
mcu=atmega8 nicht kennt. Was soll das den? Den Umweg über wine und 
WINAVR möchte ich dann doch nicht gehen ;-)

Matthias

von Joerg Wunsch (Gast)


Lesenswert?

Die Option heißt auch nicht mcu= sondern -mmcu=.  (-m leitet
eine »machine specific option« ein, also eine, die nur für
in diesem Falle die AVR-Version des gcc gültig ist.)

von MiCHEL (Gast)


Lesenswert?

warum suse? wenn linux dann .... debian!

von Joerg Wunsch (Gast)


Lesenswert?

Sehr konstruktiv, und völlig zum Thema passend.  Darf ich jetzt
auch mit dem Unix meiner Wahl hier werben?  Alles andere ist
doch ohnehin Müll, nicht wahr?

von Matthias (Gast)


Lesenswert?

Hi

Ich weiß wie die Option heißt nur heißt die Fehlermeldung unter Linux 
eben so. Das -m läßt der GCC wahrscheinlich bei der Fehlermeldung weg.

Matthias

von Joerg Wunsch (Gast)


Lesenswert?

Ach so, hmm, ich habe hier mal eine unbekannte MCU-Angabe
probiert, da bekomme ich:

% avr-gcc -mmcu=foo /tmp/foo.c
unknown MCU `foo' specified
Known MCU names:
   avr2
   at90s2313
   at90s2323
   at90s2333
   at90s2343
   attiny22
   attiny26
   at90s4414
   at90s4433
   at90s4434
   at90s8515
   at90c8534
   at90s8535
   at86rf401
   avr3
   atmega103
   atmega603
   at43usb320
   at43usb355
   at76c711
   avr4
   atmega8
   atmega8515
   atmega8535
   avr5
   atmega16
   atmega161
   atmega162
   atmega163
   atmega169
   atmega32
   atmega323
   atmega64
   atmega128
   at94k
   avr1
   at90s1200
   attiny11
   attiny12
   attiny15
   attiny28
/tmp/foo.c:1: error: MCU `foo' supported for assembler only

Was bekommst Du denn genau?  Das richtige Compiler-Frontend
wird auch aufgerufen (avr-gcc -v ...)?  Nicht dass er den
gcc fuer das Hostsystem aufruft...

von Matthias (Gast)


Lesenswert?

Hi

ich glaub ich blamier mich jetzt aber:
D.h. der ganz normale GCC der bei SUSE dabei ist kann keine AVR-Binaries 
erzeugen? Ich hatte die (küne?) Vermutung das das -m das Target 
entsprechend umschaltet.

Matthias

von Joerg Wunsch (Gast)


Lesenswert?

Uh, noe, der kann das nicht.  Du brauchst eine AVR Toolchain,
bestehend aus:

. avr-binutils
. avr-gcc
. avr-libc

binutils und gcc sind dabei die normalen GNU-Quellen, aber
jeweils mit --target avr konfiguriert und danach gebaut.
Beim Installieren setzen beide ihren jeweiligen Programmnamen
ein avr- voran (aus ld wird also avr-ld, aus gcc avr-gcc usw.),
um sie so von den Hostsystem-Komponenten zu unterscheiden.

avr-libc ist komplett separat, siehe
http://savannah.nongnu.org/projects/avr-libc/

Fuer all den Kram gibt's dort wohl auch RPMs, die mehr oder
weniger gut fuer Dich funktionieren koennen (je nach den
uebrigen shared libs, wobei die avr-libc ja komplett unabhaengig
von den shared libs des Hostsystems ist, da sie nur AVR
Komponenten enthaelt).

von Matthias (Gast)


Lesenswert?

Hi

danke. Tut.


Matthias

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.