Forum: Compiler & IDEs Programmers notepad - probleme bei make all


von Markus Schmitz (Gast)


Lesenswert?

Hallo,
ich bin absoluter Neuling in diesem Forum.
Ich habe meinen AVR Mega 32 (RN-Control Version 1.4) mit Bascom
programmiert, möchte jetzt aber zu C wechseln. Hierzu möchte ich
Programmers Notepad verwenden. Einen Makefile habe ich bereits
erstellt, mit make all im Programmers notepad erhalte ich bei meinem
kleinen c-Programm "make.exe: *** No rule to make target
`obj/main.o', needed by `testpp.elf'". Das c-Programm habe ich
testpp.c genannt. Was habe ich denn verkehrt gemacht ?

von Stefan (Gast)


Lesenswert?

Wie hast du das Makefile erstellt, von Hand oder mit einem
Generatorprogramm wie Mfile?

Im Makefile sollte eine Zeile stehen, die mit SRC = anfängt. Dort steht
normalerweise SRC = $(TARGET).c und die Variable TARGET ist vorher in
einer entsprechenden Zeile definiert worden z.B. TARGET = testpp. Das
alles und noch mehr (Prozessortyp, CPU Frequenz...) kann dir ein
Makefilegenerator interaktiv erstellen.

Dokumentationen zu Makefiles findest du hier:
http://winavr.sourceforge.net/install_config_WinAVR.pdf
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Exkurs:_Makefiles

Wenn du nicht weiterkommst, hänge dein Makefile mal als Text an. Dann
kann man genauer nachsehen, was schiefläuft.

von Markus S. (gurke25)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe mal das makefile angehangen.

von Markus S. (gurke25)


Angehängte Dateien:

Lesenswert?

Hallo,
und hier das c-Programm.
Kann ich denn zum Übertragen die Bascom-Software weiterhin benutzen ?
Wie gehe ich denn dann vor, ich muss doch nur den ihex-File
übertragen?
Schonmal vielen vielen Dank.

von Markus S. (gurke25)


Lesenswert?

Hallo,
das 1.Problem habe ich mit Beitrag "Makefile No rule to make target
`obj/main.o'" gelöst.
Ich weiss noch nicht, wie ich das c-Programm über Bascom zum Controller
bekomme. Muss ich im Makefile "Bascom" als Programmer angeben oder
"STK200"?

von Daniel Held (Gast)


Lesenswert?

warum nimmst Du nicht PN oder WINAVR?

von Daniel Held (Gast)


Lesenswert?

aber zum Controller muss natürlich nur das *.hex file.

von Markus S. (gurke25)


Lesenswert?

Hallo,
ich habe jetzt mit Programmers notepad versucht, über [WinAVR] Program
den File zu übertragen, aber es erscheint:

> "make.exe" program
avrdude -p atmega32 -P lpt1 -c stk200    -U flash:w:testpp.hex
avrdude: can't open device "giveio"

avrdude: failed to open parallel port "lpt1"

make.exe: *** [program] Error 1

Was passt denn jetzt nicht ?

von Markus S. (gurke25)


Lesenswert?

... über Bascom kann ich über LPT1 den Controller erreichen

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


Lesenswert?

> avrdude: can't open device "giveio"

Dann solltest du giveio.sys installieren.

von Markus S. (gurke25)


Lesenswert?

Wo soll ich das denn installieren, ich habe giveio.sys in das
Projektverzeichnis kopiert, aber ohne Erfolg.

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


Lesenswert?

's ist ja ein Treiber, den muss man doch dem Windows irgendwie
beibringen, oder?  Das pure Kopieren in ein x-beliebiges
Verzeichnis dürfte kaum überzeugend genug für dein Windows sein.

Aber sorry, ich hab' bei Windows zwei linke Hände, alles Daumen.
Ich könnte dir erzählen, wie man einen FreeBSD-Treiber baut,
aber da hättest du das Problem nicht -- FreeBSD hat schon einen
Treiber, mit dem man geordnet auf den Druckerport zugreifen kann
(genauso wie Linux und Solaris sowas haben).

Vielleicht kann dir ja jemand von der Windows-Fraktion erzählen,
wie man diesen Treiber aktiviert.

von Stefan (Gast)


Lesenswert?

Das steht in den Docs von WINAVR (Winavr\doc\avrdude*\avrdude.pdf
Seite  24).

Es gibt sogar Batchfiles (install_giveio.bat, status_giveio.bat und
remove_giveio.bat)

von senf24 (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe das selbe problem.

"make.exe: *** No rule to make target
`obj/main.o', needed by `testpp.elf'"

Aber da oben steht keine richtige lösung deswegwn wollte ich mal fragen
wir es gelöst wird. Ich schicke auch mal mein makefile
mit freundlichen grüßen

von Stefan (Gast)


Lesenswert?

Im Makefile ist die Zeile TARGET = main eingetragen. Daher wird auch ein
main.c gesucht, um daraus das obj/main.o zu machen. Das scheitert, denn
deine Hauptsource heisst testpp.c statt main.c...

Ich würde daher die Zeile im Makefile zu TARGET = testpp abändern.
http://www.mikrocontroller.net/forum/read-2-423859.html#423910

Hast du WINAVR? Und wenn ja, welche Version?

von senf24 (Gast)


Lesenswert?

vielen Dank habs hin bekommen.
Ich benutze die version von 04.2006

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.