系统配置和中断.pptVIP

  • 8
  • 0
  • 约1.13万字
  • 约 70页
  • 2019-08-29 发布于广东
  • 举报
4.3.3 全局中断使能 状态寄存器STO中有一个全局中断使能位INTM,在初 始化程序和主程序中,常常需要使用该位对DSP的全局中断进行打开和关闭操作。特别是初始化过程中,需要关全局中断,而在主程序开始执行时,需要开全局中断。关全局中断和开全局中断的汇编语言指令如下: SETC INTM;把INTM位置1,关全局中断 CLRC INTM;把INTM位清0,开全局中断 执行完中断服务子程序后,一定要打开全局中断。因为进入中断服务程序时,系统自动关中断。所以从中断返回时需要重新打开全局中断。注意:不允许中断嵌套。 4.4 中断响应的过程 下面介绍某一外设中断请求的响应过程: (1)某一外设发出中断请求; (2)如该外设的中断请求标志位(IF)为1,且该外设的中断使能位(IE)为1,则产生一个到PIE控制器的中断请求;如果中断没有被使能,则中断请求标志位(IF)为1的状态保持到被软件清0。 (3)如果不存在相同优先级(INTn)的中断请求,那么PIRQ会使PIE控制器产生一个到CPU的中断请求(INTn),为2个CPU时钟宽度的低电平脉冲。 (4)中断请求设定CPU的中断标志寄存器(IFR),如果通过设置中断屏蔽寄存器(IMR) CPU中断已被使能,CPU会中止当前的任务,将INTM置1,以屏蔽所有可屏蔽的中断,保存上下文,并且开始为高优先级的中断(INTn)执行通用中断服务子程序(GISR)。CPU自动产生一个中断应答,并向与被响应的高优先级中断的相应程序地址总线(PAB)送一个中断向量值。例如,如果1NT2被响应了,它的中断向量0004h被装入PAB。 (5)外设中断扩展(PIE)控制器会对PAB的值进行译码,并产生一个外设响应应答,清除与被应答的CPU中断相关的PIRQ位。外设中断扩展控制器然后将相应的中断向量(或假中断向量)载入外设中断向量寄存器(PIVR)。当GISR已经完成了现场保护,然后就可读入PIVR,并使用中断向量,使程序转入到特定中断服务子程序(SISR)的入口处去执行。 4.5 中断响应的等待时间 中断响应的等待时间包括:外设同步接口时间、CPU 响应时间、ISR转移时间。 (1)外设同步接口时间是指PIE识别出外设发来的中断请求,经判断优先级、转换后将中断请求发送至CPU的时间。 (2)CPU的响应时间指的是CPU识别出已经被使能的中断请求、响应中断、清除流水线、并且开始捕获来自CPU中断向量的第一条指令所花费的时间。最小的CPU的响应时间是4个CPU指令周期。 (3)ISR转移时间是指为了转移ISR中特定部分而必须执行一些转移所花费的时间。该时间长短根据用户所实现的ISR的不同而有所变化。 4.6 CPU的中断寄存器 CPU中断寄存器包括: (1)中断标志寄存器(IFR); (2)中断屏蔽寄存器(IMR)。 4.6.1 CPU中断标志寄存器(IFR) IFR映射到数据存储器空间为0006h。各位意义如下: 位15-6:保留位。 位5-0:分别为INT6-INT1的中断标志位。 0-无INTn(n=1-6)的中断挂起, 1-表示有INTn(n=1-6)的中断挂起。 中断标志寄存器包含了所有可屏蔽中断INT6-INT1的标志位。 当一个外设发出可屏蔽中断请求时,中断标志寄存器的相应标志位被置1。如果该外设对应中断屏蔽寄存器中的中断使能位也为1,则该中断请求被送到CPU,此时该中断正被挂起或等待响应。 读取IFR可以识别挂起的中断,向相应的IFR位写1将清除已挂起的中断。 CPU响应中断或复位都能将IFR标志清除。 在对IFR操作时应注意以下几点: (1)要想清除某一IFR位,必须向该位写1,而不是 0; (2)当一个可屏蔽中断被响应时,只有IFR位被清 除,而相应的外设控制寄存器中的中断请求标 志位不会被清除。如果需要清除这些标志位, 应该使用软件来清除。 (3)当通过INTR指令来请求中断,且相应的IFR位 被置1时,CPU不会自动清除该位,该位必须由 软件来清除。 (4)IFR和IMR控制的是核心级的中断,所有外设在 它们各自的配置/控制寄存器都有相应的中断 屏蔽和标志位。 4.6.2 CPU中断屏蔽寄存器(IMR) IMR映射在数据存储器空间中的地址为0004h,各位意义如下: IMR中包含所有可屏蔽中断级(INT1-INT6)的屏蔽位,读IMR可以识别出已屏蔽或使能的中断级,而向IMR中写,则可屏蔽中断或使能中断。为了使能中断,应设置相应的IMR位为1,而屏蔽中断时只需将相应的IMR位设为0。 位15-6:保留位。 位5-0:分别为INT6-INT1中断的屏蔽位。

文档评论(0)

1亿VIP精品文档

相关文档