MSP430 asm(" ESTOP0");

Gast #7334170
Lesenswert?

d.H. du hast keinerlei Ahnung, was der Befehl am TMS320 tut, und willst ihn einfach auf Gut Glück irgendwie in ein MSP430-Programm einfügen?

Ich habe keinerlei Ahnung, ich habe das Wissen, was er im Zusammenhang mit dem CCS und TMS320... in C-Progs. macht. Off. fehlt bei dir ( Εrnst B.) dieses Wissen.

Noch einaml:

Ich will einfach nur wissen, ob es für den asm(" ESTOP0"); ein Äquivalent im MSP430 gibt.

VG Walter

#7334173
Lesenswert?

Walter L. schrieb:

Ich habe keinerlei Ahnung, ich habe das Wissen, was er im Zusammenhang mit dem CCS und TMS320... in C-Progs. macht. Off. fehlt bei dir ( Εrnst B.) dieses Wissen.

Ach, d.H. es macht was anderes als ein Software-definierten Breakpoint? Dann erleuchte uns. Berechnet es PI auf 1000 Stellen?

Walter L. schrieb:

Ich will einfach nur wissen, ob es für den asm(" ESTOP0"); ein Äquivalent im MSP430 gibt.

Dann formuliere deine Frage um, z.B. "Wie kann ich in C am MSP430 einen Programabbruch erzwingen" oder "Wie kann ich in C am MSP430 mit nur einem ASM-Befehl PI auf 1000 Stellen berechnen"

Angehängte Dateien:
Gast #7334258
Lesenswert?

Walter L. schrieb:

Ja, dann sage es, wie lautet der äquivalente asm -Bef. beim MSP430.

Hast Du Dir schon mal die Assembler Befehle des MSP430 angesehen? Das ist sehr überschaubar, die Frage nach einem gleichwertigen Befehl kannst Du Dir also selber beantworten. Ob es möglich ist eventuell über die Peripherie etwas äqivalentes zu machen ist eine andere Sache.

Gast #7334268
Lesenswert?

Dieter (Gast) dafür brauche ich kein Forum.

Für alle die ... Off. schreibt der debugger beim Setzen eines Soft-Breakpoints 0x4343 an die Stelle des Masch.-Befs.

Ich frage bei TI nach. Da gibt es sachkundige Auskunft...

VG Walter

Gast #7334307
Lesenswert?

Walter L. schrieb:

Ich frage natürlich nur die jenigen, die asm(" ESTOP0"); kennen.

Damit machst Du Dir das Leben unnötig schwer, denn Du kannst so nur Leute fragen, die sowohl TMS320 als auch MSP430 kennen.

Alle diejenigen, die sich mit dem MSP430 bestens auskennen, den TMS320 aber nicht kennen, schließt Du damit davon aus, Deine Frage beantworten zu können.

Ich bezweifle wirklich, daß das eine sinnvolle Vorgehensweise ist.

#7334316
Lesenswert?

Ich weiß zwar nicht, was ein ESTOP0 auf dem TMS320 tut und ich weiß auch nicht (auch deshalb) ob ich dieses Kommando in meinem derzeitigen Projekt benötige, aber ich habe plötzlich das Verlangen, dieses Kommando auf einem 8051 zu benutzen. Da ich nicht weiß, was das Kommando macht, muss es auch nicht unbedingt einen Sinn ergeben. Wie heißt das Kommando! Los!

Never mind ...

Gruß Jobst

Beitrag #7334710 wurde von einem Moderator gelöscht.
Gast #7334847
Lesenswert?

Walter L. schrieb:

NOP ist 0x4303 nicht 0x4343!!!!!!

Du glaubst dass die Anzahl der Ausrufezeichen etwas über die Richtigkeit aussagt?

Es gibt viele Möglichkeiten beim MSP430 einen "NOP" darzustellen weil das nur durch einen anderen Befehl emuliert wird. Siehe z.B. hier:

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/780806/ccs-msp430fr5994-write-a-breakpoint-in-assembly

Gast #7334861
Lesenswert?

Nachtrag zum NOP (aus slau144.pdf, MSP430F2xx, MSP430G2xx Family, Seite 98):

1
Emulating No-Operation Instruction
2
Other instructions can emulate the NOP function while providing different
3
numbers of instruction cycles and code words. Some examples are:
4
MOV #0,R3 ; 1 cycle, 1 word
5
MOV 0(R4),0(R4) ; 6 cycles, 3 words
6
MOV @R4,0(R4) ; 5 cycles, 2 words
7
BIC #0,EDE(R4) ; 4 cycles, 2 words
8
JMP $+2 ; 2 cycles, 1 word
9
BIC #0,R5 ; 1 cycle, 1 word
#7558477
Lesenswert?

Zur Klärung, denn dieser Thread ist etwas ausgeartet.

Die Instruktion

1
__op_code(0x4343)

wird zu

1
CLR.B   R3

übersetzt, und

1
__op_code(0x4303)

wird zu

1
NOP

übersetzt.

__op_code(0x4343) führt zum gewünschten Ergebnis. D.h. bei einem angeschlossenen Debugger wird der Opcode als Software-Break behandelt.

Ein NOP, im Gegensatz, bewirkt wenig überraschend kein Software-Break.

Getestet unter:

  • IDE: Code Composer Studio v12.4
  • MCU: MSP430FR2155
  • Debugger: MSP-FET

Im TI Forum gibt es eine erklärung dafür:

The MSP430 ISA does not have a breakpoint instruction.

But you can try to use "MOV.B #0,R3". CCS uses this (otherwise pointless) instruction as a software breakpoint, and configures the EEM to break when this instruction word (0x4343) is fetched.

Quelle: https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/780806/ccs-msp430fr5994-write-a-breakpoint-in-assembly

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