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.
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)?
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?
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".
Hi! Wo ist denn die #include <msp430x22x2.h> ?? oder halt die von deinem Controller... cya The_Ride Peter
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>
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.
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!
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".
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??
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.
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".
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?
ist nicht code composer nur ein modifiziertes eclipse, warum also nicht damit?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.