Artikel-ID: 000079588 Inhaltstyp: Fehlerbehebung Letzte Überprüfung: 01.01.2015

Build-Fehler bei Interrupt-API-Anrufen

Umgebung

  • Intel® Quartus® II Anmeldungs-Edition
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT

    Kritisches Problem

    Beschreibung

    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.

    Lösung

    Ä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.

    Zugehörige Produkte

    Dieser Artikel bezieht sich auf 1 Produkte

    Intel® programmierbare Geräte

    Der Inhalt dieser Seite ist eine Kombination aus menschlicher und computerbasierter Übersetzung des originalen, englischsprachigen Inhalts. Dieser Inhalt wird zum besseren Verständnis und nur zur allgemeinen Information bereitgestellt und sollte nicht als vollständig oder fehlerfrei betrachtet werden. Sollte eine Diskrepanz zwischen der englischsprachigen Version dieser Seite und der Übersetzung auftreten, gilt die englische Version. Englische Version dieser Seite anzeigen.