Forum: Mikrocontroller und Digitale Elektronik MSP430: MSPGCC und Eclipse


von völkner (Gast)


Lesenswert?

Hallo,
ich benutze seit längerer Zeit MSPGCC (dk.xpg.toolchain.windows.3.0)
und Eclipse. Bislang hat mit das ausgereicht weil ich mir die
"alten" Prozessoren gereicht haben (MSP430F2274). Jetzt brauche
ich etwas mehr RAM und wollte auf den MSP430G2955 umsteigen. Dieser
ist aber nicht mehr in der Auswahl der MMU vorhanden. Unterscheiden tut
er sich aber eigentlich nur in der Größe von Flash und RAM.
Weiss jemand was man alles noch tun muss um angepasste memory.x und 
periph.x
Files nutzbar zu machen?

Vielen Dank für sachdienliche Hinweise.

(mit dem TI CCS komme ich nicht zurecht da verschiedene Dinge meiner
Ansicht
nach nicht so funktionieren wie ich das bis jetzt gewohnt bin)

von Wolle G. (wolleg)


Lesenswert?

völkner schrieb:
> (mit dem TI CCS komme ich nicht zurecht da verschiedene Dinge meiner
> Ansicht
> nach nicht so funktionieren wie ich das bis jetzt gewohnt bin)

Ich kann zwar nicht direkt helfen. Mir erging es ähnlich z.B. bei der 
Verwendung des MSP430F5435.
Hier bin ich auf CCS umgestiegen und verwende Windows 10.
Man muss sich wahrscheinlich umstellen.
 Übung macht den Meister!

von völkner (Gast)


Lesenswert?

Wolle G. schrieb:
> Man muss sich wahrscheinlich umstellen.

Hallo,
danke für die Antwort, wenn es auch nicht das ist was ich gerne hätte.

Ich bin nicht sehr vertraut mit CCS und würde auch umstellen wollen,
aber kann mir vielleicht jemand sagen wie man da ein ELF File erzeugt
und wie man ein ordentlichen printf hinbekommt. Das bräuchte ich
in jedem Fall.

Danke.

von dummschwaetzer (Gast)


Lesenswert?

was verstehst du unter
>ordentlichen printf hinbekommt

hast du das CCS bereits installiert?

von dummschwaetzer (Gast)


Angehängte Dateien:

Lesenswert?

float ist unter Properties->Advanced Options->Language Options

von dummschwaetzer (Gast)


Lesenswert?

>wie man da ein ELF File erzeugt
Ich brauche immer nur .txt
für das .elf:
Properties->
General
Build->MSP430Linker
Build->MSP430 Hex Utility

von dummschwaetzer (Gast)


Lesenswert?

>angepasste memory.x und periph.x
einfach einbinden? oder was ist da dein Problem unter ccs?
ggf. deine lnk_msp430g2955.cmd anpassen!

von völkner (Gast)


Lesenswert?

dummschwaetzer schrieb:
Vielen Dank für die Informationen, das hilft schon mal ein Stück.

>>angepasste memory.x und periph.x
Das sind zwei Files in der dk.xpg.toolchain die die Resourcen der
MMU beschreiben. Also hat nichts mit CCS zu tun. Das wäre das einfachste
für mich wenn man das für die neue CPU ändern könnte. Da gibts aber noch
paar mehr Stellen bei den man möglicherweise eingreifen müsste. Ich 
traue mich aber da nichts zu ändern vorerst.

Die Stelle wo man printf anpassen kann hatte ich nicht gesehen, danke.
Dadurch werden die Fehler weniger aber es hapert immer noch beim 
putchar.
Ich leite printf auf die serielle Schnittstelle um. Das klappt bei 
dk.xpg.toolchain einwandfrei.

Das mit dem Elf File habe ich auch noch nicht verstanden. Ich finde
Properties-> General
Build->MSP430Linker
Build->MSP430 Hex Utility
aber was muss ich da ändern um das elf File zu bekommen?

Danke für deine Geduld.

Gruß

von dummschwaetzer (Gast)


Lesenswert?

