zynq中断,SDK寄存器

中断来源分成三大类SPI,PPI,SGI总共96个ID号的中断,这96个中断要按照不同的优先级分配到两个处理器上,这就需要对中断进行管理:很多输入的中断给2个处理器核的中断控制器需要设置一些什么样的控制器寄存器。首先必须有全局使能,而具体到每一个中断的ID号,要设置是否使能(是否生处理器中断),以及优先级(同时发生先发生谁),还要指定中断信号发送给哪个处理器。

ICDDCR 开启或者关闭中断设置。(全局)
ICDICFR 配置中断触发模式。(2BIT)【一位表示触发类型,一位表示是否仅CPU0接受中断】
ICDIPR 中断优先级设置。(8BIT)【数值越低优先级级别越高】 对应有一个ICCPMR设置接受中断的优先级门限。
ICDIPTR 相应处理器选择。(8BIT)【if(bit0) select CPU0 if (bit1) select CPU1】留8位是预留更多核
ICDICER 中断屏蔽寄存器。(1BIT)
ICDISER 中断使能寄存器。(1BIT)
ICDICPR 清除中断标志位。(1BIT)

ICCIAR 读之得到正在发生的中断请求是什么ID号发出的(10BIT ),要求哪个处理器执行的(3BIT)。一个读的操作同时清除了所读到中断号的标志位。【读可以得到数,并且赋予了读这个动作本身有意义】.
ICCPMR 可执行中断优先级 默认是F0,也就说从0到EF的优先级都被允许中断.
ICCICR 是FIQ或者是IRQ.

具体设置某一个中断ID所对应的中断处理信息,SDK提供了库函数可以直接调用,
1,首先要中断向量要转跳到IRQ的服务程序。对应一下函数:
2, 有几十方式可以产生IRQ (ID号96个),所以我们要知道具体是哪个发生了中断号发生了IRQ中断。找到后对应调用相应的处理程序。
3,找到具体是哪个ID号的中断,下面步骤就是要对应再处理,可能要进行再细分(比如要118个GPIO可以产生52号中断要判断出具体哪一位)。以及进行其他相应处理。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Zynq中,中断是一种处理器暂停正在执行的当前任务,转而执行与中断相关的任务的机制。Zynq中断具有优先级的概念,优先级决定了中断被响应的顺序。 每个中断都有一个特定的优先级优先级数值越小表示优先级越高。当多个中断同时发生时,Zynq会根据中断优先级来决定哪个中断优先被处理。 Zynq中,有两种类型的中断优先级:硬件优先级和软件优先级。硬件优先级Zynq硬件定义,软件优先级由软件编写者进行定义。 硬件优先级中断控制器内部实现,是通过对中断请求信号进行优先级编码来实现的。每个中断请求都有一个对应的优先级。当多个中断请求同时到达中断控制器时,硬件会根据这些优先级进行比较,并选择优先级最高的中断请求来处理。硬件优先级在编程过程中无法修改,由硬件设计决定。 软件优先级由编程者在中断处理程序中定义。在Zynq中,可以通过配置寄存器来设置每个中断的软件优先级。软件优先级与硬件优先级相互独立,但软件优先级必须小于硬件优先级。软件优先级的设置允许开发者自定义中断的响应顺序,以满足特定需求。 总的来说,Zynq中断优先级是通过硬件优先级和软件优先级来确定的。硬件优先级由硬件设计决定,而软件优先级由编程者在中断处理程序中进行设置。根据这些优先级Zynq选择性地处理中断请求,以确保高优先级中断可以及时响应和处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值