Guten Tag, ich habe Eclipse nun eingerichtet, nach dieser Anleitung http://www.mikrocontroller.net/articles/MSP430_eclipse_helios_mspgcc4_gdb-proxy. Folgendes Bild konnte ich nicht lesen: http://www.mikrocontroller.net/articles/Datei:Msp430_eclipse_mspgcc4_gdbproxy_7.jpg Nun bekomme ich diese Fehlermeldung: /mspgcc/bin/../lib/gcc/msp430/4.5.3/../../../../msp430/bin/ld.exe: cannot open linker script file memory.x: No such file or directory Ich finde leider nichts im Netz dazu, kann mir jemand helfen? vielleicht eine Pfadangabe falsch? Die Dateien sind hier zu finden mspgcc\msp430\lib\ldscripts Ich verwende msp430x11x1 in den Einstellungen, da ich leider nicht weiß welchen ich besitze. mspgcc\msp430\lib\ldscripts hier ist dieser Chip nicht zu finden. Bitte ich rätsele seit 2 Tagen dran rum :-( total frustrierend
Befindet sich eine memory.x Datei in deinem System? Wenn nicht, sieh mal hier: http://sourceforge.net/apps/mediawiki/mspgcc/index.php?title=Devel:git da steht: Note that binutils no longer includes memory-map or peripheral address information for any MSP430 chips; the msp430mcu package, or hand-crafted memory.x and periph.x files are required to link an executable. Hast dann wohl das msp430mcu package nicht installiert. Siehe link...
Ja also hier sind ganz viele Ornder in denen siche solche Dateien befinden. mspgcc\msp430\lib\ldscripts Ich habe doch MSPGCC installiert, muss ich dieses Package dann noch extra installieren? mmmhh....:-( Danke schon mal
Wenn Du die Dateien schon hast, solltest Du zum Test mal einen konkreten Controllernamen vergeben. Das könnte bewirken das dadurch der richtige Ordner inkludiert wird. z.B. msp430f1101
Also ich habe den #include <msp430x11x1.h> im C-Code In den Build Properties habe ich es so angegeben:-mmcu=msp430x11x1 Passt das nicht?
Ich würde meinen das das x jeweils für einen Platzhalter steht. Probier mal meinen Vorschlag.
hp-freund schrieb: > Ich würde meinen das das x jeweils für einen Platzhalter steht. Nein, .x ist die Dateiendung für Linker-Skripte in der GNU Toolchain. Warum die MSPGCC Installation die nicht findet weiß ich nicht, auf jeden Fall braucht der Linker eine sonst weiß er nicht was er tun soll, deshalb der Fehler.
Es ging aber um die x in -mmcu=msp430x11x1. Wobei das Erste ein C oder F und das Zweite 0,1 oder 2 sein kann. Eine Liste der vom gcc unterstützten Controller gibt der Aufruf mit Parameter : --target-help
Hallo ich habe nun die Bezeichnung im Code und in den Preferences geändert auf MSP430f1111, aber leider ist der Fehler immer noch da. Weiß jemand rat? Muss ich in den Preferences die Libraries angeben oder so?
Hallo, versuch es mal mit Kleinschreibung: msp430f1111 An sonsten muss irgendwie der Suchpfad: mspgcc\msp430\lib\ldscripts\msp430f1111\ erreichbar sein. In diesem Bild: http://www.mikrocontroller.net/articles/Datei:Msp430_eclipse_mspgcc4_gdbproxy_13.jpg kannst Du die Einstellungen sehen und für den Linker dann mal prüfen.
Kopier doch einfach mal die passenden memory.x und periph.x aus dem msp430f1111-Ordner in dein Projektverzeichnis. Der sollte dann im Suchpfad sein.
Versuche mal, das "linker script" mittels -T dem Linker mitzugeben:
1 | -T scriptfile |
2 | --script=scriptfile |
3 | Use scriptfile as the linker script. This script replaces ld’s |
4 | default linker script (rather than adding to it), so commandfile |
5 | must specify everything necessary to describe the output file. |
6 | If scriptfile does not exist in the current directory, "ld" looks |
7 | for it in the directories specified by any preceding -L options. |
Hast Du die Dateien in das Projektverzeichnis kopiert? Tim Barl schrieb: > Wie mitgeben? > Wo mache ich das? Das meinte ich vorhin mit überprüfen der Linker Einstellungen. Unter MinGW C Linker -> General kannst Du das Linkfile auswählen, aber nur eins. Script File (-T)
Tim Barl schrieb: > Wie mitgeben? > Wo mache ich das? Wie das in Eclipse gemacht wird, weiß ich nicht. Bei mir ist es der letzte Schritt im Makefile, und das Resultat sieht so aus:
1 | msp430-gcc -save-temps -mmcu=msp430g2553 -T ../../linker-scripts/msp430.x -L ../../linker-scripts -Wl,-Map=build/xxx.map,--cref -Wl,--gc-sections -o build/xxx.elf build/a.o build/b.o build/xxx.o |
Tim Barl schrieb: > Nun bekomme ich diese Fehlermeldung: > /mspgcc/bin/../lib/gcc/msp430/4.5.3/../../../../msp430/bin/ld.exe: > cannot open linker script file memory.x: No such file or directory Hatte das selbe Problem und es hat mich einige Stunden gekostet. Die Ursache war bei mir, dass in Eclipse in den Projektsettings unter C/C++ Build->Settings->Tool Settings->Cross Settings der Pfad C:\Programm Files\mspgcc\bin als Basispfad eingetragen war. Der ist zwar korrekt, aber Eclipse nimmt diesen Pfad als Basis um den Pfad zur memory.x zusammenzubauen und kommt dabei mit dem Leerzeichen zwischen "Program Files" nicht klar. Leider geht das aus der Fehlermeldung nicht hervor.... Ich habe C:\Programme... eingetragen und jetzt läuft alles... Gruß Heinz
Mir hat es geholfen ;). Allerdings war es bei mir die globale PATH Variable unter Windows.
heinz-m schrieb: > Die Ursache war bei mir, dass in Eclipse in den Projektsettings unter > C/C++ Build->Settings->Tool Settings->Cross Settings der Pfad > C:\Programm Files\mspgcc\bin als Basispfad eingetragen war. Der ist zwar > korrekt Schmeisst Eclipse die Anführungszeichen weg, die man um solche Pfadangaben herum machen sollte?
Hi Leute, ich weiß, dass dieses Thema sehr alt ist aber schreibe die Antwort für die Leute, die noch dafür interessiert sind ;) Das Problem ist sehr einfach: Wenn der Linker aufgerufen wurde, ist der aktuelle Ordner nicht der richtige. So muss man im GCC Compiler spezifizieren, wo das Script ist. Das kann mit der -L Option gemacht werden. Ich kopiere hier meine Makefile Datei: # Require DEVICE to be specified DEVICE := MSP430F2274 EXAMPLE := msp430x22x4_1 SOURCE_PATH := $(HOMEDRIVE)/TI/workspace/prova RELEASE_PATH := $(SOURCE_PATH)/Debug ################## GCC Root Variable ################### GCC_DIR := $(HOMEDRIVE)/TI/msp430_gcc GCC_MSP_INC_DIR := $(GCC_DIR)/include LDDIR := $(GCC_MSP_INC_DIR)/$(DEVICE) ###################################### GCC_BIN_DIR := $(GCC_DIR)/bin ###################################### CC := $(GCC_BIN_DIR)/msp430-elf-gcc GDB := $(GCC_BIN_DIR)/msp430-elf-gdb ###################################### CFLAGS := -O2 -D__$(DEVICE)__ -mmcu=$(DEVICE) -g -ffunction-sections -fdata-sections -DDEPRECATED LDFLAGS := -T $(LDDIR).ld -mmcu=$(DEVICE) -g -Wl,--gc-sections -L $(GCC_MSP_INC_DIR) INCLUDES := -I $(GCC_MSP_INC_DIR) ###################################### SRC := $(SOURCE_PATH)/$(EXAMPLE).c EXOBJECT := $(RELEASE_PATH)/$(EXAMPLE).o EXOUTPUT := $(RELEASE_PATH)/$(EXAMPLE).out ###################################### all: $(SRC) @echo ============================================ @echo Compiling $(EXAMPLE).c @echo ============================================ $(CC) $(INCLUDES) $(CFLAGS) -c $< -o $(EXOBJECT) @echo ============================================ @echo Linking objects and generating output binary @echo ============================================ $(CC) $(LDFLAGS) $(EXOBJECT) -o $(EXOUTPUT) clean: @echo ============================================ @echo Project cleared @echo ============================================ @rm $(RELEASE_PATH)/$(EXAMPLE).o @rm $(RELEASE_PATH)/$(EXAMPLE).out Viel Spaß Ciao Dado ;)
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.