在TriCore系统中,多个中断源(如外设或外部中断)可以生成中断请求(如cpu或DMA通道)。本文描述了CPU的中断处理能力,包括中断优先级方案和对向量表的访问。
一、常规操作
每个中断源被分配一个唯一的中断优先级编号,称为服务请求优先级编号(SRPN)。从中断源接收到中断请求时,中断控制单元(ICU)使用SRPN在多个并发中断请求之间确定优先级。获胜请求的SRPN作为Pending Interrupt Priority Number (PIPN)与请求触发器一起提供给CPU。CPU通过比较PIPN和当前CPU优先级数(CCPN)来决定是否接受请求的中断。如果CPU决定接受请求的中断,它响应一个中断确认,并返回被占用的中断的优先级号。然后ICU将清除请求中断源。
1、 ICU 中断控制寄存器 (ICR)
ICU中断控制寄存器(ICR)保存:
当前CPU优先级号(CCPN),Current CPU Priority Number
全局中断启用/禁用位(IE),Interrupt enable
当前等待中断优先级号(PIPN),current Pending Interrupt Priority Number
2 、CPU 中断请求的操作
CPU检查全局中断使能位ICR.IE的状态,并比较当前CPU的优先级数ICR.CCPN和PIPN。CPU只有在ICR.IE == 1且PIPN大于CCPN时才会中断。中断发生时CPU进入中断例程。PIPN用于确定中断向量表入口点并确认ICU, ICU反过来将确认发送回挂起的中断请求。
有几种情况可能会阻止CPU立即响应ICU生成的中断请求。这些都是:
中断系统被全局禁用(ICR.IE = = 0)。
当前CPU优先级(CCPN)等于或高于Pending Interrupt priority Number (PIPN)
CPU正在进入中断或trap服务程序
CPU正在处理不间断trap业务
CPU正在执行一条多周期指令
CPU正在执行一条修改ICR的指令
只有当这些条件不再为真时,CPU才响应中断请求。

本文详细解释了在TriCore系统中,中断源如何通过中断请求触发CPU处理,包括中断优先级的管理、中断控制寄存器的功能、中断服务例程的执行过程,以及中断向量表的使用策略,如优先级组和向量间隔的选择。
最低0.47元/天 解锁文章
1592





