Gast
#3287617
Hallo! Hat der STM32F2xx kein "Global Interrupt"-Flag zum ein- und ausschalten aller Interrupts!? Danke & Gruß Blub
|
Anzeige
|
STM32F2xx (Cortex-M3): Global Interrupt
Gast
#3287617
Hallo! Hat der STM32F2xx kein "Global Interrupt"-Flag zum ein- und ausschalten aller Interrupts!? Danke & Gruß Blub Doch. Siehe Befehl CPS.
Gast
#3287623
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. 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.
Gast
#3287691
Okay, danke. Schau ich mir mal alles in Ruhe an!
Gast
#3289031
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
Gast
#3289039
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...
Gast
#3289179
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. :( Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|