mikrocontroller.net

Forum: Compiler & IDEs atmega8 unter windoof...?


Autor: mikrosaft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mahlzeit,
habe folgendes problem: ich habe winavr installiert und diverse 
testprogramme für den 90s2343 und den 90s4433 compiliert. klappt alles 
wunderbar, und läuft auch wie gewünscht in der schaltung. wenn ich aber 
mit dem atmega8 arbeiten will, kommt beim make eine fehlermeldung, dass 
der mega8 nicht unterstützt wird.
das verwundert mich ein wenig, steht doch in der doku zur gcc dass der 
mega8 unterstützt wird...
hab übrigens die neueste version von winavr (april 2003) installiert...
kennt jemand den grund, warum das nicht funzt?
gruss
ms

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

makefile nicht an die andere Architektur angepasst? Poste mal die genaue 
Fehlermeldung die der GCC ausspuckt.

Matthias

Autor: mikrosaft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
södele, hat was gedauert weil ich erst meinen vdr runterfahren musste...
hier der auswurf von dos:
C:\Programme\avr\progs\test1>make
avr-gcc -c -g -O3 -Wall -Wstrict-prototypes -Wa,-ahlms=test1.lst 
-mmcu=atmega8 -
I. test1.c -o test1.o
Wrong mcu `atmega8' specified
Allowed mcu's:
   at90s2313
   at90s2323
   at90s2333
   attiny22
   at90s2343
   at90s4433
   at90s4414
   at90s4434
   at90s8515
   at90s8535
   atmega603
   atmega103
cc1.exe:
C:\PROGRA~1\AVR\BIN\MAKE.EXE: *** [test1.o] Error 1

für mich hört sich das so an, als würde der keine mega8 mögen...

gruss
ms

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist alles, nur nicht die neueste Version von Winavr. Ich vermute du 
hast noch die alte AVRFreaks-Version installiert & im Path stehen, lösch 
die einfach und probier's nochmal.

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Btw., -O3 ist in 99 % der Fälle eher Unsinn (erzeugt sehr großen Code, 
der
im günstigsten Fall weniger als 10 % schneller als der von -Os rechnet).

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jörg, der Zeilenumbruch erfolgt jetzt serverseitig bei 72 Zeichen, du
kannst dir/deinem Editor die Arbeit sparen.

Autor: mikrosaft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm, hab noch mal das ganze von hier runtergeladen
(http://sourceforge.net/project/showfiles.php?group...)
ist aber das gleiche wie ich schon habe, also das aktuelle winavr...
werd das ganze mal unter linux probieren...
gruss
ms

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Andreas, ja, bislang mußte man es ja manuell machen, damit es
einigermaßen ,,aussah''...

@[der Herr mit dem Namen, den er uns nicht nennt] es ging ja nicht
darum,
daß Du kein WinAVR hättest, sondern daß Du offenbar außerdem noch
die
alte avrfreaks.net-Version installiert hast.  Da die im %PATH% vor der
WinAVR-Version steht, wird sie dann zuerst gefunden.  Daher diese
deinstallieren, so daß nur noch WinAVR da ist.

Autor: Gerd Schroer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmmm, das einzige was ich installiert habe ist aber winavr (und
avrstudio 4)...
und bei der installation habe ich mich an die anleitung gehalten.
(avrfreaks habe ich extra nicht weiter verfolgt weil ja überall
dransteht, dass die nicht so häufig aktualisiert wird)
jetzt schnall ich nix mehr... wie kann dann die freaks-version auf
meinem rechner landen, wenn ich die gar nicht runtergeladen hab
geschweige denn installiert (oder ist die beim winavr mit dabei?)

gruss

gerd alias ms ;)

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

was spricht den "avr-gcc -v"?

Matthias

Autor: Gerd Schroer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi matthias,

-v werd ich wohl heut nicht mehr ausprobieren (kann den vdr heut nicht
abstellen, dann killt mich die wg...), aber ich werds probieren, sobald
ich die gelegenheit habe (was mit arbeiten nicht so leicht unter einen
hut zu kriegen ist...)

gruss
(g/m)s

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
avr-gcc --target-help ist auch ganz nützlich, Gerd (und danke für den
Namen, ich mag gern mit Menschen reden ;-).  Ich bekomme für einen
aktuellen avr-gcc hier:


Target specific options:
  -msize             Output instruction sizes to the asm file
  -mshort-calls      Use rjmp/rcall (limited range) on >8K devices
  -mno-tablejump     Do not generate tablejump insns
  -mtiny-stack       Change only the low 8 bits of the stack pointer
  -mcall-prologues   Use subroutines for function prologue/epilogue
  -mno-interrupts Change the stack pointer without disabling
interrupts
  -mint8             Assume int to be 8 bit integer
  -mmcu=             Specify the MCU name
  -minit-stack=      Specify the initial stack address

There are undocumented target specific options as well.
AVR options:
  -mmcu=[avr-name] select microcontroller variant
                   [avr-name] can be:
                   avr1 - AT90S1200, ATtiny1x, ATtiny28
                   avr2 - AT90S2xxx, AT90S4xxx, AT90S8xxx, ATtiny22
                   avr3 - ATmega103, ATmega603
                   avr4 - ATmega83, ATmega85
                   avr5 - ATmega161, ATmega163, ATmega32, AT94K
                   or immediate microcontroller name.
  -mall-opcodes    accept all AVR opcodes, even if not supported by
MCU
  -mno-skip-bug    disable warnings for skipping two-word instructions
                   (default for avr4, avr5)
  -mno-wrap        reject rjmp/rcall instructions with 8K wrap-around
                   (default for avr3, avr5)
Known MCU names:
 avr1 avr2 avr3 avr4 avr5 at90s1200 attiny10 attiny11 attiny12
attiny15
  attiny28 at90s2313 at90s2323 at90s2333 at90s2343 attiny22 attiny26
  at90s4433 at90s4414 at90s4434 at90s8515 at90s8535 at90c8534
at86rf401
  atmega603 atmega103 at43usb320 at43usb355 at76c711 atmega8 atmega83
  atmega85 atmega8515 atmega8535 atmega16 atmega161 atmega162
atmega163
  atmega169 atmega32 atmega323 atmega64 atmega128 at94k
  no emulation specific options.

Die `Known MCU names' sind die, die Dich hier wohl interessieren.

