Fehler beim Assemblieren mit Notepad

Gast #867254
Lesenswert?
• ▲
▼
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
Gast #867295
Lesenswert?
• ▲
▼
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ß
#867336
Lesenswert?
• ▲
▼
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 :)
Gast #867346
Lesenswert?
• ▲
▼
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ß
#867760
Lesenswert?
• ▲
▼
> # 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...
Gast #868241
Lesenswert?
• ▲
▼
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 !
Angehängte Dateien:
Gast #868462
Lesenswert?
• ▲
▼
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...
Angehängte Dateien:
Gast #868789
Lesenswert?
• ▲
▼
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ß
#868800
Lesenswert?
• ▲
▼
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 :-)
Gast #868814
Lesenswert?
• ▲
▼
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ß

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren