清水模板厂家
免费服务热线

Free service

hotline

010-00000000
清水模板厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

FPGA 101:如何在Zynq SoC上使用中断 免费猫

发布时间:2020-02-17 13:11:38 阅读: 来源:清水模板厂家

FPGA 101:如何在Zynq SoC上使用中断 - FPGA/CPLD - 电子工程网

共享外设中断非常有趣,因为它们非常灵活。可将它们从I/O外设(共44个中断)或FPGA逻辑(共16个中断)路由至两个CPU中的一个,但也可以将中断从I/O外设路由至设备的可编程逻辑侧,参见图2。

在Zynq SoC上处理中断

在Zynq SoC中发生中断时,处理器会采取以下措施:

1. 将中断显示为挂起;

2. 处理器停止执行当前线程;

3. 处理器在协议栈中保存线程状态,以便在中断处理后继续进行处理;

4. 处理器执行中断服务例程,其中定义了如何处理中断;

5. 在处理器从协议栈恢复之前,被中断的线程继续运行;

中断属于异步事件,因此可能同时发生多个中断。为了解决这一问题,处理器会对中断进行优先级排序,从而首先服务于优先级别最高的中断挂起。

为了正确实现这一中断结构,需要编写两个函数:一是中断服务例程,用于定义中断发生时的应对措施;二是用于配置中断的中断设置。中断设置例程可重复使用,允许构建不同的中断。该例程适用于系统中的所有中断,将针对通用I/O(GPIO)设置和使能中断。

如何在SDK中使用中断

可使用赛灵思软件开发套件(SDK)中的独立板支持包(BSP)在物理硬件上支持并实现中断。BSP具备众多功能,可显著降低创建中断驱动系统的任务难度。它们位于带有以下报头的文件中:

Xparameters.h – 该文件包含处理器的地址空间和设备ID;Xscugic.h – 该文件包含配置驱动程序以及GIC的使用范围;Xil_exception.h – 该文件包含Cortex-A9的异常函数。

为了对硬件外设进行寻址,我们需要知道想要使用的设备(也就是GIC)的地址范围和设备ID,这些信息大多位于BSP报头文件xparameters下。但是xparameters_ps.h(无需在您的源代码中申报该报头文件,因为它包含在xparameters.h文件中)提供了中断ID。我们可在源文件中使用这个标记有中断的“ID”(GPIO_Interrupt_ID),使用方式如下:

垂柳种植技术

蛋疼小说全集免费阅读

武汉故事会

炎黄小说