Forum: Mikrocontroller und Digitale Elektronik ST32 NVIC Adressen


von Thomas (Gast)


Angehängte Dateien:

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?

von Nop (Gast)


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.

von Thomas (Gast)


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.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Steht doch da: Reset value 0x00000000, also 32Bit pro Register.
Nach 32Bit / 4 Byte kommt dann das nächste Register mit wieder 32 
Enablebits.

#define NVIC_ISER0 0xE000E100
#define NVIC_ISER1 0xE000E104

usw

von Nop (Gast)


Lesenswert?

Thomas schrieb:

> Sry, aber das versehe ich nicht. Es steht nirgendwo, wo NVIC_SER1
> anfängt.

Dein erster Screenshot, das rot markierte. Mit Verweis auf Seite 209.

von Thomas (Gast)


Angehängte Dateien:

Lesenswert?

Besten Dank,

aber was ist jetzt mit den IR´s ab 95 ?
Die passen ja nun nicht mehr in ISER0-ISER2 rein ?

von Niklas G. (erlkoenig) Benutzerseite


Angehängte Dateien:

Lesenswert?

Wo hast du dieses Bild "ir01.jpg" überhaupt her? Im ARMv7M Architecture 
Reference Manual sieht das so aus. Es gibt also 16 ISER-Register.

von Thomas (Gast)


Lesenswert?

Das ist das "PM0214 Programming Manual" von ST. Auf diese Manual wird im 
Reference unter den Kapitel NVIC verwiesen.

Ist aber nicht das erste mal, dass das Reference Dinge verschweigt.

Beitrag #5580700 wurde von einem Moderator gelöscht.
von Niklas G. (erlkoenig) Benutzerseite


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.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


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.

von Thomas (Gast)


Lesenswert?

Besten Dank euch !

Dann weis ich jetzt, wo ich schauen muss, wenn es nicht weiter geht.

von Thomas (Gast)


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

von Nop (Gast)


Angehängte Dateien:

Lesenswert?

Thomas schrieb:

> aber was ist jetzt mit den IR´s ab 95 ?

Die F4-Familie hat keine so hohen Positionen, siehe Screenshot. Im 
selben Dokument (Reference Manual) findet sich im Kapitel 12.2 die 
Tabellen 61 und 62, die das bestätigen.

von Nop (Gast)


Lesenswert?

Mw E. schrieb:

> Erstmal kann ein 4 Byte aligned Register nicht an 0x0B Anfangen

Tut's auch nicht, es endet dort.

> und es wären nur 3 Register.

Korrekt, 0 bis 2, das sind drei Register.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


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.

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.