Forum: Compiler & IDEs Neueste msp430-elf-gcc toolchain Setup-Problem


von Achim S. (achim_sx)


Lesenswert?

Hallo allerseits,

also irgendwie will das mit der aktuellen msp430-gcc-toolchain nicht so 
richtig funktionieren.

Ach so, ich arbeite unter Linux Mint 17.2 ...

Das Archiv habe ich von TI herunter geladen, nämlich dieses hier:

msp430-gcc-full-linux-installer-3.3.4.0.run

Dieses lässt sich auch prima ausführen und entpackt die Toolchain samt 
aller Unterverzeichnisse an einen gewünschten Ort, defaultmäßig
nach /home/ti/msp430-gcc

So lässt sich aber damit nicht arbeiten, weil beispielsweise der 
Compiler

- msp430-elf-gcc - nicht aus beliebigen Softwareverzeichnissen aufrufbar 
ist.

In dem gesamten Paket ist absolut nichts über eine Installation zu 
finden.

Ich könnte mir vorstellen, dass das nach TI/... entpackte Archiv von 
dort aus zunächst noch "im System" installiert werden muss, kann dazu 
aber absolut nirgends etwas finden.

Im Vergleich: Ich habe auch die AVR-GCC-Toolchain installiert.  Und das

funktioniert, wie geschmiert !!!  Aus allen meinen 
Softwareverzeichnissen

kann ich im jeweiligen Projektverzeichnis die Konsole öffnen und das 
Projekt mit make  compilieren. Das geht supergut !

So hätte ich mir das auch mit dem msp430-gcc vorgestellt, kriege es aber 
so nicht hin.

Ich will aber auf jeden Fall die aktuellste Version von TI installieren, 
in

welcher der compiler  neuerdings  msp430-elf-gcc  heißt sowie alle 
anderen

Tools ebenfalls um "elf-" in ihrer Benennung umbezeichnet wurden.

Was kann ich noch tun ?

Gruß

von Clemens L. (c_l)


Lesenswert?

Entweder /home/ti/...../bin zu deinem PATH hinzufügen.

Oder symbolische Links in ein Verzeichnis, das schon im PATH ist (z.B. 
"bin" in deinem Home), anlegen:
1
ln -s /home/ti/...../bin/msp430-elf-gcc /home/achim/bin/msp430-elf-gcc

von Achim S. (achim_sx)


Lesenswert?

Hallo,

sorry, funktioniert auch nicht.

Ich habe jetzt das Verzeichnis mit der Toolchain in 
/home/meinlappi/gcc_msp430 stehen und die Environmentvariable

zu /bin  und /include  angepasst.

Der sucht eine Skriptdatei in einem Verzeichnis, wo sie nicht steht, 
habe ich so  das Gefühl. Hier ist die Fehlermeldung:

msp430-elf-gcc  -mmcu=msp430f169 -Wl,-Map=build/main.map  -o 
build/main.elf
/home/joeder-ite/gcc_msp430/bin/../lib/gcc/msp430-elf/4.9.1/../../../../ 
msp430-elf/bin/ld:  Verknüpfte Skriptdatei kann nicht geöffnet werden 
msp430f169.ld: Datei oder Verzeichnis nicht gefunden
collect2: error: ld returned 1 exit status
make: *** [build/main.elf] Fehler 1

==> da wird doch in /msp430-elf/bin/ld nach dieser  Skriptdatei gesucht.

Die steht dort aber nicht, sondern in /include      oder nicht ?

von Clemens L. (c_l)


Lesenswert?

Achim S. schrieb:
> /home/joeder-ite/gcc_msp430/bin/../lib/gcc/msp430-elf/4.9.1/../../../../
> msp430-elf/bin/ld:

Das (im Ergebnis "/home/joeder-ite/gcc_msp430/msp430-elf/bin/ld") ist 
einfach nur der Pfad des Linkers selbst; andere Dateien werden woanders 
gesucht.

> msp430f169.ld: Datei oder Verzeichnis nicht gefunden

Das ist ein Linker-Skript.

Wo unter /home/joeder-ite/gcc_msp430 liegt diese Datei?
1
find /home/joeder-ite/gcc_msp430 -name msp430f169.ld

: Bearbeitet durch User
von Achim S. (achim_sx)


Lesenswert?

hallo,

jau ...

die Datei ist im Verzeichnis  include

Ausgabe Deines Befehls:

