Hallo, bin Anfänger und versuche (wie in Tutorial) folgendes über Notepad zu Compillieren bzw. Assemblieren aber funktioniert leider nicht: .include "m16def.inc" ; Definitionsdatei für den Prozessortyp ldi r16, 0xFF ; out DDRB, r16 ; Inhalt von r16 ins IO-Register DDRB ausgeben ldi r16, 0b11111100 ; 0b11111100 in r16 laden out PORTB, r16 ; r16 ins IO-Register PORTB ausgeben ende: rjmp ende ; Sprung zur Marke "ende" -> Endlosschleife ----> erhalte folgende Fehlermeldung: make.exe: *** No rule to make target `led.elf', needed by `elf'. Stop. ich habe in der Makefile CPU, Programmer und "led" eingestellt aber irgedwie funktioniert nicht, folgendes steht auf der Makefile, könnte hier eventuell das Fehler sein ?? ---------------------------- # Target file name (without extension). TARGET = led # Object files directory # To put object files in current directory, use a dot (.), do NOT make # this an empty or blank macro! OBJDIR = . # List C source files here. (C dependencies are automatically generated.) SRC = $(TARGET).c ------------------------------- Sorry ich komme leider nicht weiter :-( ! besten Dank für die Hilfe Gruß Martin
Ich kenne mich ehrlich gesagt auch nicht hinter den Kulissen aus - warum benutzt du nicht einfach das AVRStudio? Damit gehst du solchen Hürden vorerst aus dem Weg.
Hallo Kai, danke für deine Antwort ! ja, also aus irgendwelche Grund ist AVR-Studio gut oder besser, nun ich habe es schon geschaft das Selber klein Programm in C zu Compilieren (mit Notepad) ohne Fehler und gleich über die Makefile an den Controller geflash! aber mit Assembler funktioniert nicht und das lässt mich einfach nicht schlafen ! Gruß
Wie lautet dein Aufruf der make.exe? >aber mit Assembler funktioniert nicht und das lässt mich >einfach nicht schlafen ! Das kenn ich nur zu gut :)
>> Wie lautet dein Aufruf der make.exe?
was meinst du? oder wo sehe ich das?
Ich schätze, dann habe ich eher was grundlegend nicht verstanden :) Ich dachte, dass du in der Konsole (Eingabeaufforderung) so etwas wie make.exe -irgendwelche -parameter eingibst und dann die von dir gezeigte Fehlermeldung erscheint. Ich lasse lieber mal jemandem den Vortritt, der Ahnung davon hat :)
alles klar vielen Dank ! Notepad (bei WinAVR mit dabei) hat unter Tools: Make all Make clean Program wenn man in der Makefile der Programer und Port einstellt genung danach nur erst mal anklicken in Make all (Compiliert mit WinAVR) und dann klick in Program es wird dann über Console AVRDUDE gestartet und die .hex File an Controller gesendet :-) ! bis ich es geschaft habe, habe ich einieges gebraucht ! Gruß
Verstehe ich dich richtig, dass jetzt alles wie gewünscht funktioniert? Sorry, aber ich habe Schwierigkeiten dich zu verstehen.
Hallo, habe das Selber Problem, mit AVR-Studio kein Problem aber mit Notepad bringt Fehler (nur mit Assembler) ! was mache ich falsch ? Gruß Thomas
> # List C source files here. (C dependencies are automatically > generated.) > SRC = $(TARGET).c Das passt doch schon nicht zu "Assembler-Programmierung". Abgesehen davon gibt es leichte Unterschiede zwischen dem ATMEL-AVR-Assembler und dem GNU-Assembler. Afair haben Assembler-Dateien für den GNU-Assembler schon mal grundsätzlich ein ".S" (großes S) als Dateierweiterung. Und die Dateien dürfen natürlich nicht unter "C source files" aufgeführt werden, sondern müssen im Makefile bei den Assembler-Sourcen stehen! Bei Dir wird angegeben, dass es eine Datei "led.c" geben soll, die aber vermutlich gar nicht da ist... Und das ist wahrscheinlich noch nicht alles...
Hallo, wenn ich die Makefile erstellen will und "Assembler Source file" angebe, egal was ich dor schreibe kommt gleich ein Fehlermeldung (in Anhang), wo soll ich dann die Assembler Source file? bzw. muß ich es vorher anlegen? wenn ja dann wie? ich mache folgendes: 1. zB. in Notepad -- new -- code eingeben oder kopieren 2. zB. als Test.asm speichern 3. Makefile erzeugen --> CPU, Programmer usw. so dann "Assembler Source file" aber dann Fehlermeldung !! kan mich jemand helfen? besten dank !
Dann binde Dir die AVRASM2.exe als weiters Tool ein. Als Parameter gibts Du dann -fI -vl %f an. Dann hast Du schonmal ein Hex File. Als zweites Tool bindest Du die STK500.exe ein. Die Parameter stehen beim Aufruf auf der Kommandozeile. Damit programmierst Du dann...
Hallo Axel, danke für deine Hilfe ! also ich habe jetzt AVRASM2.exe eingebunden aber geht noch nicht ! Fehlermeldung: make.exe: *** No rule to make target `led.elf', needed by `elf'. Stop. was mache ich falsch? vielleicht die Makefile ? als "Assembler Source file" in Makefile muß ich zB leds eingeben oder? und unter Main file name ? besten Dank für die Hilfe Gruß
Schon mal die Hilfe zu make durchgelesen ? Das ist nicht so trivial und ein mächtiges Tool. Hast Du eine "all" und "clean" section in Deinem Makefile ? Wenn Du die Toolchain für Assembler nicht beherrschst (Du hast geschrieben, dass Du Anfänger bist) empfehle ich Dir mit C und AVRStudio weiter zu machen. Alternativ vielleicht mal mit AVRStudio ein Makefile erzeugen lassen und an dem Beispiel dann das make verstehen. Kopf hoch, wir haben alle mal klein angefangen :-)
Hallo Peter, >> Schon mal die Hilfe zu make durchgelesen ? Das ist nicht so trivial und >> ein mächtiges Tool. in Prinzip ja, ich habe es gemacht und wenn ich etwas in C schreibe ist ja kein Problem, Notepad Compiliert und generiert meine .hex File die sende ich gleich an Controller (in der Makefile mein USBasp eingestellt) und klappt problemlos !! das Problem liegt nur wenn ich etwas in assembler schreibe :-( Gruß
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.