mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Fehler beim Assemblieren mit Notepad


Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht 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 :)

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Wie lautet dein Aufruf der make.exe?

was meinst du? oder wo sehe ich das?

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht 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 :)

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verstehe ich dich richtig, dass jetzt alles wie gewünscht funktioniert?

Sorry, aber ich habe Schwierigkeiten dich zu verstehen.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Thomas (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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 !

Autor: Axel R. (axelr) Flattr this
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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...

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Pete K. (pete77)
Datum:

Bewertung
0 lesenswert
nicht 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 :-)

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.