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?
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.
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.
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
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.
Besten Dank, aber was ist jetzt mit den IR´s ab 95 ? Die passen ja nun nicht mehr in ISER0-ISER2 rein ?
Wo hast du dieses Bild "ir01.jpg" überhaupt her? Im ARMv7M Architecture Reference Manual sieht das so aus. Es gibt also 16 ISER-Register.
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.
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.
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.
Besten Dank euch ! Dann weis ich jetzt, wo ich schauen muss, wenn es nicht weiter geht.
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
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.




