Forum: Compiler & IDEs MSPGCC


von Steffen (Gast)


Lesenswert?

Hallo

Habe das Komplettpaket MSPGCC runtergeladen. Nun weis ich nicht mehr so 
recht weiter. Ich möchte C-Programme downloaden. Ich habe bisher immer 
mit dem IAR Compiler und C-Spy gearbeitet.

Das Komplettpaket habe ich bereits installiert. Was für Schritte folgen 
jetzt? Mit der Anleitung hier kann ich nichts anfangen. Ich weis nicht 
wo ich z.B. die Befehle
"msp430-gcc test1.c -mmcu=msp430x1121 -o test1.elf" eingeben soll.

Danke für eure Hilfe

Steffen

von Matthias (Gast)


Lesenswert?

Hi

an der Kommandozeile aka Eingabeaufforderung?

Matthias

von Steffen (Gast)


Lesenswert?

Ihr müßt entschuldigen aber ich bin Anfänger.

Wo finde ich diese aka Eigabeaufforderung?

Wie kann ich eine .c Datei in ein .elf Datei umwandeln ?

Danke für die Hilfe

Gruß Steffen

von Joerg Wunsch (Gast)


Lesenswert?

Im Kommandoprozessor.  Unter Windows ist das command.com oder
cmd.exe (je nach Windows), oft fälschlicherweise auch als
,,DOS-Kommandoaufforderung'' bezeichnet.  (Unter Windows NT und
darüber hat das Ding mit MS-DOS überhaupt nichts mehr gemein.)

Eine C-Datei wandelst Du durch Compilieren und Linken in eine
ELF-Datei um, also exakt durch Ausführung dieser Kommandos.
Normalerweise läßt man ein »make« die eigentlichen Compiler-
und Linkerkommandos ausführen.

von Bernhard T (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Joerg,
würde das mit
make msp430-gcc test1.c -mmcu=msp430x1121 -o test1.elf

in einer *.bat funzen ? - Ich hab mal eine angehängt-

Gruß Bernhard
(leider auch zu doof für LINUX)

von Joerg Wunsch (Gast)


Lesenswert?

Nein.  Wenn Du diese ausführliche Form nehmen willst, dann
laß einfach das »make« weg.  Der Rest ist der Aufruf des
Compilers (einschließlich Linker), setzt übrigens voraus, daß
der irgendwo entlang des Suchpfades (%PATH%) gefunden werden
kann.

Für richtige Projekte wirst Du da übrigens noch ein -O einbauen
wollen, damit der Compiler auch optimiert.

Die Alternative ist halt, daß man die Kommandozeile stattdessen
in einem Makefile hinterlegt und dann nur noch »make« sagt (oder
»make all«).  Auch kein .bat, da die Steuerung durch das
Makefile erfolgt mit dem vorrangigen Zweck, die auszuführenden
Kommandos zu vereinfachen -- Batch-Files verfolgen denselben
Zweck, aber auf anderem Wege.  Ein Batch führt immer alles aus,
was da drin steht, während make nur die Kommandos ausführt, die
notwendig sind, um das Ziel zu erreichen.  make arbeitet dabei
mit einem Abhängigkeitsgraphen auf der Basis der Zeitstempel
der durch die einzelnen Schritte generierten Dateien.  In
Deinem Falle hat dieser Graph nur zwei Knoten (die Dateien
test1.c und test1.elf) und eine Verbindung (den Aufruf von
msp430-gcc).  Dennoch gibt es schon einen Unterschied zwischen
einem Batch und einem make: wenn Du den Batch aufrufst, wird
er jedesmal ausgeführt.  Wenn Du make aufrufst, wird das
Kommando beim ersten Mal ausgeführt, beim erneuten Aufruf
nicht mehr.  make stellt dann fest, daß test1.elf (das Ziel)
bereits jünger als test1.c (die Quelle) ist und weiß daher,
daß es nichts mehr zu tun gibt.

Ich hoffe, daß ich mich einigermaßen verständlich ausdrücken
konnte...  Ein typisches Makefile dafür würde ungefähr so
aussehen:

CC=msp430-gcc
CFLAGS=-mmcu=msp430x1121
# oder:
#CFLAGS=-mmcu=msp430x1121 -O

all: test1.elf

test1.elf: test1.c
<tab>$(CC) $(CFLAGS) -o test1.elf test1.c

(Da, wo ich <tab> geschrieben habe, muß ein Tabulator stehen,
keine Leerzeichen.)

von Steffen (Gast)


Lesenswert?

Hallo ich bins nochmals

wenn ich folgendes Komando in command.com eingebe:

msp430-gcc test1.c -mmcu=msp430x1121 -o test1.elf

kommt die Meldung:

MSP43~15: test1.c: No such file or directory
MSP43~15: no input files

Findet der Compiler die test.c Datei nicht?

Wo muß ich test.c ablegen damit der Compiler sie findet und in test.elf 
umwandelt.

Danke

Gruß Steffen

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Du musst mit "cd c:\test\mspgcc\bla" in das Verzeichnis wechseln in dem 
sich die Datei befindet und dann den Befehl ausführen.

von Joerg Wunsch (Gast)


Lesenswert?

Außerdem solltest Du Dir überlegen, ob Du mit test.c oder mit
test1.c arbeiten willst. ;-)

von Steffen (Gast)


Lesenswert?

Hallo

Danke nochmals für eure Hilfe ich komme mit kleinen Schritten vorran. 
Ich habe jetzt das Programm test1.c im Verzeichnis

C:\msp430\mspgcc

wenn ich jetzt folgenden Aufruf mache:

C:\msp430\mspgcc>msp430-gcc test1.c -mmcu=msp430x1121 -o test1.elf

bekomme ich nun folgende Meldung.

cc1: internal error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html>; for instructions.

Und die .elf Datei ist immer entstanden.

Was mache ich nur falsch?


Gruß Steffen

von Steffen (Gast)


Lesenswert?

Kleine Verbesserung meines letzten Satzes:


Ich meinte die Datei test1.elf ist immer noch nicht entstanden.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Nichts :-(
Der Cygwin-Build von GCC funktioniert mit Windows 98 leider nicht. 
Probier's mal mit dieser etwas älteren Version (Februar 03):
http://lev.serebryakov.spb.ru/download/msp430/win32/msp430-toolchain-win32-20030210.exe

von Steffen (Gast)


Lesenswert?

Wohin muß ich das diese ältere Version installieren? ins Verzeichnis 
MSP430 oder?

Soll ich danach nochmals den Aufruf

msp430-gcc test1.c -mmcu=msp430x1121 -o test1.elf

in Command.com eingeben?

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.