S5PV210中断处理的主要寄存器

《朱老师物联网大讲堂》学习笔记

学习地址:www.zhulaoshi.org


中断相关的寄存器

VICnINTENABLE

也就是interrupt enable,负责相应中断的使能,

VICnINTENCLEAR

也就是interrupt enable clear,负责相应中断的禁止。


有些CPU上面两个功能是用一个寄存器实现的,

这样的话中断使能要小心,

对它们的操作,要像操作cp15寄存器一样,

通过读,改,写来完成。



VICnINTSELECT

设置为irq或者fiq,一般设置为irq。

irq和fiq有什么区别?

irq是普通中断,fiq是快速中断,

fiq有更快的中断响应通道,但是只能有一个被设置为fiq。


CPU如何保证fiq比irq快啊?

1.fiq模式有专用的r8~r12,可以直接使用,不像其它模式,还要保存寄存器,

2.fiq的中断处理程序直接在异常向量表中,因为它是异常向量表中最后一个异常。




VICnIRQSTATUS和VICnFIQSTATUS

中断状态寄存器,是只读的,当发生中断时,硬件会自动将该位的寄存器置为1,表示中断发生,

软件在处理第二阶段第一阶段适时,就是靠查询这个寄存器来得到中断编号的。



VICnVECTPRIORITY0~VICnVECTPRIORITY31

中断优先级设置寄存器,设置多个中断同时发生时先处理谁后处理谁得问题,

一般来说高优先级的中断,可以打断低优先级的中断,从而嵌套中断,

不过也可以设置不支持嵌套中断。



VICnVECTADDR0~VICnVECTADDR31,VICnADDR
一共有32*4+4个寄存器,
210的寻找isr的机制,就是通过这些寄存器来实现的,
每一个中断源都有一个VECTADDR寄存器,把中断ISR地址直接放入这个寄存器接口即可,
VICnADDR这个寄存器是只读的,只需要读的,里面的内容是由硬件自动设置的,
当发生了相应的中断时,硬件会自动识别中断编号,并且会自动找到这个中断的VECTADDR寄存器,
然后将其读出复制到VICnADDR中,我们直接读出使用即可。
通过硬件实现,避免了软件查找中断源和ISR,提高了响应速度。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值