文章 ID: 000079588 内容类型: 故障排除 上次审核日期: 2021 年 08 月 29 日

中断 API 调用构建错误

环境

    英特尔® Quartus® II 订阅版
BUILT IN - ARTICLE INTRO SECOND COMPONENT

关键问题

说明

如果您的应用程序项目, 您可以观察构建错误 安装一个调用该函数的 alt_irq_register() ISR。

Nios II EDS 版本 9.1 包括可选的支持 Nios II 处理器上的外部中断控制器 (EIC) 接口。 为支持 EIC 接口,HAL包含一个增强的中断 API。

当您创建 BSP 时,SBT 确定哪个中断 API(s) 系统支持的设备驱动程序。如果全部已注册 BSP 中的驱动程序表明自己支持增强型 API,SBT 实施增强的 API。所有Altera设备驱动程序 在版本 9.1 和更高版本中支持增强的 API。

实施增强型 API 后,传统中断 API(包括 alt_irq_register() API)不可用。 因此 , 如果应用程序代码包含对传统 API 的调用 函数, 发生链接器错误。

此问题可能会影响调用或推广的应用项目 alt_irq_register() 其他传统中断 API 功能直接而不是取决于 在 BSP 中的驱动程序上进行中断支持。

如果您Nios II应用程序项目的源代码寄存器 使用 alt_irq_register() 或包括 ISR 的 ISR, 您的应用程序可能无法在Nios II EDS 版本中编译 9.1,由于未定义的参考 alt_irq_register() , 或者更改为 ISR 功能原型。

解决方法

修改应用程序代码,以使用新的增强型中断 API。要使用增强的 API,您必须修改多个函数调用和所有 ISR 函数原型。

有关支持增强型中断 API 的信息,请参阅Nios II 软件开发人员手册的异常处理章节 ,或 AN 595:矢量化中断控制器使用和应用程序

如果您希望在硬件设计中使用 EIC,必须升级到增强的 API,以加快中断响应时间。增强的 API 还可与 Nios II 处理器的内部中断控制器配合使用。

相关产品

本文适用于 1 产品

英特尔® 可编程设备

1

本页面上的内容是原始英文内容的人工翻译与计算机翻译的组合。我们提供此内容是为了您的便利并且仅供参考,未必完整或准确。如果本页面的英文版与翻译版之间存在任何冲突,应以英文版为准。 查看此页面的英语版本。