zynq中断包括三种:
- 可屏蔽中断:可通过在中断屏蔽寄存器中设定位掩码来闭,包括软中断、外设中断等。目前使用到的中断都是可屏蔽中断。
- 不可屏蔽中断:如上电、外部重启和严重的设备失效。
- 处理器间中断:zynq7100中有两个arm核,因此如果涉及核间通信会产生核间中断。
zynq7100的核0和核1都有中断控制功能,因此有一个“通用中断控制器(GIC)”进行统一的中断识别、使能、优先级控制、分派,因此在使用中断过程中首先需要进行的就是GIC的初始化。
GIC初始化包括如下内容:
- 初始化GIC设备实例
- 初始化中断控制器
- 初始化CPU异常功能,向CPU注册异常处理回调函数,使能异常处理供
其次,需要具体中断设备的初始化,以及该设备中断的初始化:
- 初始化设备实例
- 设置中断优先级
- 关联中断服务程序(通常在中断服务程序中需要清除中断标志位)
- 使能中断
PS:在使用PS自带网口进行通信的过程中,没有显式的中断服务程序关联的操作,但是需要在while循环中显式调用xemacif_input函数获取网口数据。