Hallo, ich arbeite mich gerade in Eclipse und in die µC Programmierung ein und habe zur Zeit folgendes Problem: In meinem Projekt sind enthalten: - Includes - C u. Assemblers sources - makefile Über external tools habe ich - arm-elf-gcc - arm-elf-ld - make hinzugefügt, weil ich nicht sicher bin, der build Befehl diese Schritte nicht bereits ausführt. Beim Ausführen von "arm-elf-gcc" und "arm-elf-ld" erhalte ich JEWEILS: arm-elf-gcc-4.2.2.exe: no input files Beim ausführen des Make Befehls erhalte ich: make: *** No targets specified and no makefile found. Stop. Woran könnte das liegen? Würde mich über jede Hilfe freuen. LG Mark
Nein. Windows XP. Bestimmt irgendein Anfänger Fehler. Ich benutze ein AT91SAM7XC-EK Board. Spiele derzeit mit dem "Getting started Beispiel" von Atmel herum. Habe bereits die SRAM Version über die Batch und TCL Skript Files zum Laufen gebracht. Wollte aber nun dieses Beispiel noch einmal abgespeckt als neues Projekt in Eclipse einfügen. D. h. wollte nur die Source-, Include-Files und das Makefile drin lassen und die .bin Dateien selber erzeugen und schließlich über SAM-BA hochladen. Hat jemand eine Idee warum es an den o. g. Stellen noch hängt? Mark
>make: *** No targets specified and no makefile found. Stop.
Laut diesem hier wohl kein Makefile vorhanden. Liegt es im richtigen
Verzeichnis? Ist es richtig benannt("Makefile" nicht "makefile")?
Ja, exakt so heißt es auch bei mir. Es liegt im Projekt Ordner
Konnte das Problem nun lösen, indem ich die Pfadangabe für Includes unter Eclipse an der folgeden Stelle änderte: project-->properties-->C/C++Build-->Settings-->Directories Habe nun aber ein neues Problem: Unter Eclipse beim Ausführen von Build all wird eine .exe anstelle einer .bin erzeugt. Außerdem werden keine .elf und .o Dateien erzeugt. Das Maekfile sieht so aus: # Definition des cross-compiler toolchain Präfixes # CROSS_COMPILE=arm-elf- # # # Outputdateinamen (ohne Dateierweiterung) # OUTFILE_SRAM=at91sam7x_getting_started_sram OUTFILE_FLASH=at91sam7x_getting_started_flash # # # Pfadangabe der Headerdateien # INCL=./../include # # # Optimierungsgrad während der Kompilierung (-Os bedeutet Größenoptimierung) # OPTIM = -Os # # # Angabe der cross-compiler toolchain Binutilities (assembler, compiler, # linker, symbol list extractor, etc.) # AS=$(CROSS_COMPILE)gcc CC=$(CROSS_COMPILE)gcc LD=$(CROSS_COMPILE)gcc NM= $(CROSS_COMPILE)nm SIZE=$(CROSS_COMPILE)size OBJCOPY=$(CROSS_COMPILE)objcopy OBJDUMP=$(CROSS_COMPILE)objdump # # # Compiler Optionen: -g: generate debugging information for GDB usage. # -mcpu = arm7tdmi type of ARM CPU core. # -c: indicates to gcc to only compile the file, and # to not link it (link is done later, when all code # files are compiled). # -Wall: displays all warnings. # -I$(INCL): set paths for include files. # $(OPTIM)CCFLAGS=-g -mcpu=arm7tdmi $(OPTIM) -Wall -I$(INCL) # # # Assembler Optionen: -D__ASSEMBLY__ : defines the _ASSEMBLY_ symbol, # which is used in header files to distinguish # inclusion of the file in assembly code or in C code. # ASFLAGS=-D__ASSEMBLY__ -g -mcpu=arm7tdmi -c -Os -Wall -I$(INCL) # # # Linker Optionen: -nostartfile: Do not use the standard system startup # files when linking. # -Wl,--cref: Pass the --cref option to the linker # (generates cross-reference in map file if this one # is requested). # -lc: use standard C library. # -lgcc: use gcc library. # -T elf32-littlearm.lds: use the file elf32-littlearm.lds # as linker file. # LDFLAGS+=-nostartfiles -Wl,--cref LDFLAGS+=-lc -lgcc LDFLAGS+=-T elf32-littlearm.lds # # # Liste der Objektdateien OBJS=cstartup.o OBJS+= lowlevel.o \ main.o # # # ‘all’, ist eine Default Regel, wenn nichts weiteres spezifiziert wird # all: sram flash # # # Erstellung der Objektdateien aufgrundlage der Source-Files. Die Option -c # teilt gcc mit, dass der compiler und der assembler gestartet werden # main.o: main.c $(CC) -c $(CCFLAGS) main.c -o main.o lowlevel.o: lowlevel.c $(CC) -c $(CCFLAGS) lowlevel.c -o lowlevel.o cstartup.o: cstartup.S $(AS) $(ASFLAGS) cstartup.S -o cstartup.o # # # Beschreibung wie Source und Link Objekt Files zusammen kompiliert werden # sram: $(OBJS) $(LD) $(LDFLAGS) -Ttext 0x201000 -Tdata 0x200000 -n -o $(OUTFILE_SRAM).elf $(OBJS) $(OBJCOPY) --strip-debug --strip-unneeded $(OUTFILE_SRAM).elf -O binary $(OUTFILE_SRAM).bin $(OUTFILE_FLASH).bin flash: $(OBJS) $(LD) $(LDFLAGS) -Ttext 0x100000 -Tdata 0x200000 -n -o $(OUTFILE_FLASH).elf $(OBJS) $(OBJCOPY) --strip-debug --strip-unneeded $(OUTFILE_FLASH).elf -O binary $(OUTFILE_FLASH).bin ein kurzes linker-Skript sieht wie folgt aus: OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(reset_handler) /*#include "project.h"*/ SECTIONS { .text : { _stext = .; *(.text) *(.rodata) /* read-only data (constants) */ *(.rodata*) . = ALIGN(4); _etext = . ; } /* collect all initialized .data sections that go into FLASH */ .data : AT ( ADDR (.text) + SIZEOF (.text) ) { _sdata = .; *(.vectors) *(.data) _edata = .; } /* collect all uninitialized .bss sections that go into FLASH */ .bss (NOLOAD) : { . = ALIGN(4); _sbss = .; *(.bss) _ebss = .; } } end = .; Wo ist das Problem? Kann mir da jemand helfen? Wäre sehr nett. LG MArk
Hat keiner eine Idee? Ist evtl. die Pfadsyntax für das Include Verzeichnis falsch?
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.