手册原文:http://www.ti.com/lit/ug/spru871k/spru871k.pdf,翻译参考自谷歌翻译。
目录
- 7.1简介
- 7.1.1 C64x + Megamodule中断控制器(INTC)的用途
- 7.1.2特性
- 7.1.3功能框图
- 7.1.4术语和定义
- 7.2中断控制器架构
- 7.2.1事件登记
- 7.2.2事件合并器
- 7.2.3中断选择器
- 7.2.3.1中断选择器操作
- 7.2.3.2中断错误事件
- 7.2.4异常合并器
- 7.3 C64x + Megamodule事件
- 7.4中断控制器 - CPU交互
- 7.4.1 CPU - 中断控制器接口
- 7.4.2中断事件的CPU服务
- 7.5注册
- 7.5.1事件登记
- 7.5.1.1事件标志寄存器(EVTFLAGn)
- 7.5.1.2事件集寄存器(EVTSETn)
- 7.5.1.3事件清除寄存器(EVTCLRn)
- 7.5.2事件合并器寄存器
- 7.5.2.1事件掩码寄存器(EVTMASKn)
- 7.5.2.2屏蔽事件标志寄存器(MEVTFLAGn)
- 7.5.3 CPU中断选择器寄存器
- 7.5.3.1中断复用寄存器(INTMUXn)
- 7.5.3.2中断异常状态寄存器(INTXSTAT)
- 7.5.3.3中断异常清除寄存器(INTXCLR)
- 7.5.3.4丢弃的中断屏蔽寄存器(INTDMASK)
- 7.5.4 CPU异常寄存器
- 7.5.4.1 CPU异常组合器掩码寄存器(EXPMASKn)
- 7.5.4.2屏蔽异常标志寄存器(MEXPFLAGn)
- 7.5.5高级事件发生器复用寄存器(AEGMUXn)
- 7.5.6特权和中断控制器寄存器
- 7.5.1事件登记
7.1简介
本节提供了目的并讨论了中断控制器的功能。
7.1.1 C64x + Megamodule中断控制器(INTC)的用途
C64x +系统提供各种各样的系统事件。 中断控制器提供了一种选择必要事件的方法,并将它们路由到适当的CPU中断和异常输入。 虽然您可以使用许多相同的系统事件来驱动其他外围设备,例如EDMA,但兆兆模块的中断控制器专用于管理CPU。
7.1.2特性
注意:所有C6000设备均不支持不可屏蔽中断(NMI),有关详细信息,请参阅设备特定的数据手册。
中断控制器将系统事件连接到CPU的中断和异常输入。中断控制器最多支持128个系统事件。
有128个系统事件充当中断控制器的输入。它们包括内部生成的事件(在megamodule中)和芯片级事件。事件列表将在后面的7.3节中列举。除了这128个事件外,INTC寄存器还接收不可屏蔽和复位事件,并直接路由到CPU。
中断控制器从这些事件输入向C64x + CPU输出信号:
•一个可屏蔽的硬件异常(EXCEP)
•12个可屏蔽硬件中断(INT4到INT15)
•一个可用作中断或异常(NMI)的不可屏蔽信号
•一个复位信号(RESET)
有关这些CPU中断/异常信号的更多信息,请参阅“TMS320C64x / C64x + DSP CPU和指令集参考指南”(SPRU732)。
中断控制器包括以下模块,以便于将事件路由到中断和异常:
•中断选择器 - 将任何系统事件路由到12个可屏蔽中断
•Event Combiner - 将大量系统事件减少到四个
•异常组合器 - 允许将任何系统事件组合在一起,以用于单个硬件异常输入
7.1.3功能框图
7.1.4术语和定义
本章中特别重要的术语是:
系统事件:内部或外部生成的任何信号,旨在通知CPU已发生某些活动和/或需要响应。
中断:由于存在外部或内部硬件信号(事件),提供重定向正常程序流的方法。
异常类似于中断,因为它们还重定向程序流,但异常通常与系统中的错误条件相关联。
有关本章中使用的术语的其他定义,请参阅本文档的附录A和附录B. 附录A描述了本参考指南中使用的一般术语,附录B定义了与内存和缓存架构相关的术语。
7.2中断控制器架构
C64x + megamodule中断控制器旨在提供灵活的系统事件管理。
此功能使用表7-1中列出的寄存器集实现。 本章提到了这些寄存器。 第7.5节提供了这些寄存器的详细说明。
7.2.1事件登记
中断控制器包含一组寄存器,用于管理控制器接收的系统事件的状态。 寄存器可以分组如下:
•事件标志寄存器(EVTFLAGx)
•清除标志寄存器(EVTCLRx)
•设置标志寄存器(EVTSETx)
事件标志寄存器捕获中断控制器接收的所有系统事件。 有四个32位寄存器来覆盖124个系统事件输入。 每个系统事件都映射到一个事件标志寄存器中的特定标志位(EFxx)。
通用事件标志寄存器结构如图7-2所示。
所有124个系统事件都单独映射到四个32位EVTFLAGx寄存器中的一个位。 这使得EVTFLAG0(EF03:EF00)的最低有效四位与系统事件无关。 这四个位保留,始终为零。 也就是说,没有与这些字段对应