Forum: Mikrocontroller und Digitale Elektronik STM32F2xx (Cortex-M3): Global Interrupt


von Blub (Gast)


Lesenswert?

Hallo!

Hat der STM32F2xx kein "Global Interrupt"-Flag zum ein- und ausschalten 
aller Interrupts!?

Danke & Gruß
Blub

von (prx) A. K. (prx)


Lesenswert?

Doch. Siehe Befehl CPS.

von Dr. Sommer (Gast)


Lesenswert?

Doch. "cpsie I" einschalten, "cpsid I" abschalten. Das steht neben einer 
Menge weiterer nützlicher Informationen in der Dokumentation zum Core, 
dem ARMv7M Architecture Reference Manual.

von (prx) A. K. (prx)


Lesenswert?

Man sollte sich aber stets überlegen, ob das wirklich notwendig ist. 
Meist kommt man mit einem passenden Prioritätskonzept und dem 
BASEPRI/BASEPRI_MAX Register ebenfalls zu Ziel, ohne das ganze 
Interrupt-System mit dem Vorschlaghammer lahmlegen zu müssen.

von Blub (Gast)


Lesenswert?

Okay, danke. Schau ich mir mal alles in Ruhe an!

von Blub (Gast)


Lesenswert?

Hi!

Ich finde kein Register oder ein Flag beim STM32F2xx, dass CPS heißt.
Im "ARMv7-M Architecture Reference Manual" (Kapitel B5.2.1, Seite 801) 
habe ich es auch gefunden ...

Gruß
Blub

von Dr. Sommer (Gast)


Lesenswert?

Das ist auch kein Register, sondern eine Prozessorinstruktion. Das davon 
modifizierte Register heißt CPSR und ist Teil des PSR. Das ganze gilt 
übrigens für die gesamte ARMv7M-Architektur (und ist deswegen auch nur 
für diese dokumentiert), damit u.a. auch für die Cortex-M3,4 und damit 
auch für die STM32. Spezifisch für den STM32F2xx ist das ganze 
keineswegs, und deswegen auch nicht in dessen Dokumentation zu finden...

von Blub (Gast)


Lesenswert?

Danke für den Hinweis.
Die Funktionen __enable_irq() und __disable_irq() habe ich in der 
cmsis_iar.h gefunden.
Allerdings sind die in der intrinsics.h deklarierten Funktionen 
__get_CPSR und __set_CPSR nicht verfügbar. :(

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.