Kritisches Problem
Sie können Build-Fehler beobachten, wenn Ihr Anwendungsprojekt
installiert eine ISR, die die alt_irq_register()
Funktion aufruft.
Die Nios II EDS Version 9.1 bietet Unterstützung für optionale Versionen Externe Interrupt-Controller-Schnittstelle (EIC) auf dem Nios II Prozessor. Zur Unterstützung der EIC-Schnittstelle enthält die HAL einen verbesserten Interrupt API.
Wenn Sie einen BSP erstellen, bestimmt das SBT, welcher Interrupt API(en) die Gerätetreiber in Ihrem System unterstützen. Wenn alle registriert sind Treiber im BSP identifizieren sich als unterstützen die erweiterten API implementiert das SBT die erweiterte API. Alle Altera Gerätetreiber in Version 9.1 und neuer wird die erweiterte API unterstützt.
Wenn die erweiterte API implementiert ist, ist der Legacy-Interrupt
API, einschließlich alt_irq_register()
, ist nicht verfügbar.
Wenn der Anwendungscode daher einen Aufruf einer legacy-API enthält
Funktion, tritt ein Linker-Fehler auf.
Dieses Problem kann Sich auf Anwendungsprojekte auswirken, die anrufen alt_irq_register()
oder
andere Legacy-Interrupt-API-Funktionen direkt, anstatt je nach
auf Treibern im BSP zur Interrupt-Unterstützung.
Wenn sich der Quellcode Ihres Nios II-Anwendungsprojekts registriert
eine ISR mit alt_irq_register()
oder eine ISR verwendet,
Ihre Anwendung kann in der Nios II EDS-Version nicht kompiliert werden
9.1 aufgrund undefinierter Hinweise auf alt_irq_register()
,
oder um eine Änderung des ISR-Funktionsprototyps zu bewirken.
Ändern Sie Ihren Anwendungscode, um die neue erweiterte Interrupt-API zu verwenden. Um die verbesserte API zu verwenden, müssen Sie mehrere Funktionsanrufe und alle ISR-Funktionsprototypen ändern.
Informationen zur Unterstützung der erweiterten Interrupt-API finden Sie im Abschnitt Ausnahmenbehandlung im Handbuch des Nios II Software-Entwicklers oder in AN 595: Vectored Interrupt Controller Usage and Applications.
Sie müssen auf die erweiterte API aktualisieren, wenn Sie einen EIC in Ihrem Hardwaredesign verwenden möchten, um die Interrupt-Reaktionszeit zu verkürzen. Die verbesserte API funktioniert auch mit dem internen Interrupt-Controller des Nios II Prozessors.