>Elf File
da kann ich dir leider nicht weiterhelfen, ich brauchte bisher immer nur 
.txt. Aber in den genannten Menüs sollte das irgendwo versteckt sein.
Kannst du die .x hier mal Posten, dami ich eine Vorstellung bekomme was 
da drinn ist?

von dummschwaetzer (Gast)


Lesenswert?

>Ich leite printf auf die serielle Schnittstelle um. Das klappt bei
>dk.xpg.toolchain einwandfrei.
Ich mach da mit snprintf einen eigenen string den ich dann direkt ins 
UART-TX Register schreibe.

von völkner (Gast)


Lesenswert?

Es sind wohl Linker files die etwa dem .cmd beim CCS entsprechen.

Ich brauche das ELF File für meinen Debugger. Wenn das nicht geht
kann ich CCS nicht benutzen.


Die gewünschten Inhalte:

Für MSP430F2274
memory.x

MEMORY {
  sfr              : ORIGIN = 0x0000, LENGTH = 0x0010 /* END=0x0010, 
size 16 */
  peripheral_8bit  : ORIGIN = 0x0010, LENGTH = 0x00f0 /* END=0x0100, 
size 240 */
  peripheral_16bit : ORIGIN = 0x0100, LENGTH = 0x0100 /* END=0x0200, 
size 256 */
  ram (wx)         : ORIGIN = 0x0200, LENGTH = 0x0400 /* END=0x0600, 
size 1K */
  infomem          : ORIGIN = 0x1000, LENGTH = 0x0100 /* END=0x1100, 
size 256 as 4 64-byte segments */
  infod            : ORIGIN = 0x1000, LENGTH = 0x0040 /* END=0x1040, 
size 64 */
  infoc            : ORIGIN = 0x1040, LENGTH = 0x0040 /* END=0x1080, 
size 64 */
  infob            : ORIGIN = 0x1080, LENGTH = 0x0040 /* END=0x10c0, 
size 64 */
  infoa            : ORIGIN = 0x10c0, LENGTH = 0x0040 /* END=0x1100, 
size 64 */
  rom (rx)         : ORIGIN = 0x8000, LENGTH = 0x7fde /* END=0xffde, 
size 32734 */
  vectors          : ORIGIN = 0xffe0, LENGTH = 0x0020 /* END=0x10000, 
size 32 as 16 2-byte segments */
  /* Remaining banks are absent */
  bsl              : ORIGIN = 0x0000, LENGTH = 0x0000
  ram2 (wx)        : ORIGIN = 0x0000, LENGTH = 0x0000
  ram_mirror (wx)  : ORIGIN = 0x0000, LENGTH = 0x0000
  usbram (wx)      : ORIGIN = 0x0000, LENGTH = 0x0000
  far_rom          : ORIGIN = 0x00000000, LENGTH = 0x00000000
}
REGION_ALIAS("REGION_TEXT", rom);
REGION_ALIAS("REGION_DATA", ram);
REGION_ALIAS("REGION_FAR_ROM", far_rom);
PROVIDE (__info_segment_size = 0x40);
PROVIDE (__infod = 0x1000);
PROVIDE (__infoc = 0x1040);
PROVIDE (__infob = 0x1080);
PROVIDE (__infoa = 0x10c0);

periph.x
__IE1 = 0x0000;
__IFG1 = 0x0002;
__IE2 = 0x0001;
__IFG2 = 0x0003;
__ADC10DTC0 = 0x0048;
__ADC10DTC1 = 0x0049;
__ADC10AE0 = 0x004A;
__ADC10AE1 = 0x004B;
__ADC10CTL0 = 0x01B0;
__ADC10CTL1 = 0x01B2;
__ADC10MEM = 0x01B4;
__ADC10SA = 0x01BC;
__DCOCTL = 0x0056;
__BCSCTL1 = 0x0057;

geht weiter

von dummschwaetzer (Gast)


Lesenswert?

was hast du für einen debugger?

von völkner (Gast)


Lesenswert?

dummschwaetzer schrieb:
> was hast du für einen debugger?

Lauterbach T32 Debugger(auf den möchte ich nicht verzichten!)

Sagt dir CCSDAT File formazt was ? Das könnte geladen werden, steht
aber nichts weiter dabei, könnte auch was anderes sein.

