www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MSP430 Software-Interrupt


Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zitat aus http://www.mikrocontroller.net/articles/DebugWIRE:

> Anders als JTAG besitzt debugWIRE keine Breakpoint-Möglichkeiten in der
> CPU-Hardware, damit können Breakpoints nur über das Einfügen von
> BREAK-Befehlen in den Flash-ROM-Inhalt realisiert werden
> (Software-Breakpoint). Dies erfolgt transparent durch die Firmware
> des JTAG ICE, die nach dem Erreichen des Breakpoints den ursprünglichen
> Inhalt der entsprechenden Seite im Flash-ROM wieder herstellt.
> Daten-Breakpoints sind nicht möglich.

Kann man diesen BREAK-Befehl auch selbst einsetzen?

Wenn ja, wie ist die genaue Syntax und was bewirkt er?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was hat DebugWire mit MSP430 zu tun?

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rufus t. Firefly wrote:
> Was hat DebugWire mit MSP430 zu tun?

Au ja, garnix... Ich meinte natürlich die AVRs. (Mich hat die Staupe 
offenbar fester im Griff, als ich dachte.)

Aber nichts desto Trotz interessiert mich auch, wie man auf dem MSP430 
einen SWI basteln kann.

Autor: TI-Fan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Anders als JTAG besitzt debugWIRE keine Breakpoint-Möglichkeiten in der
> CPU-Hardware, damit können Breakpoints nur über das Einfügen von
> BREAK-Befehlen in den Flash-ROM-Inhalt realisiert werden
> (Software-Breakpoint). Dies erfolgt transparent durch die Firmware
> des JTAG ICE, die nach dem Erreichen des Breakpoints den ursprünglichen
> Inhalt der entsprechenden Seite im Flash-ROM wieder herstellt.
> Daten-Breakpoints sind nicht möglich.

lol, watt für nen Schrott.
Der Haltbarkeit des Flashs bestimmt sehr zuträglich.

Nimm halt nen MSP...
Wenn SpyByWire geht, dann geht auch alles was JTAG kann.

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
TI-Fan wrote:
> lol, watt für nen Schrott.
> Der Haltbarkeit des Flashs bestimmt sehr zuträglich.

Was glaubst du, warum ich ihn selbst in den Code schreiben will? Per 
ASM, oder C.

> Nimm halt nen MSP...
> Wenn SpyByWire geht, dann geht auch alles was JTAG kann.

Auch das ist nicht hilfreich. Ich will was ähnliches wie int xx auf den 
80x86, oder swi auf den Motorolas etc. pp.

Autor: TI-Fan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lieber Uhu Uhuhu,

da jagst Du einem Phantom nach.

Softwareinterrupts wie SWI oder INT gibt es beim MSP430 nicht.

Der C-SPY-Debugger von IAR benutzt nur Hardwarebreakpoints.
Wenn die nicht reichen:
Use virtual breakpoints
The option Use virtual breakpoints allows C-SPY to use virtual breakpoints when all 
available hardware breakpoints have been used. When virtual breakpoints are used, 
C-SPY is forced into single-step mode.
To prevent C-SPY form entering single-step mode, disable this option. In this case 
C-SPY will not use virtual breakpoints, even though all hardware breakpoints are 
already used. For further information, see Available breakpoints, page 204 the MSP430 
IAR Embedded Workbench® IDE User Guide.

Du könntest aber einen nichtimplementierten Opcode nutzen,
der dann einen Interrupt auslöst.

Viel Spaß

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
TI-Fan wrote:

> Du könntest aber einen nichtimplementierten Opcode nutzen,
> der dann einen Interrupt auslöst.

Das gibt einen Reset. Hast du eine Idee, wie man das von einem "echten" 
Reset unterscheiden kann?

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ist denn der Sinn des ganzen? Einen kontrollierten Reset kannst du 
auch über den WDT erzeugen, einfach ein ungültiges Passwort drauf 
schreiben und schon beißt er zu. Ist nach dem Reset dann auch auslesbar, 
dass der das war. Ich schreib immer 0xDEAD auf WDTCTL, das sieht auch 
noch schön aus :)

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich überlege mir, wie man einen Debug-Monitor stricken kann, der einfach 
an festen Positionen stoppt und nachsieht, ob ein neues Debugkommando 
vorliegt.

Beim MSP ist es nicht so furchtbar interessant, aber bei den AVRs wegen 
der fehlenden Breakpoint-Register schon. Wenn die Breakpoint-Register 
auf dem MSP nicht ausreichen, wird es aber auch dort interessant, denn 
die "virtuellen Breakpoints" sind ja in Wirklichkeit keine, sondern das 
Programm wird durchgesteppt und das Zeitverhalten - sofern man davon 
überhaupt noch sprechen kann - ist völlig anders.

Wenn derselbe Monitor auf unterschiedlichen Prozessoren läuft, ist das 
auf jeden Fall ein Vorteil.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.