Forum: Mikrocontroller und Digitale Elektronik msp430-assembler, pushM und popM - illegal mnemonic for specified core?


von Emil G. (balsamico)


Angehängte Dateien:

Lesenswert?

Hi,

habe gerade die eigentlich sehr praktischen Befehle pushm und popm im 
msp430-familyguide entdeckt (siehe Anhang).

"[E0002]illegal mnemonic for specified core" meckert CCSv5/gmake für die 
jeweiligen Zeilen.

pushm.w und popm.w habe ich versucht. *.w wäre hier ja aber sowieso 
default.

Mit separaten push und pop je Register funktioniert alles.

Wird nicht zur Sache tun, denk ich mal, aber ich verwende so ein 
msp430g2553-LaunchPad. Der Befehlssatz sind doch bei allen der gleiche, 
oder etwa nicht?

CCS erkennt die auch als Befehle an -farblich meine ich.

Syntax ist genau wie im Beispiel:
1
pushm.w #2, r5
2
;[...]
3
popm.w #2, r5

Wenn ich die Befehle groß schreibe, wie im Familyguide, erkennt CCS sie 
nicht als Befehle an (farblich). Mit Groß- und Kleinschreibung wird das 
aber nichts zu tun haben, oder? Hab auch dazu mal zumindest nichts 
gefunden...

Kennt jemand von euch das Problem? Funktionieren die Befehle bei euch?

Danke!

: Bearbeitet durch User
von Jürgen W. (Firma: MED-EL GmbH) (wissenwasserj)


Lesenswert?

Dann solltest Du vielleicht mal nachsehen, ob die G2-Familien diesen 
erweiterten Befehlssatz überhaupt unterstützt - Dein Modell hat im 
Blockschaltbild nur "CPU", aber nicht "CPUXV2" drin stehen.

von So isses (Gast)


Lesenswert?

Der Family Guide gilt für alle Chips der Familie. Aber nicht alle Chipse 
haben alle Eigenschaften der Familie.

Die beiden Asm Befehle werden nur von der extended cpu unterstützt.

https://en.m.wikipedia.org/wiki/TI_MSP430#MSP430X_20-bit_extension

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Man kann recht leicht an der kombinierten Größe des Flash-ROMs und des 
RAMs erkennen, welcher Kern verwendet wird; wenn es in der gleichen 
Unterfamilie eine Variante mit mehr als 64 kByte gibt, wird der 
MSP430X-Kern (mit 20-Bit-Adressierung), sonst aber nur der MSP430-Kern 
(mit 16-Bit-Adressierung) verwendet.

Daß bei der Beschreibung der einzelnen Befehle (wie im Eröffnungsposting 
gezeigt) im "Family User's Guide" (hier slau144j.pdf) der Hinweis fehlt, 
daß der betreffende Befehl nur auf MSP430X verfügbar ist, das ist 
allerdings unschön, das hätte TI da jeweils noch dazuschreiben können.

von Emil G. (balsamico)


Lesenswert?

Ahh. Ok. Danke euch dreien.

Das X in MSP430X steht für Extended und heißt nicht alle MSP430 (wie 
z.B. Version 5.x). Was gelernt.

Dabei verwenden pushm.w und popm.w im Gegensatz zu pushm.a/popm.a die 4 
Extended-Bits gar nicht.

Schade.


Rufus Τ. F. schrieb:
> Daß bei der Beschreibung der einzelnen Befehle (wie im Eröffnungsposting
> gezeigt) im "Family User's Guide" (hier slau144j.pdf) der Hinweis fehlt,
> daß der betreffende Befehl nur auf MSP430X verfügbar ist, das ist
> allerdings unschön, das hätte TI da jeweils noch dazuschreiben können.

Allerdings. Hat mich über eine Stunde gekostet.

von Bernd B. (microwave-designer)


Lesenswert?

... kleine Anmerkung(en):

das "X" ist auf dem Gehäuse des MSP eingedruckt, wenn zutreffend oder 
nicht, wenn nicht.

Dann noch by the way, es ist die Verwendung des POPM an der Grenze des 
Stacks zu beachten -> siehe Errata Sheet.

Happy coding!

Bernd

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Bernd B. schrieb:
> das "X" ist auf dem Gehäuse des MSP eingedruckt, wenn zutreffend oder
> nicht, wenn nicht.

Nö, das ist nicht der Fall.

Ich hab' hier MSP430F5438, da ist nirgends ein "X" drauf. Und mit 256kB 
Flash-ROM bleibt dem nichts anderes übrig, als den 20-Bit-CPU-Kern zu 
nutzen.

Woher hast Du diese interessante Idee?

von Bernd B. (microwave-designer)


Angehängte Dateien:

Lesenswert?

Hallo Rufus,

Bernd B. schrieb:
> das "X" ist auf dem Gehäuse des MSP eingedruckt, wenn zutreffend oder
> nicht, wenn nicht.

Bei mir ist ...

das "X" ist auf dem Gehäuse des MSP eingedruckt, wenn zutreffend oder
nicht, wenn nicht.



Happy coding!

Bernd

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Bernd B. schrieb:
> das "X" ist auf dem Gehäuse des MSP eingedruckt, wenn zutreffend oder
> nicht, wenn nicht.

Solange nicht explizit im Datenblatt steht, daß das so gehandhabt wird, 
halte ich das für reinen Zufall.

Auf meinem 'F5438 steht ausgeschrieben(!) "MSP430F5438" drauf.

Vor allem ist es überflüssig, weil im Datenblatt (in das man ja sowieso 
sehen sollte) drinsteht, welcher Kern verwendet wird.

Dein 'FR2355 verwendet den Xv2-Kern, aber hat keinerlei Grund für 
20-Bit-Adressierung, weil keiner der Verwandten dafür ausreichend 
Adressraum nutzt.

Wobei die Information gut versteckt ist, sie findet sich im 
'FR2355-Datenblatt schon auf Seite 109.

von Clemens L. (c_l)


Lesenswert?

Bernd B. schrieb:
> Bei mir ist ...
>
> das "X" ist auf dem Gehäuse des MSP eingedruckt

Laut Datenblatt ("Addendum-Page 2") ist der offizielle Aufdruck nur 
"FR2355", das X gehört zu:
> There may be additional marking, which relates to the logo, the lot trace
> code information, or the environmental category on the device.

von Bernd B. (microwave-designer)


Lesenswert?

Rufus, immer schön ruhig, ich habe nix mit 20-Bit geschrieben.

... und wenn ich meine Beschriftung falsch interpretiert habe, tut es 
mir leid.

Gruß

Bernd

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.