Autor: Gerd Schroer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mahlzeit...
also, hab jetzt mittlerweile geschnallt was sache ist. meine
gcc-version war die 2.95 von oktober 99... >8( fragt jetzt bitte nicht,
wo und wie ich da dran gekommen bin...
ich schiebs jetzt einfach auf die hitze und erfreue mich jetzt einfach
einer 'wirklich' aktuellen version des compilers...
danke für eure tips, jedenfalls hab ich jetzt einen funktionstüchtigen
compiler.

gruss
gerd

Autor: Gerd Schroer (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hi ihrs,
ich glaub mein avr pfeift...
es kann doch nicht sein, dass die alte version von 99 für den 4433 300
byte hexcode macht, während das aktuelle teil den gleichen sourcecode
für den mega8 auf 12k aufbläst...

avr-gcc -c -mmcu=atmega8 -I. -g -O3 -funsigned-char
-funsigned-bitfields -fpack-
struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test1.lst
test1.c -o t
est1.o
test1.c:29: warning: return type of `main' is not `int'
avr-gcc -mmcu=atmega8 -I. -g -O3 -funsigned-char -funsigned-bitfields
-fpack-str
uct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test1.o test1.o
  --outp
ut test1.elf -Wl,-Map=test1.map,--cref -Wl,-u,vfprintf -lprintf_flt
-lm
avr-objcopy -O ihex -R .eeprom test1.elf test1.hex
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load"
--change-section
-lma .eeprom=0 -O ihex test1.elf test1.eep
avr-objdump -h -S test1.elf > test1.lss
Size after:
test1.elf  :
section    size      addr
.text      4564         0
.data         6   8388704
.bss          4   8388710
.noinit       0   8388714
.eeprom       0   8454144
.stab       948         0
.stabstr   1110         0
Total      6632


Errors: none
-------- end --------

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

ein "Fehler" im Beispielmakefile dieser Version ist dafür
verantwortlich. Tust du auskommentieren

LDFLAGS +=  -Wl,-u,vfprintf -lprintf_flt
und
LDFLAGS += -lm

Matthias

Autor: Gerd Schroer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke matthias,

sowas passiert, wenn man nicht wirklich weiss, was man tut... gg
ich glaub, ich muss noch viel lesen (und verstehen). wenn nur mein
englisch nicht so schlecht wäre...

gruss
gerd

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
-lm kannste auch drinlassen.  Aus der math-Bibliothek werden nur die
Sachen gelinkt, die auch wirklich gebraucht werden.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Wieder was gelernt.
was ist den in math was man für nicht float brauchen könnte?

Matthias

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Wesentlichen sind es die Funktionen dafür.  Die Grundrechenarten
macht der Compiler bzw. die libgcc.a.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.