hab error bei make:
make
avr-gcc systimer.o lcd.o sta013.o uart.o i2c.o spi.o ata_if.o
playmgr.o procyon.o -Wl,-Map=procyon.map,--cref -mmcu=atmega128 -o
procyon.elf
C:\WinAVR\bin\..\lib\gcc-lib\avr\3.3.1\..\..\..\..\avr\lib\avr5\crtm128.
o(.init9+0x0):
undefined reference to `main'
avr-objcopy -O avrobj procyon.elf procyon.obj
avr-objcopy: procyon.elf: No such file or directory
avr-objcopy -O ihex procyon.elf procyon.rom
avr-objcopy: procyon.elf: No such file or directory
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" -O
ihex procyon.elf procyon.eep
avr-objcopy: procyon.elf: No such file or directory
>Exit code: 0
gibt es kein weg einfach die object dateien in hex direkt umzuwandeln.
alle hilfe benötigt.
danke.
HÄ? Wenn der Linker versagt, willst du obj-Dateien in Hex-Dateien umwandeln? Wo soll'n da der Witz sein? Geh der ersten Fehlermeldung nach, dann klärt sich der Rest auch.
der int main (void) steht in ein procyon.c aber der erkennt der main nicht... und hab schon überall in internet gesucht.nichts gefunden.
Sorry, aber Jörg hat Dir doch schon geantwortet. Doppelposts sind unhöflich und rauben viel Freizeit!
Lies mal was dein Linker dir sagt: "undefined reference to `main'" bedeutet, dass der Linker die Referenz zur main nicht auflösen kann. Möglicherweise ist sie doch nicht da?
> Möglicherweise ist sie doch nicht da?
In den Files ist sie drin, aber ich bekomme dieses Makefile-
Gewurschtel nicht mit vertretbarem Aufwand zum Laufen.
Ich hab gestern versucht, dass ganze mittels AVR-Studio zu entwirren. Neues Projekt erzeugt, Source Files hinzugefügt. Prozessor ausgewählt und compile. Nach dem 5. File bei dem ich #include <io.h> gegen #include <avr/io.h> getauscht habe und einige veraltete Konstrukte, die der Compiler nicht mehr kennt, gegen Neuere ausgetauscht habe, hab ich aufegegeben. War mir zu viel Stress.
Genauso ging mir's auch. Soll Herr Stang seinen Kauderwelsch bitte selbst supporten, wenn er sich nicht an Konventionen halten kann.
die makefile sind mit noch 2 makefiles verbunden.....make1 und make2 hab ich auch in dieser antwort angehängt ohne die beiden makefiles geht es nicht.
die beide make files hab ich unter $(AVR)/include/ auch kopiert so dass der makefile die andere zwei erkennen und das macht sie auch.
S. o.: es ist zu viel Aufwand für unserereiner, das alles zu entwirren. Es sind nicht die Makefiles, ich habe mir 1-fix-3 mit Mfile ein neues gezimmert, Karl Heinz hat sich ein AVR-Studio- Projekt gebaut, aber der Code selbst ist so neben den Konventionen, dass man das nicht compiliert bekommt. Wenn Pascal Stang nicht #include <avr/io.h> schreiben kann, sondern darauf besteht, #include <io.h> zu schreiben, wenn er nicht nach X Jahren endlich mal geschnallt hat, dass inb() und outb() der Vergangenheit angehören -- dann sorry, dann soll er sein Zeug bitte selbst supporten.
Sehe ich auch so. Wobei ich mir zu 99% sicher bin: Wenn man diese alten Konstrukte (da war noch irgendwas im uart.c, anscheined wuren einige Makros nicht gefunden, ich bin dem dann aber nicht mehr näher nachgegeangen; ach ja: eine Datei io128v.h oder so ähnlich konnte ich auch nicht finden) gegen Zeitgemässes ersetzt, dann compiliert und linkt das ohne Probleme. Das Makefile an sich ist ja bei AVR-Studio überhaupt kein Problem. Einfach die Source Files in ein Projekt einfügen und das Studio erzeugt daraus das Makefile. Noch ein paar (selbstverständlichen) Einstellungen, wie Prozessor und Prozessorgeschwindigkeit in den Projekt-Options einstellen und dann funzt das auch. Nur: Das Ganze sollte halt mit einem halbwegs zeitgemässen Compiler ohne 25-tausen zusätzlichen Header-Files fehlerfrei compilieren. 1 oder 2 Fehler behebe ich stillschweigend aber wenn der Compiler da eine Litanei runterleiert und ich zuerst mal die System-Includes durchforsten muss um die Funktion zu finden, dann höre ich ganz schnell wieder auf.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.