Guten morgen, ich habe die Aufgabe einen bestehenden Bildverarbeitungs-Core in die Avalon Switch Fabric des Nios II einzubauen. Soweit funktioniert auch alles, nur möchte ich nun den Avalon Slave einen Interrupt erzeugen lassen und genau dieser Punkt bereitet mit Probleme. Der Avalon Slave erzeugt einen über 2 (zu kurz ?) Pulse andauernden IRQ puls. Dieser wurde als 'interrupt sender' im Component Editor deklariert und als 'associated addressable interface' habe ich den Namen meines Cores eingetragen. Wie gehe ich nun weiter vor ? Braucht mein Avalon Slave ein dediziertes IRQ-Bit Registers, welches ich in der Interrupt Routine zurücksetzte ? Vielleicht kennt sich ja jemand diesbezüglich aus ! Danke, Jens
Wo ist denn der Interrupt angeschlossen? Außerdem sehe ich nicht, wo momentan Dein Problem liegt. Was funktioniert denn nicht? Duke
Der Interrupt geht direkt an den Nios II (e). Meine ISR wird aufgerufen, nur jedoch nicht mehr verlassen. Da sich mein Interrupt Signal (vom Slave kommend) ja autmatisch zurücksetzt, habe ich kein spezielles Register zum Deaktivieren des Interrupts (aus der ISR heraus) vorgesehen (wie dies z.B. in der Altera PIO Beispielen gemacht wird). Gruss, Jens
Ein Auszug aus der Avalon-MM Spezifikation: An interrupt sender drives a single interrupt signal to an interrupt receiver. The timing of the irq signal must be synchronous to the rising edge of its associated clock, but has no relationship to any transfer on any other interface. irq must be asserted until the interrupt has been acknowledged on the associated Avalon-MM slave interface. An Avalon-MM slave can only include one interrupt sender. The interrupt receiver typically determines how to respond to the event by reading an interrupt status register from an Avalon-MM slave interface. The mechanism used to acknowledge an interrupt is component specific. Damit ist wohl alles gesagt. Die Komponente muss den IRQ aktiv setzen, und in der ISR muss der IRQ per Programm zurückgesetzt werden. Im übrigen: Achte bitte auf die Taktdomäne! Grüße, Harald
Jens schrieb: > kein spezielles > Register zum Deaktivieren des Interrupts (aus der ISR heraus) vorgesehen > (wie dies z.B. in der Altera PIO Beispielen gemacht wird Ok, damit und mit der Erklärung von Harald habe ich es verstanden. Im Prinzip brauchst Du noch einen kleinen Interrupt-Controller. Duke
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.