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
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
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.
@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 keinWinAVR 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.
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 ;)
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
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.
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
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 --------
Hi
ein "Fehler" im Beispielmakefile dieser Version ist dafür
verantwortlich. Tust du auskommentieren
LDFLAGS += -Wl,-u,vfprintf -lprintf_flt
und
LDFLAGS += -lm
Matthias
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