一文读懂DSP的中断系统

DSP中断系统详解

中断系统架构

TMS320C6678的中断系统框架为CIC->INTC->CORE

CIC(4组)负责管理整个芯片层面来自各种外设的至多1024个系统事件(ps:这里是至多1024个,并不是系统事件正好有1024个,看文档时大家可能会在这里产生疑问)为什么至多1024个后续会讲到。

INTC可将CIC输出的128个事件映射到每个核的12个通道,整个中断的流程就是这样。

中断系统如下图所示:

接下来对系统各个部分展开详细讲解

CIC

CIC是芯片级中断控制器,根据数据手册看到一共有256个32位的系统事件寄存器,每8位记录一共系统事件,因此最多有32/8*256=1024个系统事件。CIC可以映射256个信道给核去处理,也就是CIC0和CIC1总共映射256个中断事件给8个核,core0-core3处理CIC0的128个中断事件,core4-core7处理CIC1的128个中断事件。

INTC

接下来介绍INTC的工作原理,INTC的输入来源有RESER、NMEVT和EVT[127:0](普通系统事件从CIC映射来的128个输出通道),EVT每一位对应一个中断源,最终会映射到INT[15:4](12个中断输入)上,INTC维护着一个中断服务表,存放着各个中断服务函数(ISR)的入口地址。

那么问题来了,128个事件对应12个输出这不是不够用吗,这里就有一个方法是中断复用,12个中断入口可以处理多个共享该入口的中断事件,多个共享的中断事件公用一个ISR函数,在函数中通过状态寄存器读对应事件号,然后对不同事件号做不同处理。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值