Forum: Mikrocontroller und Digitale Elektronik Makefile kann nicht erstellt werden


von Patrick B. (peebergi)


Angehängte Dateien:

Lesenswert?

Hi,

ich habe folgendes Problem:
in dem beiliegenden Programm will ich auf meinem AT91SAM7-P64 Board die 
LEDs blinken lassen, sobald ein Button gedrückt wird. Ich habe soweit 
auch schon ein Programm geschrieben, nur komme ich nicht dazu es 
auszuprobieren, da mir kein Makefile erstellt wird. Exit Code:

make.exe: *** No rule to make target `ld_flash.cmd', needed by 
`main.elf'.  Stop.

Kann mir jemand sagen was ich falsch mache? Anbei findet ihr die 
Dateien, die das Programm umfasst.

Vielen Dank

Gruß

(PS: bin quasi absoluter µC-Neuling, also nicht wundern, falls es an 
banalen Sachen hängt :) )

von Bernhard M. (boregard)


Lesenswert?

Dein target "main.elf" ist von LDSCRIPT abhängig, somit sucht make das 
im aktuellen Verzeichnis und versucht es zu bauen, falls es nicht da 
ist....

Ändere mal:
1
main.elf: $(OBJECTS) $(LDSCRIPT)
nach
1
main.elf: $(OBJECTS)

Frage: Wofür ist das LDSCRIPT überhaupt, es wird doch nicht benutzt, 
oder???

von Bernhard M. (boregard)


Lesenswert?

sehe gerade, ist bei den LFLAGS drinnen...
aber es fehlt die "Bauanleitung" dafür...

von Martin T. (mthomas) (Moderator) Benutzerseite


Lesenswert?

Bernhard M. wrote:
> sehe gerade, ist bei den LFLAGS drinnen...
> aber es fehlt die "Bauanleitung" dafür...

Das Linker-Skript wird nicht "gebaut", es ist mit Namen ld_flash.cmd 
bereitzustellen. Mittels linker-script definiert man im Prinzip an 
welchen Speicherstellen der Programmcode und die Daten abgelegt werden. 
Siehe z.B. 
http://www.embedded.com/columns/technicalinsights/201000339?_requestid=246869

Weiterhin: der direkte Aufruf des Linkers (arm-elf-ld) ist nicht 
empfohlen, besser über das Compiler-Frontend (arm-elf-gcc) "indirekt" 
aufrufen. Dito für den Assembler (arm-elf-as), dieser kann ebenfalls 
über das Frontend gerufen werden.  Mittelfristig werden damit Probleme 
vermieden, da das Frontend besser "weiss" wo Dateien/Libraries abgelegt 
sind.

Martin Thomas

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.