/home/joeder-ite/gcc_msp430/include/msp430f169.ld

und genau diesen Pfad habe ich in der environment-vari angepasst ...


echo  $PATH bringt:

/usr/local/sbin:/home/joeder-ite/gcc_msp430/bin:/home/joeder-ite/gcc_msp 
430/include:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr 
/local/games

/home/joeder-ite/gcc_msp430/include/
/home/joeder-ite/gcc_msp430/include/

Ich glaube, das hat etwas mit dem makefile zu tun ...

von Clemens L. (c_l)


Lesenswert?

Achim S. schrieb:
> /home/joeder-ite/gcc_msp430/include/msp430f169.ld

Das ist ein Linker-Skript; diese Datei (und alle anderen *.ld) gehören 
ins Verzeichnis gcc_msp430/lib/430 (oder ohne "430", wenn der Linker 
dort nicht sucht).

Aber anscheinend geben die Beispiel-Makefiles von TI alle den Pfad auf 
die .ld explizit mit "-T 
/home/joeder-ite/gcc_msp430/include/msp430f169.ld" an.

> und genau diesen Pfad habe ich in der environment-vari angepasst ...
> $PATH

PATH ist nur für ausführbare Dateien; wenn er läuft, findet gcc seine 
anderen Dateien automatisch.

von Achim S. (achim_sx)


Lesenswert?

"Das ist ein Linker-Skript; diese Datei (und alle anderen *.ld) gehören
ins Verzeichnis gcc_msp430/lib/430 (oder ohne "430", wenn der Linker
dort nicht sucht)."

Woher weiß ich denn, wo der Linker sucht ?

Dann würde TI ja eine Toolchain verbreiten, die nicht funktioniert ????

Ist das  sicher, dass diese gepackte Archiv nur irgendwo nach home...

entpackt wird und damit funktionieren soll ?

Ich denke, es wird ja auch keine Pfadvariable  oder so angepasst, oder 
etwas

nach /usr/bin  kopiert ... §:-o

von Achim S. (achim_sx)


Lesenswert?

Warum finde ich denn in diesem ganzen Paket überall

install-tools ?    Für wen sollen die denn sein ?

/gcc_msp430/libexec/gcc/msp430-elf/4.9.1/install-tools

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Achim S. schrieb:
> Warum finde ich denn in diesem ganzen Paket überall install-tools?

Ist ein Teil von GCC, gibt auch bei foo-gcc und bar-gcc.

von Achim S. (achim_sx)


Lesenswert?


von Achim S. (achim_sx)


Lesenswert?

hmmm

hat leider auch  nicht geklappt

Hier nochmal die Seite mit den Möglichkeiten der Installation:

http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSPGCC/latest/index_FDS.html

Bei der ...linux-full-installer-version steht hintendran:

"apply chmod x before executing the package"

Was ist chmod x und was macht es ?

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Achim S. schrieb:
> echo  $PATH bringt:
> ...:/home/joeder-ite/gcc_msp430/include:...

Nimm das da raus! Das ist Käse.

Achim S. schrieb:
> 
http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSPGCC/latest/index_FDS.html
>
> Bei der ...linux-full-installer-version steht hintendran:
>
> "apply chmod x before executing the package"

Das ist jetzt nicht deren Ernst, oder?


> msp430f169.ld

Wie kommt das in die ld-Kommandozile?

per Makefile?
per Skript?
per spec-File?
per buildin Specs?

Wird der Linker (foo-ld) gar von GHand aufgerufen?

Wie ist das Zeugs configured?

Was ist die Ausgabe mit -v -Wl,-v ?

von Achim S. (achim_sx)


Lesenswert?

Moin Johann,

ich dachte ich wäre hier der, der die Fragen hat ...

Dass das Geknoddel mit dem Pfad so nicht klappt, habe ich schon gemerkt.
Das Paket von TI muss nach dem Entpacken installiert werden, auch das 
mit der Endung .run .

Ich bin mit dem Source-Code-Compile fast durch gekommen !  Nur 2 Fehler.

Beim 2. mal - als Admin - hat  das compile fehlerlos geklappt und ich 
habe

das Build mit make install installiert bekommen.

Die Support-Files habe ich noch in die beiden Verzeichnisse kopiert und 
hinterher noch  mspdebug entpackt, compiliert und  installiert.

Ich hoffe, dass es das jetzt  war ...

mfg

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.