Forum: Mikrocontroller und Digitale Elektronik Fehler beim Assemblieren mit Notepad


von Martin (Gast)


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

von Kai G. (runtimeterror)


Lesenswert?

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.

von Martin (Gast)


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ß

von Kai G. (runtimeterror)


Lesenswert?

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 :)

von Martin (Gast)


Lesenswert?

>> Wie lautet dein Aufruf der make.exe?

was meinst du? oder wo sehe ich das?

von Kai G. (runtimeterror)


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 :)

von Martin (Gast)


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ß

von Kai G. (runtimeterror)


Lesenswert?

Verstehe ich dich richtig, dass jetzt alles wie gewünscht funktioniert?

Sorry, aber ich habe Schwierigkeiten dich zu verstehen.

von Thomas (Gast)


Lesenswert?

Hallo,

habe das Selber Problem, mit AVR-Studio kein Problem aber mit Notepad 
bringt Fehler (nur mit Assembler) !

was mache ich falsch ?

Gruß
Thomas

von Johannes M. (johnny-m)


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...

von Thomas (Gast)


Angehängte Dateien:

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 !

von Axel R. (Gast)


Angehängte Dateien:

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...

von Thomas (Gast)


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ß

von Pete K. (pete77)


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 :-)

von Thomas (Gast)


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ß

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.