Forum: Mikrocontroller und Digitale Elektronik Launchpad mit Hilfe von Eclipse programmieren


von Manuel Volk (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe im Internet folgen Anleitung gefunden die mir es ermöglichen 
soll Programme für das Launchpad von TI mit Hilfe von Eclipse zu 
schreiben und das compilieren und debuggen von der Eclipseoberfläche zu 
managen.

http://springuin.nl/en/articles/launchpadwindows

Ich habe alle Anweisungen bis zum Punkt 15 durchgeführt.
Das Problem sieht man auf dem angehängten Screenshot.
Es hat den anschein als ob die Includedateien nicht includiert wurden.

Das Problem ist das das Launchpad jetzt mein erstes Projekt ist und ich 
bis jetzt nur c unter Unix programmiert habe, also im Bereich der 
Mikrocontroller eigentlich noch keine Ahnung habe.

von Manuel Volk (Gast)


Lesenswert?

Danke schon mal im voraus für Antworten

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Manuel Volk schrieb:
> Es hat den anschein als ob die Includedateien nicht includiert wurden.

Nein. Das ist eine Fehlermeldung vom Linker.

Was sollen all die include-Dateien da links in Deinem Projektbaum? Wie 
exakt sieht Dein Sourcecode aus (bitte nicht als Screenshot, sondern als 
Datei posten)?

von Manuel Volk (Gast)


Angehängte Dateien:

Lesenswert?

Der Sourcecode ist der in der Anleitung steht.
Aber ich hänge sie auch noch mal als Datei an.

Aber das heißt doch das der Linker die Includedateien nicht richtig mit 
einbindet oder sehe ich das falsch?

von Manuel Volk (Gast)


Angehängte Dateien:

Lesenswert?

Oh falsche Datei

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Manuel Volk schrieb:
> Aber das heißt doch das der Linker die Includedateien nicht richtig mit
> einbindet oder sehe ich das falsch?

Der Linker hat mit Includedateien überhaupt nichts am Hut, die 
verarbeitet der Präprozessor, bevor die einzelne Quelltextdatei dem 
Compiler übergeben wird.

Dein Code bindet genau zwei Include-Dateien ein, io.h und stdbool.h

(Kann und wird auch so sein, daß die wiederum weitere Dateien einbinden, 
aber das ist für die Betrachtung des Problemes nicht relevant).


Vergleiche doch mal die Compilerausgabe (nicht die von Eclipse 
gefilterte, sondern die vollständige) mit der auf der "Springuin"-Seite 
zu findenden. Das ist der Karteireiter "Console".

von The_Ride (Gast)


Lesenswert?

Hi!

Wo ist denn die #include  <msp430x22x2.h>  ??
oder halt die von deinem Controller...

cya The_Ride
Peter

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das sollte hier kein Problem sein:

> // Include the register definitions. Note that we do not
> // use a device specific include file, the compiler handles
> // that based on the -mmcu option
> #include <io.h>

von Manuel Volk (Gast)


Lesenswert?

Jetzt beim erneuten Versuch es zu compilieren bekomme ich noch 
zusätzlich die Wahrung das io.h veraltet sei!
 Jetzt bin ich vollends verwirrt! Gibt es vielleicht jemanden der die 
genannte Anleitung auch benutzt hat und mir helfen kann.
Und zum Linker es ist doch so das der Linker die Dateine wie z.B. 
Includedateien an mit allen anderen Dateien zusammen bindet und an den 
Compiler übergibt. Wenn es also ein Linkerfehler ist denke ich doch das 
er die Includedatein nicht findet. Komischer weise sehe ich aber das er 
sie findet.

Nun ist die Frage warum erkennt er dann nicht die Mikrocontroller 
spezifischen Befehle wie z.B. P1OUT oder die anderen Befehle die auf dem 
geposteten Bild zu sehen sind.

von Manuel Volk (Gast)


Lesenswert?

The_Ride schrieb:
> Hi!Wo ist denn die #include  <msp430x22x2.h>  ??oder halt die von deinem 
Controller...cya The_RidePeter

das habe ich mich auch schon gefragt aber ich habe keine das die über 
io.h eingebunden werden!

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Manuel Volk schrieb:
> Und zum Linker es ist doch so das der Linker die Dateine wie z.B.
> Includedateien an mit allen anderen Dateien zusammen bindet und an den
> Compiler übergibt

Nein.
Der Linker bekommt die vom Compiler erzeugte Objektdatei vorgeworfen und 
packt dazu den Startup-Code und die Laufzeitbibliotheken (Libraries).

Mit Include-Dateien hat der Linker absolut überhaupt gar nichts zu tun.

Der Compiler wiederum bekommt vom Präprozessor den "vorverdauten" 
Quelltext Deiner *.c-Dateien vorgesetzt; der Präprozessor bindet alle 
angegebenen Include-Dateien ein und nimmt gegebenenfalls Textersatz vor 
(bei jedem verwendeten #define).

Also: Drei Komponenten:

*.c + dort angegebene *.h --> Präprozessor --> Compiler --> Objektdatei

(Für jede *.c wird eine eigene Objektdatei erzeugt)

Alle Objektdateien + Startup-Code + Libraries --> Linker --> 
ausführbares Programm (Hex-Datei o.ä.).

Ansonsten mach ich mal die Ingrid:

Rufus Τ. Firefly schrieb:
> Vergleiche doch mal die Compilerausgabe (nicht die von Eclipse
> gefilterte, sondern die vollständige) mit der auf der "Springuin"-Seite
> zu findenden. Das ist der Karteireiter "Console".

von Manuel Volk (Gast)


Lesenswert?

Danke für die schnelle Antwort, jetzt kenne ich wenigstens den 
Unterschied schon mal. Aber mein Hauptproblem ist noch nicht gelöst 
könnte mir da jemand weiterhelfen??

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Liest Du auch, was man Dir schreibt?

von Albert .. (albert-k)


Lesenswert?

Rufus T. Firefly hat dir in seinem letzten Post schon den entscheidenden 
Hinweis gegeben:

Rufus Τ. Firefly schrieb:
> Alle Objektdateien + Startup-Code + Libraries --> Linker -->
> ausführbares Programm (Hex-Datei o.ä.)

Das entscheidende sind die libraries. Du must dem Linker noch die Pfade 
zu diesen bekannt machen und mitteilen welchen Controller du verwendest, 
was eigentlich im Punkt 13 erläutert wird.
Es scheint als hättest du vergessen unter MinGW C Linker -> 
Miscenalleous das linker flag -mmcu=msp430x2012 hinzuzufügen. Somit 
findet der Linker in der io.h nicht das zum Controller passende Header 
File mit den Register definitionen.

Vl. ist aber auch die Bezeichnung msd430x2012 nicht korrekt. Dazu am 
besten mal in io.h reinschauen ob dort dieses define mit zugehöriger 
Datei auftaucht.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ingrid, also known as Rufus Τ. Firefly schrieb:
> Vergleiche doch mal die Compilerausgabe (nicht die von Eclipse
> gefilterte, sondern die vollständige) mit der auf der "Springuin"-Seite
> zu findenden. Das ist der Karteireiter "Console".

von Manuel Volk (Gast)


Lesenswert?

Ja ich lese was mir geschrieben wird. Ich habe diese Eingaben nochmals 
kontrolliert. Habe jetzt begonnen alles nochmal neu aufzusetzen und die 
ganze Prozedur noch einmal durchzuführen.

Hoffe das es jetzt vielleicht funktioniert.
Könnte mir vielleicht jemand eine aktuellere Anleitung zur Verfügung 
stellen? Alle die ich bis jetzt gefunden haben sind mindestens genauso 
alt wenn nicht älter? oder gibt es vielleicht schon ein fertiges plugin 
für Eclipse mit den man keine dann keine Arbeit mehr hat?

von Heiner B. (synergy1337)


Lesenswert?

ist nicht code composer nur ein modifiziertes eclipse, warum also nicht 
damit?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Manuel Volk schrieb:
> Ja ich lese was mir geschrieben wird.

Aber Du hast kein einziges Mal die Ausgaben des Compilers, die im 
"Console"-Fenster zu sehen sind, erwähnt. Und genau die würden helfen, 
Dein Problem zu lösen.

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.