如果应用程序项目安装了调用alt_irq_register()
函数的ISR,则可能会发现构建错误。
Nios II EDS 9.1版支持Nios II处理器上的可选外部中断控制器(EIC)接口。为了支持EIC接口,HAL包括增强的中断API。
创建BSP时,SBT会确定系统中的器件驱动程序支持哪些中断API。如果BSP中的所有已注册驱动程序都将自己标识为支持增强型API,则SBT会实施增强型API。版本9.1及更高版本中的所有Altera器件驱动程序都支持增强的API。
实施增强型API后,旧版中断API(包括alt_irq_register()
不可用。因此,如果应用程序代码包含对遗留API函数的调用,则会发生链接器错误。
此问题可能会影响直接调用alt_irq_register()
或其他传统中断API函数的应用程序项目,而不是依赖于BSP中的驱动程序以获得中断支持。
如果您的Nios II应用程序项目的源代码使用alt_irq_register()
注册ISR,或者包含ISR,则由于对alt_irq_register()
未定义引用,或者更改了对应用程序,您的应用程序可能无法在Nios II EDS版本9.1中编译。 ISR功能原型。
解决/修复方法
修改应用程序代码以使用新的增强中断API。要使用增强型API,必须修改多个函数调用和所有ISR函数原型。
有关支持增强型中断API的信息,请参阅Nios II软件开发人员手册的异常处理章节,或AN 595:向量中断控制器的使用和应用 。
如果您希望在硬件设计中使用EIC来加速中断响应时间,则必须升级到增强型API。增强型API也适用于Nios II处理器的内部中断控制器。
没有回复内容