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

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