Forum: Mikrocontroller und Digitale Elektronik make.exe: *** No rule to make target `main.elf', needed by `elf'. Stop.


von Thomas Frosch (Gast)


Angehängte Dateien:

Lesenswert?

Hi Leute,

weiss schon, dass diese Frage oft gestellt wird, doch leider konnte ich 
nach dem durchsuchen der einiger bereits eingestellten Beiträge meinen 
Fehler immer noch nicht finden!

Bin dabei den USB <-> RS232 wandler von CDC von einem Attiny 2313 auf 
einen Atmeg8 zu migrieren, zugleich mein abgeändertes Makefile dafür zu 
verwenden um von AVRStudio wegzukommen und AVRDUDE mit Programmers 
notepad zu benutzen und die Ordnerstruktur abzuändern. Leider bekomme 
ich immer den im Betreff gezeigten Fehler!

Hat jemand eine Ahnung was ich falsch mache? (siehe Zip Datei)

Vielen Dank schonmal im voraus

von holger (Gast)


Lesenswert?

# List C source files here. (C dependencies are automatically 
generated.)
SRC = $(TARGET).c usbdrv/usbdrv.c usbdrv/oddebug.c usbdrv/usbdrvasm.S 
usbdrv/usbdrvasm.asm

Dort steht doch "C source files" die *.S und *.asm
haben dort nichts zu suchen. Die gehören bei ASRC hin.
Und nimm nur die usbdrvasm.S.

von holger (Gast)


Lesenswert?

usbdrv/usbdrvasm.S
usbdrv/usbdrvasm.asm

Wo sind die beiden eigentlich hin? ;)

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Außerdem fehlt dir wahrscheinlich die Datei main.c, die du als
$(TARGET).c in deinem Makefile explizit referenziert hast.

Vielleicht wolltest du ja ohnehin auch lieber einen anderen Projekt-
namen als ,main' wählen?

von Thomas Frosch (Gast)


Angehängte Dateien:

Lesenswert?

Wie meinst du mir fehlt die Datei main.c? Die ist eigentlich da und das 
Projekt soll auch erstmal so heißen.

Hab nun
ASRC = usbdrv/usbdrvasm.S

und ja die beiden Dateine waren wirklich nicht mehr da! Hab sie da 
wieder reinkopiert. Nichts desto trotz bekomme ich nun wieder ein paar 
andere Fehler! (siehe Anhang)

vorallem ist es die usbCrc16Append die ich nirgends finde. Sie ist in 
usbdrv.h als extern deklariert doch wo ist die tatsächliche Funktion?

Was sind das für komische Konstanten wie _CODEVISIONAVR_ hat das 
irgendwas mit AVR Studio Konstanten zu tun, also kann ich die 
Programmteile die von diesen Konstanten abhängig sind entfernen?

von Thomas Frosch (Gast)


Lesenswert?

Ok sry die Frage zu usbCrc16Append entfällt!

Habe zwar

ASRC = usbdrv/usbdrvasm.S

hinzugefügt aber weiter unten war noch mal

ASRC =

gestanden. So wurde diese Variable wohl wieder gelöscht.

Trotzdem was ist mit
_CODEVISIONAVR_
DEBUG_LEVEL
usw. ?

von hp-freund (Gast)


Lesenswert?

Eine Möglichkeit ist natürlich auch das Projekt neu mit richtigem 
Makefile zu laden und zu compilieren:

http://www.recursion.jp/avrcdc/

Projekt als tgz:
http://www.recursion.jp/avrcdc/cdc232.2011-06-24.tgz
oder als zip:
http://www.recursion.jp/avrcdc/cdc232.2011-06-24.zip

entpacken und in den Ordner:
tiny2313/default
wechseln - make ausführen

Danach kannst Du in kleinen Schritten die Dateien nach Wunsch anpassen.

von hp-freund (Gast)


Lesenswert?

Oh sorry! Gerade gesehen das Du den ATMega8 nehmen willst.
Also:
wechseln nach:
mega48/default

im Makefile
MCU = atmega8
einstellen und dann make ...

von Thomas Frosch (Gast)


Lesenswert?

geht ja aber genau darum das Makefile nicht im Ordner default zu haben 
sondern im gleichen Verzeichnis wie main.c.

Damit ich in Programers Notepad einfach auf Make all klicken kann wenn 
ich in der main.c arbeite.

Zudem habe ich auch schon das Orginale Makefile soweit abgeändert, dass 
das compilieren funktioniert jedoch nicht das Programmieren. War mir 
nicht sicher was ich alles zum Programmieren ins makefile übernehmen 
muss damit es funktioniert und bin deshalb wieder zurück auf mein 
eigenes Makefile gegangen.

In meinem Zipfile befindet sich eine Kopie von gerade diesem Makefile.
Welche Einstellungen muss ich von diesem übernehmen, damit es auch mit 
meinem Makefile funktioniert?

von Dirk (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute!
Bevor ich echt noch einen Ausraster bekomme, melde ich mich doch mal 
hier...
Ich muss für meine Studienarbeit einen MC programmieren und schaffe es 
noch nichtmal, von so einem Miniprogramm eine .hex zu erstellen, um das 
ganze im AVR Studio zu testen.
Ich suche mich schon seit Stunden hier durch die Beiträge, habe ewig 
viel ausprobiert und bin immer noch keinen Schritt weiter.
Ich versuche dauernd, eine .hex mit Notepad (was bei WinAVR dabei ist) 
zu erstellen.
Die Dateien im Anhang habe ich hier aus dem Forum kopiert und das 
scheint geklappt zu haben. Nur bei mir anscheinend nicht.
Die Dateien main.c und makefile stehen bei mir in einem Ordner. Wenn ich 
mit Notepad die main.c öffne und unter Tools -> maka all klicke, kommt 
bei mir auch immer die o. g. Fehlermeldung. Was ist denn jetzt hier 
falsch?! Wenn der MCU angegeben ist (und das kann dem makefile ja 
erstmal egal sein, welcher das ist), und Target auch, was ist denn dann 
hier sonst falsch?! Ich bin hier echt langsam am Verzweifeln!!!
Ich habe auch schon die makefiles hier aus dem Tutorial probiert 
(natürlich mit allen Änderungen, die vorher noch gemacht werden müssen). 
Aber auch das ging nicht...
Wäre super, wenn mir hier jemand helfen könnte!
Vielen Dank schonmal!!

Dirk

von hp-freund (Gast)


Lesenswert?

Also die Zeile im Makefile:

SRC += io.h iom168.h stdio.h delay.h

ist überflüssig/falsch.

Setz in der main.c dafür:

#include <avr/io.h> ein.

Dann klappts mit avr-gcc in linux.

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.