ST32 NVIC Adressen

Gast #5580663
Lesenswert?

Hallo,

habe ein Problem, IR´s zu aktivieren, die an einer größeren Position als 
31 stehen. Bis zur Position 31 mache ich das so.

#define NVIC_ISER 0xE000E100

Für Timer 2 z.B

NVIC_ISER |= 0x10000000;

Geht auch, aber wie läuft das jetzt für einen IR, der an einer größeren 
Position als 31 steht?
Angehängte Dateien:
Gast #5580665
Lesenswert?

Thomas schrieb:

> Geht auch, aber wie läuft das jetzt für einen IR, der an einer größeren
> Position als 31 steht?

Nimmste halt die anderen Adressen, also NVIC_SER1 oder NVIC_SER2. Dann 
natürlich den Offset abziehen, also Nummer 32 (Zählung beginnt bei 0) 
wäre dann 0x1 in NVIC_SER1.
Gast #5580675
Lesenswert?

Nop schrieb:
> Thomas schrieb:
>
>> Geht auch, aber wie läuft das jetzt für einen IR, der an einer größeren
>> Position als 31 steht?
>
> Nimmste halt die anderen Adressen, also NVIC_SER1 oder NVIC_SER2. Dann
> natürlich den Offset abziehen, also Nummer 32 (Zählung beginnt bei 0)
> wäre dann 0x1 in NVIC_SER1.

Sry, aber das versehe ich nicht. Es steht nirgendwo, wo NVIC_SER1 
anfängt.
Beitrag #5580700 wurde von einem Moderator gelöscht.
Persönliche Seite #5580701
Lesenswert?

Thomas schrieb:
> Das ist das "PM0214 Programming Manual" von ST.

Bei Cortex-M/ARM-spezifischen Dingen sollte man sich immer direkt an die 
Doku vom ARM halten. Die ist i.A. sehr gut, vollständig und viel besser 
als die von ST, aber unübersichtlicher, weil sie alle 
Prozessorkerne/Varianten abdeckt. Warum ST mein das (schlecht) 
duplizieren zu müssen weiß man nicht.
Die STM32Fxx Reference Manuals von ST sind nur für die Peripherie. Der 
NVIC gehört zum Kern von ARM und ist daher bei ARM dokumentiert.
(Firma: fritzler-avr.de) #5580703
Lesenswert?

Es verschweigt nichts, diese Register existieren in deinem STM32 auch 
nicht.
Die 16 Register brauchts nur wenn auch wirklich alle 256 IRQs im 
Silizium vorhanden sind.
Hat dieser STM32 hier aber nicht, also reichen derer 4 Register.
Denn er hat nur 101 IRQ Quellen.

Nen Fehler scheints aber zu geben im Manual.
Erstmal kann ein 4 Byte aligned Register nicht an 0x0B Anfangen und es 
wären nur 3 Register.

Geh einfach von aus, dass dort 4 Register hintereinander rumfliegen.

Nenn doch einfach mal welcher STM32 das ist.
Gast #5580705
Lesenswert?

Mw E. schrieb:
> Es verschweigt nichts, diese Register existieren in deinem STM32
> auch
> nicht.
> Die 16 Register brauchts nur wenn auch wirklich alle 256 IRQs im
> Silizium vorhanden sind.
> Hat dieser STM32 hier aber nicht, also reichen derer 4 Register.
> Denn er hat nur 101 IRQ Quellen.
>
> Nen Fehler scheints aber zu geben im Manual.
> Erstmal kann ein 4 Byte aligned Register nicht an 0x0B Anfangen und es
> wären nur 3 Register.
>
> Geh einfach von aus, dass dort 4 Register hintereinander rumfliegen.
>
> Nenn doch einfach mal welcher STM32 das ist.

Das ist der STM32F413VG
(Firma: fritzler-avr.de) #5580720
Lesenswert?

NUnja, mal wieder die Db Qualität von ST.

"52 maskable interrupt channels (not including the 16 interrupt lines of 
Cortex®-M4 with FPU)"

Aber in der Tabelle sins 101 IRQ Quellen.
Die 52 Quellen passen natürlich in 2 Register, daher stehen auch nur 2 
Register in dem anderen Paper.

Beim Refman vom F205 steht zB was von:
"81 maskable interrupt channels (not including the 16 interrupt lines of 
Cortex®-M3)"
Die IRQ Quellen gehen dann auch bis Position 80.

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