MSP430 Eclipse und mspgcc

Gast #560359
Lesenswert?

Salu zusammen

Ich bin am verzweifeln :o)

Bin seit Stunden hier am probieren die Entwicklungsumgebung MSP430 
Eclipse mspgcc zum laufen zu bewegen. Ich habe es nun endlich geschafft 
ein managed C Project zu erzeugen, habe auch überall nach der Anleitung 
die hier auf der Homepage ist, msp430x149 eingestellt.
Nun habe ich meine bereits existenten Files aus IAR übernommen (neue 
Files in Eclipse erzeugt und Quellcode kopiert)
Includes habe ich mspgcc und noch die von IAR angegeben, aber wenn ich 
speichere, sprich auch gleich Compiliere, spuckt er mir 60 Errors und 
jede Menge Warnings raus. Die meisten lauten so in etwa:  P1SEL 
undeclared (first use in this function) Habe auch noch ein Pic 
angehängt, vielleicht sieht man da was. Ich glaube aber ich habe das 
deklariert in den .h Files. Kann es sein das ich die noch speziell 
anhängen muss?
Wäre über jede Hilfe dankbar

Gruss reflection
Angehängte Dateien:
Gast #560503
Lesenswert?

Ja das habe ich als es nicht gegangen ist. Habe auch die Sachen von IAR 
noch eingebunden. Keine Ahnung ob es daran liegt, aber nur mit mspgcc 
sah es genau so aus. Irgendwie werden die ganzen Ports ect. nicht 
erkannt. Also sie stehen zwar im .h, aber der Compiler will das nicht so 
sehen... grrrr Oder muss ich noch andere Sachen abändern wenn ich ein 
Programm von IAR übernehmen möchte?

Klappt das mit dem MSP FET USB Debugger eigentlich problemlos? Sorry für 
die vielen Fragen, aber langsam zweifle ich echt an mir

Gute Nacht

Greets
#560533
Lesenswert?

Also die Datei muss da raus, eventuell beißt sich da was, das ist 
bestimmt die vom IAR. Richtigen Prozessortyp bei Compiler UND Linker 
eingestellt? Bist du nach der Anleitung gegangen?

Anders als bei IAR werden die Interrupts behandelt, musste ma Anleitung 
schauen, und die signal.h einbinden.

Ja, USB-FET klappt mit dem gdbproxy wunderbar. Ich hab den gdb-proxy 
gleich als external tool im eclipse mit drin, geht prima.
Gast #560537
Lesenswert?

Salu

Ich habe jetzt mal aufgeräumt. Hier sieht man auch die Sachen die ich 
eingebunden habe. Komisch ist, dass er nur schon die .c nicht einbinden 
kann, die sind ja aber in dem Verzeichnis vorhanden. Ich habe die 
Anleitung einmal durchgemacht bis ich dazu kam die Datei gdbtarget.ini 
zu erstellen. Compilieren sollte ich da ja schon können oder sehe ich 
das falsch?

Gruss Serge

PS: Mit der Anleitung hatte ich eben so meine Mühe, da der eine Link 
dort nicht funktioniert. Habe es dann von Hand installiert, kann es sein 
das ich da noch was vergessen habe? Ein Projekt konnte ich aber genau so 
erstellen wie es in der Anleitung steht.
Angehängte Dateien:
#560559
Lesenswert?

1. Seit wann werden C-Dateien direkt includiert? Dafür gibts 
Header-Files.

2. Ich schätze, in den betreffenden C-Dateien ist die Zeile #include 
<msp430x14x.h> nicht drin, denn in der Main meckert der die Register 
nicht an

Also, leg mal für die lcd.c usw jeweils eine .h Datei an, und includiere 
die.

Am übersichtlichsten macht man das meiner Meinung nach, wenn man eine 
projekt.h erstellt, und diese überall includiert. In der project.h dann 
die prozessorspzifische includieren und alle anderen .h dateien deines 
Projektes. Dann klappt das auch.

Von Hand installieren ist sowieso besser, dann hast du nicht diese 
hoffnungslos veralteten Versionen aus dem Paket da.
Gast #560614
Lesenswert?

Salu

Das verstehe ich jetzt nicht ganz: Also, leg mal für die lcd.c usw 
jeweils eine .h Datei an, und includiere die.

Ich habe ja dort nur C-Code drin in meinen .c Files. Was soll ich dann 
in  die .h schreiben? Was mich wundert ist, dass es in IAR so geklappt 
hat.

Das mit dem include msp430x14x.h werde ich noch probieren
Gast #560622
Lesenswert?

Habe nun mal die includes in allen Files gemacht. Nun habe ich nur noch 
5 Fehler :o)

Er macht immer noch Fehler wenn ich ein .c includen will: lcd.c No such 
file or directory

Er gibt bei jeder for Schleife den Fehler: 'for' loop initial 
declaration used outside C99 mode

Könnt ihr mir vielleicht da noch weiterhelfen? Wäre echt nett!

Gruss und Merci im Voraus

reflection
Gast #560635
Lesenswert?

Also, die Fehler mit include der .c Files ging nun. Musste aber das 
Projekt noch unter includes in den Projectoptions einstellen (dort 
befinden sich die .c Files).

Habe jetzt noch die zwei Fehler mit dem

'for' loop initial declaration used outside C99 mode

Gruss reflection
#560652
Lesenswert?

Jo, also das ist halt ziemlich schlechter Stil, includiert werden keine 
C-Files sondern Header-Dateien, in denen die Funktionen des C-Files 
deklariert sind.

Dann müsstest du in der main.c halt nur #include "lcd.h" machen.

In der lcd.h steht dann z.B.

void InitLCD(void);

In der lcd.c kommt dann die komplette Funktion:

void InitLCD(void)
{
      blabla....
}

So macht man das, das wird übersichtlich und entspricht dem 
Include-Prinzip.

Den C99 Fehler bekommst du weg, in dem du keine Schleifenvariablen 
direkt in der Schleife deklarierst, sondern vorher.
Oder den Compiler umstellen auf C99 Modus. Da weiß ich aber grad nich, 
welche Option da rein muss....
Gast #560676
Lesenswert?

Habe ich erfolgreich bei einer der beiden for Schleifen hin gekriegt, 
bei der anderen will es nicht. Die Schleife lautet folgendermassen:

void sendString(char* string)
{
  for(int i = 0; string[i] != '\0'; ++i)

Wenn ich das jetzt so schreibe:

void sendString(char* string)
{
  int i;
  for(i = 0; string[i] != '\0'; ++i)

bekomme ich wieder 20 Errors. Er sagt dann bei jeder Funktion bei der 
geschweiften Klammer, dass dies das erste mal in dieser Funktion 
deklariert sei. Gibt dann auch zig Fehler wegen doppeldeklaration, aber 
das kann irendwie auch nicht sein, da ich es auch schon mit einer 
anderen Variable (j) versucht habe und diese garantiert nicht verwendet 
wird. Sorry für die Beschreibung, aber weiss nicht wie ich das 
verständlicher rüberbringen soll.

Der Rest klappt. Ein riesen Dankeschön an die die mir geholfen haben!

Gruss reflection

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