21ic下载_DSPC6678学习-中断机制

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3 中断机制

3.1 KeyStone的中断系统

中断子系统由两部分组成:CIC芯片中断控制器和CorePac IC核的中断处理控制器。(最新修改,是将之前的INTC修改成了CIC)

芯片中断控制器CIC的主要功能就是将系统事件system interrupt映射为corePac内部的主机事件host interrupt。

由于核中断控制器最多只能处理128个主机事件,因此CIC的一个重要功能就是将多个系

统事件(总数成百上千)映射为多个或者单个主机事件。

以CIC0为例,观察其输入和输出,输入的是系统事件sys_event,输出的主机事件host_event,右侧是对应的DSP core。

CIC0 的左边输入共有5+91+64=160 个系统事件,而其的输出给Core0 的为17+8=25 个主机事件(手册上描述的是二级事件,但转换后的这17 个二级事件与CorePac 里面可以处理的事件(PRIMARY EVENT)是一一对应的

3.1 第一级:corePac中断控制器

如上所示:

左侧的RESET是复位信号

左侧的NMEVT是不可屏蔽中断信号

左侧的普通事件信号EVT[127:4]是128个system event input,是c66x corePac的第一级中断

右侧的RESET、EXCEP、NMI和INT[15:4]是CPU上面的中断,其中INT[15:4]是可屏蔽中断

中间的部分是CorePac中断控制寄存器,主要作用是将128个主机事件转为为12个可屏蔽中断。

⏹CorePac的中断控制器中的128个普通事件分为3个部分

◆第一部分:组合事件

●Event combiner是事件组合器,可以将EVT[127:4]的部分系统事件输入

中断合并到EVT[0]、EVT[1]、EVT[2]、EVT[3](这几个是事件组合器的输

出)

◆CIC片上中断控制器映射过来的主机事件中断,包括CIC0 OUT xx、CIC1 OUT xx

和CIC2 OUT xx和CIC3 OUT xx-第二级芯片中断控制器的输出

◆其他部分

⏹CorePac中断控制器的中断映射是通过中断复用寄存器,每个CorePac有三个,分别

是INTMUX1、INTMUX2和INTMUX3,每个复用寄存器对应4个可屏蔽中断INT,总共

配置12个可屏蔽中断。

中断复用寄存器对应图中的硬件单元是Interrupt selector

◆interrupt selector是中断选择器,可将128个系统初级中断事件(包括上面

提到的4个事件组合器的输出EVT[3:0])输入映射到12个可屏蔽中断上面

(INT[15:4])

3.2第二级,芯片中断控制器CIC

通过观察128个system event inputs,发现其中并不包含全部的中断事件,如不包含EDMA的三个cc的完成中断等。但在这128个system event inputs中,又存在一个interrupt controller output,如下图所示:

片上中断控制器是指CICO-2,其输出表示可以将二级中断映射到中断控制器上面,然后中断控制器的输出再经事件组合器或者中断选择其,复用到可屏蔽中断上面,从而可以响应二级中断。

片上中断控制器包含的二级中断如下面所示:

(1)CIC0

(2)CIC1

(3)CIC2

(4)CIC3

3.2.1 什么是system event ?什么是host event?

system event只是的与CIC芯片中断控制器的输入事件(中断来至外设)

host event指的是核中断处理控制器的输入事件

3.2.3 芯片中断控制器的操作

CIC的事件映射功能,如下图所示,首先将系统事件映射到channel通道这哦哦那个,然后每个channel映射到主机事件中(这个映射是固定的)。这样才可以被corepac核中断控制器处理,因为其直接处理主机事件。

整个映射又分为事件映射和信道映射。对应两个寄存器,分别是信道中断映射寄存器CH_MAP_REGx和HINT_MAP_REGx,前者保存每个系统事件对应得信道,后者完成信道channel到host event的映射。

(1)信号中断映射寄存器CH_MAP_REGx

四个芯片中断控制器都有对应的总共256个的信道中断映射寄存器,每一个中断映射寄存器可配置4个系统事件sys_event。

CH0_MAP表示系统事件0对应的信道号,也就是CICn CH0_MAP对应8bit表示的数值。由于每个系统事件只能配置8Bit信息,那么表示最多可以映射的信道个数是256.

系统事件sys_event在寄存器CH_MAP_REGx的位置是固定的。

相关文档
最新文档