STM32F4 Interrupt Prioritäten

Gast #3927523
Lesenswert?
• ▲
▼
Hallo Leute.

Ich habe ien Verständnisproblem mit den Interruptprioritäten des 
Stm32F4xx

Laut ARM steht in den CortexM4 Kernen jedem Interrupt eine 8bit Priority 
zu. Doch im Programming Manual von STM steht nur was von 16 Prioritäten 
(4 bit).
Was ist da los?


Ebenfalls kann man die Prioritäten in Sub- und normale Prioritäten 
aufspalten. Dafür gibt es einen wert, der angibt, wie vile bits zur Sub- 
und wie viele zur normalen Priorität gehören (Binary Point und Priority 
Grouping). (siehe Anhang)
Es ist hier so, dass es hier ebenfalls nur für eine 4 bit Priorität 
ausgelegt ist. Zusätzlich ist der Initialzustand des Registers so, dass 
das Grouping kein in der Tabelle angegebener Wert ist.  Nämlich 0 für 
diese Bits.

Was verstehe ich hier nicht?

wenn es tatsächlich nur 4 Priority-Bits gibt, was passiert dann mit den 
anderen 4? Die müssen ja auch da sein. STM wird doch sicherlich keinen 
speziell abgewandelten Core verwenden.

Hoffe das sich das schnell klären lässt :)
Angehängte Dateien:
#3927554
Lesenswert?
• ▲
▼
M. H. schrieb:
> Laut ARM steht in den CortexM4 Kernen jedem Interrupt eine 8bit Priority
> zu. Doch im Programming Manual von STM steht nur was von 16 Prioritäten
> (4 bit).
> Was ist da los?

Da steht sicher bis zu 8-Bit Priority. Die genaue Anzahl ist nämlich 
"Implementation defined", üblich sind 3, 4 oder 5 Bits.

M. H. schrieb:
> STM wird doch sicherlich keinen speziell abgewandelten Core verwenden.

ARM bietet den Cortex-M4 Core mit variabler Priority Bitzahl an.
#3927556
Lesenswert?
• ▲
▼
Seite 200 Tabelle 47 aus dem programming manual 
(http://www.st.com/web/en/resource/technical/document/programming_manual/DM00046982.pdf) 
sagt:

Each priority field holds a priority value, 0-255. The lower the value,
the greater the priority of the corresponding interrupt. The processor
implements only bits[7:4] of each field, bits[3:0] read as zero and
ignore writes.


Bei den NVICs kochen die Hersteller gerne ihr eigenes Süppchen, weil 
eine höhere Komplexität z.B. mit einem höheren Stromverbrauch 
einhergeht. Soweit ich weiß haben die Cortex M3 bzw. M4 meistens 4 Bit 
implementiert. Bei den Cortex M0 gibt es nur 3 Bit. Ausnahmen bestätigen 
natürlich die Regel: Die Tiva-Chips von TI (M4) haben auch nur 3 Bit.
Gast #3927608
Lesenswert?
• ▲
▼
Ok. vielen Dank.

Ich hab noch eine Frage:

da die bits für das Priority grouping nach dem Reset auf 0 stehen, 
wüsste ich gerne, was passiert, wenn man diese Bits nicht initialisiert 
und den NVIC trotzdem verwendet. Wie werden dann Prioritäten gehandhabt?
Gast #3927675
Lesenswert?
• ▲
▼
M. H. schrieb:
> Wie werden dann Prioritäten gehandhabt?

Der zuerst auftretende Interrupt hat dann gerade die Priorität und der 
Rest wird ignoriert.


Hier noch Info zum STM32

NVIC_PriorityGroup_0: 0 Pre-emption priorities, 16 Sub-priorities
NVIC_PriorityGroup_1: 2 Pre-emption priorities, 8 Sub-priorities
NVIC_PriorityGroup_2: 4 Pre-emption priorities, 4 Sub-priorities
NVIC_PriorityGroup_3: 8 Pre-emption priorities, 2 Sub-priorities
NVIC_PriorityGroup_4: 16 Pre-emption priorities, 0 Sub-priorities


Beispiel:

void SysTick_Init(void) {

  RCC_ClocksTypeDef RCC_Clocks;

  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
  NVIC_SetPriority(SysTick_IRQn, 
NVIC_EncodePriority(NVIC_GetPriorityGrouping(),10, 0));

  RCC_GetClocksFreq(&RCC_Clocks);
  SysTick_Config(RCC_Clocks.HCLK_Frequency / 100);
}

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.