von dummschwaetzer (Gast)


Lesenswert?

nein, sagt mir nichts.
die vom ccs generierte .out Datei fängt aber mit ELF an.
eventuell brauchst du ja nur den Dateinamen 
ändern(BUILD->MSP430Linker->BasicOptions)
Villeicht auch mal eine Anfrage an Lauterbach stellen was du da wo 
einstellen musst?

von Wolle G. (wolleg)


Lesenswert?

völkner schrieb:
> Ich brauche das ELF File für meinen Debugger.

Einen Debugger gibt es auch bei CCS. Dehalb braucht man hier m.E. keinen 
ELF File.

von Christian R. (supachris)


Lesenswert?

Vor einer Weile konnte man im CCS auch den GCC verwenden. Dazu musste 
man über den Eclipse Store (oder so) das Ding installieren. Das geht 
doch jetzt bestimmt immer noch. Der ist aber deutlich ineffizienter als 
der TI Compiler.

Edit: gefunden: 
https://processors.wiki.ti.com/index.php/Using_MSP430-GCC_with_CCSv6

: Bearbeitet durch User
von dummschwaetzer (Gast)


Lesenswert?

>memory.x
ist in der .cmd

periph.x
ist dann wahrscheinlich die msp430.h bzw die zu dem g2955 passende .h, 
.irgendwas im Ordner \ccs_base\msp430\include

von dummschwaetzer (Gast)


Angehängte Dateien:

Lesenswert?

den?
Villeicht musst du da im CCS was nachinstallieren?

von völkner (Gast)


Lesenswert?

Danke für die Hilfe allerseits.

dummschwaetzer schrieb:
> die vom ccs generierte .out Datei fängt aber mit ELF an.

Der Hinweis war sehr gut. Habe mal gerade mit dem Simulator das
.out file versucht zu laden und es hat funktioniert. Also
Aufregung meinerseits wohl umsonst.

Mit dem printf in String und dann Ausgabe auf UART kann ich auch
leben.

Scheint also einer Umstellung auf CCS nichts mehr im Weg zu stehen.

Doch eine Sache habe ich noch:
Kann man diese Hinweise mit dem I (links) abschalten ?

Vielen Dank für die Unterstützung.

von dummschwaetzer (Gast)


Lesenswert?

>Kann man diese Hinweise mit dem I (links) abschalten ?
Was meinst du damit?

von dummschwaetzer (Gast)


Lesenswert?

ach die ULP-Warnungen.
Ja:
Properties->Build->MSP430Compiler->ULP Advisor
die sind aber manchmal recht nützlich.

von völkner (Gast)


Lesenswert?

dummschwaetzer schrieb:
> ach die ULP-Warnungen

Ja , das meinte ich. Mag sein dass sie im Einzelfall
nützlich sind. Jedenfalls gut zu wissen wo man sie abschalten kann.

Bedanke mich nochmals sehr für deine freundliche und geduldige
Hilfe! Das war für mich jetzt sehr erfreulich, ich kann jetzt wohl
getrost umsteigen und an meinem Bastelprojekt weitermachen.

Schönes Wochenende.

Grüße

von dummschwaetzer (Gast)


Lesenswert?

falls du interupts verwendest:
deren Aufruf könnte sich vom bisherigen Unterscheiden.
Da gibt es aber von TI relativ gute Doku.
(google nach migration)

von dummschwaetzer (Gast)


Lesenswert?

>Bedanke mich nochmals sehr für
gern geschehen, dafür ist ja das forum da!

von dummschwaetzer (Gast)


Lesenswert?

noch ein Hinweis:
>etwas mehr RAM
die FR-Reihe ist da auch zu empfehlen, die haben zwar relativ wenig 
richtigen RAM, aber der FR-Bereich ist eigentlich auch wie RAM nutzbar.

von völkner (Gast)


Lesenswert?

dummschwaetzer schrieb:
> gern geschehen, dafür ist ja das forum da!

Ja schon, aber öfters wird man doch etwas "schräg ansprochen"
wenn man was fragt. Es war aber vorbildlich!

Werde mir auch mal die FR Typen genauer ansehen bevor ich
entgültig umsteige.

Dankmals Danke.

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.