Launchpad mit Hilfe von Eclipse programmieren

Gast #2775023
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.
Angehängte Dateien:
Persönliche Seite #2775093
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".
Gast #2775257
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.
Persönliche Seite #2775410
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".
#2775918
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.
Gast #2776182
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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren