STM32F407VG Registerinhalt auslesen

OP #4823570
Lesenswert?
• ▲
▼
Hallo,

ich benutze das Board STM32F407VG Discovery und arbeite mit EmBlitz 1.1. 
Leider funktioniert das Plugin SVD-Repository bei mir nicht, womit man 
sich ja die gesetzten Bits bzw. die Registerinhalte anschauen kann. Beim 
Starten des Plugins stürzt EmBlitz ab. Nun würde ich aber gerne 
überprüfen, ob das Setzen von Bits in den verschiedenen Registern die 
ich benutzen möchte klappt. Fällt dazu jemanden eine Möglichkeit ein? 
Kann man evtl. den Registerinhalt einer Variable zuweisen oder so?

MfG
thelightener
Gast #4823588
Lesenswert?
• ▲
▼
Torch M. schrieb:
> Leider funktioniert das Plugin SVD-Repository bei mir nicht, womit man
> sich ja die gesetzten Bits bzw. die Registerinhalte anschauen kann.

Kann man übrigens mit jedem gdb oder jlink gdp oder oder oder... Da 
sollte man sich mal bisserl über embedded debugging beschäftigen.
Du kannst auch via SWO Tracenachrichten (printf...) raushauen.
OP #4823622
Lesenswert?
• ▲
▼
Mit folgendem Code möchte ich zunächst ein Bit des entsprechenden 
Registers setzen und im Anschluss prüfen, ob es gesetzt wurde.

static const uint32_t TIM3_BASE_OWN = 0x40000400; //Basisadresse für 
Timer3-Register
volatile uint32_t *TIM3_BASE_MOD = (uint32_t*)(TIM3_BASE_OWN);
*TIM3_BASE_MOD |= 0x00000001;

Wie würde das mit deinem Code-Beispiel funktionieren?
(Firma: keine) #4823663
Lesenswert?
• ▲
▼
Torch M. schrieb:
> Mit folgendem Code möchte ich zunächst ein Bit des entsprechenden
> Registers setzen und im Anschluss prüfen, ob es gesetzt wurde.
>
> static const uint32_t TIM3_BASE_OWN = 0x40000400; //Basisadresse für
> Timer3-Register
> volatile uint32_t *TIM3_BASE_MOD = (uint32_t*)(TIM3_BASE_OWN);
> *TIM3_BASE_MOD |= 0x00000001;
>
> Wie würde das mit deinem Code-Beispiel funktionieren?

Uh? Das Setzen hast Du Dir ja schon selbst beantwortet, und das Lesen... 
Genau umgekehrt?

if (*TIM3_BASE_MOD & 0x00000001)
  ...
else
  ...

... natürlich durchgehend mit symbolischen Identifiern. Die ST CMSIS 
Library hat für jedes Bit einzelne symbolische Konstanten.

Übrigens könntest Du Dir beim Cortex mal Bit Banding ansehen, da ist 
jedes Bit im Systemadressbereich auf ein Long gemappt. Ganz praktisch.

Solltest Du WinIdea benutzen, hast Du im SFR Fenster jedes einzelne Bit 
schön lesbar decodiert, da brauchst Du programmatisch gar nichts zu tun.
#4823676
Lesenswert?
• ▲
▼
Torch M. schrieb:
> Leider funktioniert das Plugin SVD-Repository bei mir nicht, womit man
> sich ja die gesetzten Bits bzw. die Registerinhalte anschauen kann.

Bei EmBlitz werden manche Optionen nur noch bei Entrichtung eines 
jaehrlichen Beitrags von 49 EUR freigeschaltet.
Bin mir nicht ganz sicher, meinte aber irgendwo gelesen zu haben, dass 
die Registeransicht in diese Sparte faellt.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.