TI C66x DSP 系统events及其应用 - 5.3.1(Interrupt之eventCombiner理解)

前面讲到对于中断来说,eventCombiner将INTC的输入event 4~127分为四个group,即evenCombiner的四个输出event 0~3. 这样event 0~3与event 4~127一起作为Interrupt Sector的输入。之所以这样做是因为CPU仅有12个INT输入(INT4~15),而systemEvent有4~127共124个event,所以12个CPU的INT输入无法与systemEvent一一映射,所以自然地CPU的12个中断将会打包服务某些event组,而这里eventCombiner就是将systemEvent 4~127分为四组,输出event 0~3(4个event表示4个event group),然后将event 0~3与CPU的中断输入关联起来(实际上event是与INT对应的vector关联),如果event 0~3中的event(如 event 2)触发了中断,将会执行event 2对应的ISR,然后在该ISR里遍历event 2对应的event group(即event 64~95,因为64/22 ~ 95/32 =2, 而96/32=3))中所有在masked event flag相应位为1(1表示该event被触发了,如event 65,实际上这里首先是event 65先触发,然后event 65作为eventCombiner的输入,将会输出event 2,从而event 2被触发,从而才能执行event 2对应的ISR)的event。这样就实现了CPU有限的12个中断输入,可以服务event 4~127共124个event。

当然也可以直接将event 4~127中的某个event(如event 65)与CPU的某个中断输入(即vector)关联起来(不再通过eventCombiner),这样event 65触发后就直接执行对应的vector,转而执行event 65对应的ISR。为了不让event 65通过eventCombiner输出event 2,并触发event 2的ISR(没有必要了,因为这里已经将event 65直接与CPU中断输入联系起来),需要设置event mask flag寄存器,将event 65在eventCombiner中屏蔽掉,这样当event 65触发了,eventCombiner就不会输出event 2了,从而也不会触发event 2的ISR了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值