ZYNQ7000 ()中断控制部分的原理和SDK函数以及中断的试验

中断控制部分的原理和SDK函数以及中断的试验

上一视频
(视频 17)介绍了中断处理的情景,从 IRQ中断向量表转跳到中断服
务程序保存现场后直接驱动小灯反转。为了凸显其中断处理过程,那个试验实际
忽略很多中断设置细节,在这一个视频我们给大家详细展开。

PDF中中断部分两个图。
在这里插入图片描述
在这里插入图片描述
中断来源分成三大类
SPI Shared Peripheral Interrupts)),PPI CPU Private Peripheral Interrupts)),SGI Software Generated Interrupts 总共 96个 ID号的中
断,这 96个中断要按照不同的优先级分配到两个处理器 (CPU0 CPU1)上,这就需
要对中断进行管理:首先要想一下要我们自己来做一个管理这么多输入的中断给
2个处理器核的中断控制器需要设置一些什么样的控制器寄存器。首先必须有全
局使能,而具体到每一个中断的 ID号,要设置是否使能(是否真的产生处理器
中断),以及优先级(也就是同时发生先 响 应谁),还要指 定中断信号发送给哪个
处理器。基本也就这些了,我们通过来看 UG585来关注这几个寄存器。
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给我们提供了什么样的库函数可以直接调用,并一起来看看其实现
过程。
接下来我给大家讲讲实际中断的情景
,以及对应的 SDK函数操作。
STEP 1,首先要中断向量要转跳到 IRQ的服务程序。对应一下函数:
STEP 2, 有几十方式可以产生 IRQ (ID号 96个 ),所以我们要知道具体是哪个发生
了中断号发生了 IRQ中断。找到后对应调用相应的处理程序。
STEP 3,找到具体是哪个 ID号的中断,下面步骤就是要对应再处理,可能要进行
再细分(比如要 118个 GPIO可以产生 52号中断要判断出具体哪一位)。以及进
行其他相应处理。
这里我们就进行一个试验。
(本课程重在理解实验原理, 过程略,看视频讲解 )

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值