Hallo,
Wie die Überschrift schon sagt, habe ich grade die ersten Erfahrungen
mit mc.
Bisher habe ich nur Erfahrungen in der c/c++ Programmierung für Windows.
Für meine Arbeit darf ich mich jetzt mit mc. Programmierung
beschäftigen.
Ich habe ein fertiges Programm bekommen, dass ich zunächst einmal
verstehen muss und später auch verändern. Leider gibt es dabei einige
Probleme. Ich habe mir von ti den msp430cce-Compiler installiert und das
fertige Programm eingebunden. Beim compilieren kommen allerdings mehr
als 80 Fehlermeldungen.
Daher zunächst einmal meine Frage, habe ich den richtigen Compiler?
Oder kann man mc auch mit Visual Studio programmieren?
Andre schrieb:
> Daher zunächst einmal meine Frage, habe ich den richtigen Compiler?
Kann sein, kann auch nicht sein.
Kommt drauf an, welcher mc es denn eigentlich ist :-)
> Oder kann man mc auch mit Visual Studio programmieren?
Man könnte ev. den Compiler ins Visual Studio einbinden. Aber
eigentlich: Nein, das macht man nicht damit.
> Beim compilieren kommen allerdings mehr als 80 Fehlermeldungen.
Und?
Bearbeite den ersten.
Compiliere wieder. Danach sind wahrscheinlich schon mindestens 10% aller
anderen Folgefehler verschwunden.
Bearbeite den nächsten Fehler der übrig bleibt. Solange bis nichts mehr
da ist.
Kann aber auch sein, dass in deinem neu installiertem Compiler irgendwo
in der Konfiguration noch ein Wurm ist, und alle >80 Fehler in
Wirklichkeit nur ein einziger Konfigurationsfehler ist, der sich >80 mal
bemerkbar macht. Aber die erste Fehlermeldung sollte darüber Aufschluss
geben, worum es sich handelt.
Danke für deine schnelle Antwort
über den verwendeten mc kann ich nichts direkt sagen, ich weiß
lediglich, dass in dem Programm die Datei msp430x16x.h eingebunden ist.
Das Problem, was ich mit den Fehlermeldungen habe, ist nicht die Anzahl,
sondern, dass ich weiß, dass das Programm schon eine final-Version ist
und damit eigentlich keine Fehler auftauchen sollten. Daher mein
Verdacht des falschen Compilers. Auch die Art der Fehlermeldungen
wundert mich. So ist z.B. "bool" unbekannt.
> Das Problem, was ich mit den Fehlermeldungen habe, ist nicht die Anzahl,> sondern, dass ich weiß, dass das Programm schon eine final-Version ist> und damit eigentlich keine Fehler auftauchen sollten.
es kann ja schon ein vergessene Define (beim compiler als Parameter)
sein. Was sind es denn für Fehlermeldungen.
> Wie die Überschrift schon sagt, habe ich grade die ersten> Erfahrungen mit mc.
Und? Fast wie Sex oder? :-D
> Beim compilieren kommen allerdings mehr als 80 Fehlermeldungen.
Dann habe ich mal eine wichtige Neuigkeit fuer dich. Fehlermeldungen
sind dafuer da sie auch zu lesen. Und wenn man das nicht schafft oder
aus anderen Gründen damit nicht zu Rande kommt dann sagt man anderen wie
die Fehlermeldungen heissen. Wir koennen ja nicht fuer jeden neuen
Anfaenger einen Hamster aufschneiden um aus den Eingeweiden zu lesen!
Olaf
Leider wurde das Programm extern entwickelt und hier hat keiner direkt
Erfahrungen mit mc.
Ich fange einfach mal mit der ersten Fehlermeldung an.
"variable "toDisplay" has already been defined "
Die betroffene Zeile sieht folgendermaßen aus:
"toDisplay(s_txt_ptr_Z1, s_txt_ptr_Z2);"
Andre schrieb:
> Daher zunächst einmal meine Frage, habe ich den richtigen Compiler?> Oder kann man mc auch mit Visual Studio programmieren?
Du kannst jeden Compiler nehmen, wo Du Deinen konkreten MC-Typ als
Target einstellen kannst.
Sinvoll ist allerdings, genau den Compiler zu nehmen, den der Autor
genommen hat.
Es gibt doch oftmals kleine Unterschiede, z.B. in den Headerfiles,
Interruptsyntax, Bitvariablen.
Peter
Andre schrieb:
> Leider wurde das Programm extern entwickelt
Und?
Sind diese Leute nicht mehr greifbar.
> und hier hat keiner direkt> Erfahrungen mit mc.
Das klingt auch nicht nach einem mc-Problem an sich, sondern an einem
ganz ordinären C-Problem.
>> Ich fange einfach mal mit der ersten Fehlermeldung an.> "variable "toDisplay" has already been defined ">> Die betroffene Zeile sieht folgendermaßen aus:> "toDisplay(s_txt_ptr_Z1, s_txt_ptr_Z2);"
Aus einer einzelnen Zeile lesen ist fast so gut wie Kaffesatz lesen.
Der eigentliche Fehler liegt auf jeden Fall vor dieser Zeile.
Poste doch lieber ein komplettes Source File (*.c), markiere die
Position der erste Fehlermeldung. Dann kann man auch versuchen sinnvoll
zu helfen.
Das Programm wurde in einem Forschungsprojekt am Fraunhofer Institut
entwickelt und bei uns im Rahmen eines weitgehenden Forschungsprojekt
verbessert werden. Daher kann ich leider nicht das komplette Programm
posten :(
Andre schrieb:
> Ich fange einfach mal mit der ersten Fehlermeldung an.> "variable "toDisplay" has already been defined "
Scheint also kein GCC zu sein, der würde noch ne 2. Zeile bringen:
"TAST.C:38: error: previous declaration of 'toDisplay' was here"
Peter
> Bisher habe ich nur Erfahrungen in der c/c++ Programmierung für Windows.
Du hast Erfahrungen in c/c++ aber kannst mit dieser:
> "variable "toDisplay" has already been defined "
nichts anfangen?
grübel
Andre schrieb:
> Das Programm wurde in einem Forschungsprojekt am Fraunhofer Institut> entwickelt und bei uns im Rahmen eines weitgehenden Forschungsprojekt> verbessert werden. Daher kann ich leider nicht das komplette Programm> posten :(
Von kompletten Projekt war ja auch nicht die Rede :-)
> bei uns im Rahmen eines weitgehenden Forschungsprojekt> verbessert werden.
Hust.
Wie soll das gehen, wenn du schon damit überfordert bist einen
'fertigen' Source Code zum Laufen zu bekommen.
Aber na gut.
Wenn du die Glaskugel bevorzugst.
Der Fehler ist in Zeile 42. So wie immer.
Es soll gehen indem man c schon kann, nur Probleme hat den einstig in
mc-Programmierung zu bekommen.
"
Aber na gut.
Wenn du die Glaskugel bevorzugst.
Der Fehler ist in Zeile 42. So wie immer."
Ich denke mir reicht das jetzt erstmal hier. "Man bist du blöd" - Posts
helfen mir auch nicht weiter.
Hier nochmal mein Problem:
Ich habe ein fertiges Programm, also müssen die Fehler vom Compiler
kommen und nicht vom Code kommen.
Andre schrieb:
> Ich habe ein fertiges Programm, also müssen die Fehler vom Compiler> kommen und nicht vom Code kommen.
Das kann so sein, muss aber nicht.
Und bevor wir den Compiler eines Fehlers verdächtigen, gehen wir von der
naheliegensten und wahrscheinlichsten Ursache aus: Nämlich, dass der
Code bzw. der Aufruf des Compilers fehlerhaft ist.
Auf jeden Fall kann man eines sagen:
1
toDisplay(s_txt_ptr_Z1,s_txt_ptr_Z2);
hat nichts, aber auch gar nichts, mit einer Variablendefinition zu tun.
Das ist ein Funktionsaufruf. Da du uns leider nicht verraten willst, in
welchem Zusammenhang dieser Aufruf erfolgt (Initialisierung würde noch
am ehesten passen, aber dann handelt es sich um C++ und nicht um C), ist
alles was wir unt können: raten.
Es kann auch sein, dass der Fehler überhaupt nichts mit diesem
Funktionsaufruf zu tun hat, und irgendein Code davor den Compiler ausser
Tritt gebracht hat und diese Fehlermeldung a)völlig falsch ist oder b)
einfach nur daraus resultiert, dass der Compiler davor ausgestiegen ist.
Vielleicht ist auch einfach nur irgendwo davor eine } verloren gegangen
oder ein ; nicht dort wo er hin sollte.
Der Fehler entsteht nicht in dieser Zeile, sondern bereits davor. Wo,
kann keiner sagen, denn wie gesagt ....
Aber in Summe sind das alles viel zu viele 'vielleicht'.
> nur Probleme hat den einstig in> mc-Programmierung zu bekommen.
Der Fehler hat auch mit 95% Sicherheit nichts mit mc-Programmierung im
Speziellen zu tun, sondern sieht nach einem stinknormalen C-Fehler aus.
Möglich, dass ein älterer Compiler das alles noch anstandslos geschluckt
hat (auch Compiler enthalten Fehler, die im Laufe der Zeit korrigiert
werden). Die restlichen 5% entfallen auf den Fall, dass unmittelbar vor
diesem Funktionsaufruf tatsächlich irgendetwas passiert, was mit einer
mc-spezifischen Compilererweiterung gemacht wurde, die in deiner Version
nicht verfügbar ist (oder geändert wurde).
Vielleicht muss man aber auch den Compiler mit irgendwelchen speziellen
Switches aufrufen, damit er ein bestimmtes Verhalten an den Tag legt. In
dem Fall wäre der Code samt Compileraufruf (ev. Makefile) interessant.
> Ich denke mir reicht das jetzt erstmal hier. "Man bist du blöd" -> Posts helfen mir auch nicht weiter.
Und mit einer Anfrage:
"Mein Auto klappert. Ich verrate euch aber nicht, ob das im Stehen ist
oder beim Fahren einer Linkskurve oder ..." kann kein Mensch eine
vernünftige Diagnose stellen.
Wenn dein Bauch schmerzt, gehst du auch selber komplett zum Arzt und
schickst ihm kein Photo von deinem Bauchnabel.
Ist das so schwer zu verstehen?
Wenn du uns nicht hilfst dir zu helfen, dann kann dir hier niemand
helfen. Von jemanden mit C/C++ Erfahrung erwarte ich mir eigentlich
schon, dass er das versteht.
oder er wurde mit einer alten Version des Compilers kompiliert, du
hast jetzt eine neuere und die meckert deshalb mehr rum?
Kann ja auch sein.
Aber ohne mehr Infos wirst du hier kaum vernünftige Antworten bekommen.
> Ich denke mir reicht das jetzt erstmal hier. "Man bist du blöd"> - Posts helfen mir auch nicht weiter.
Bei der Frage braucht man sich über die Antworten auch nicht wundern.
"Ich habe ein Problem, weiß aber nicht bei welchem MC, verrate nicht
wie meine Installation aussieht, zeige keinen Quelltext und kein
Makefile, aber sagt mir doch trotzdem, wo mein Problem ist."
Was erwartest du? Daß sich jemand auf deinem Rechner einhackt und
remote die Fehler sucht?
Ich frag mich jedoch immer noch wie es sein kann das du Fraunhofer nicht
anrufen kannst du naehere Infos einholen kannst. Verwendeter Compiler,
Compilerverssion, Konfiguration usw. Gibt es keine Doku, ich wuerde doch
annehmen das die Jungs dort ein wenig Ahnung von solchen Dingen haben.
Oder soll Fraunhofer nicht wissen das ihr/du am Code rumstrickst?
Alles irgendwie ein wenig komisch...
Wie vorher schon jemand schrieb... Wahrscheinlich wurde eine aeltere
Compilerversion benutzt und du hast nun eine aktuelle Version...
Andre schrieb:
> Das Programm wurde in einem Forschungsprojekt am Fraunhofer Institut> entwickelt
Dann sollte aber doch eine ordentliche Doku vorhanden sein.
Also welcher Compiler, welche Version, welches Target, das komplette
Makefile.
Oder am besten das Projektfile der verwendeten IDE.
Und wenn Du nicht so erfahren bist in C, mußt Du das erstmal 1:1
übernehmen.
Alles andere ergibt keinen Sinn.
Wir legen immer das komplette Projektfile (z.B. *.aps beim AVRStudio)
mit im SVN ab, da sind dann sämtliche Einstellungen drin.
Damit ist es praktisch unmöglich, daß jemand auscheckt und
Fehlermeldungen beim Compilieren erhält.
Peter
Es könnte sich auch um einen Fehler bei der Einbindung der Includes
handeln. Als Vorschlag: Überprüfe die Pfadangabe der Includes bei den
Optionen des Compilers oder schau dir das makefile nochmal genauer an.
Manchmal wird ein file versehentlich mehrfach eingebunden was zu Fehlern
füren kann!
Gruß
Stefan
Hatte er nicht erwähnt das der Compiler der CCE von TI ist.
Das Problem mit dem bool hört sich für mich danach an als ob die
stdbool.h nicht eingebunden oder gefunden wird.
Ähnliches Problem habe ich jetzt bei der neuen CCS4 Version. Dort
scheint es diese Header Datei nicht mehr zu geben. werde sie mir von der
alten CCE3 Version rüberkopieren.