MPC5744_INTC

目录

INTC块配置寄存器(INTC_BCR)

INTC处理器0的当前优先级寄存器(INTC_CPR0)

处理器0的INTC中断确认寄存器(INTC_IACKR0)

INTC处理器0的中断寄存器结束(INTC_EOIR0)

INTC软件集/清除中断寄存器(INTC_SSCIRn)

INTC优先级选择寄存器(INTC_PSRn)

INTC监视器模式寄存器0(INTC_MMRC0)

INTC HIPRI寄存器(INTC_HIPRInC0)

INTC LAT寄存器(INTC_LATnC0)

INTC计时器寄存器(INTC_TIMERnC0)


INTC块配置寄存器(INTC_BCR)

31 HVEN0:

已为处理器0启用硬件向量。控制INTC是处于硬件矢量模式还是处于软件矢量模式。

0软件向量模式

1硬件矢量模式

INTC处理器0的当前优先级寄存器(INTC_CPR0)

INTC_CPRn屏蔽与INTC_CPRn[PRI]字段当前值相同或更低优先级的任何外围或软件可设置的中断请求,以生成对处理器的中断请求。当在软件向量模式下读取INTC中断确认寄存器(INTC_IACKRn)或在硬件向量模式下断言来自处理器的中断确认信号时,将PRI的值推到LIFO上,并以抢占中断请求的优先级更新PRI。当写入INTC中断结束寄存器(INTC_EOIRn)时,LIFO将被弹出到INTC_CPRn PRI字段中。在硬件向量模式中描述了这种行为在硬件向量模式下的一个异常情况。

27-31      PRI

当前执行的ISR的优先级,根据字段值31(最高优先级)下降到0(最低优先级)。

处理器0的INTC中断确认寄存器(INTC_IACKR0)

处理器n的中断确认寄存器提供了一个值,可用于从向量表中加载ISR的地址。向量表可以由特定于它们各自的中断向量的isr的地址组成。此外,在软件向量模式下,INTC_IACKRn有读取的副作用。因此,在这种模式下,不能被推测地读取它。无论读取数据的大小如何,其副作用都是相同的。读取INTC_IACKRn在硬件向量模式下没有副作用。

0–19
VTBA
向量表基址。可以是isr地址的向量表的基地址。
20–29
INTVEC
中断向量。向处理器产生中断请求的外围或软件设置的中断请求的向量。当中断请求向处理器断言时,INTVEC将被更新,无论INTC是处于软件向量模式还是硬件向量模式。

INTC处理器0的中断寄存器结束(INTC_EOIR0)

写入INTC_EOIRn的信号表示中断请求的服务结束。当写入INTC_EOIRn时,最后一次推送到LIFO上的优先级将被弹出到INTC_CPRn中。写入到INTC_EOIRn中的数据的值和大小将被忽略。写入这个寄存器的这些值和大小既不更新INTC_EOIRn内容,也不影响LIFO是否弹出。通常,当您写入这个寄存器时,写入四个全零字节

0–31
EOI
中断结束。向该字段写入四个全零字节,以表示中断请求的服务结束。

INTC软件集/清除中断寄存器(INTC_SSCIRn)

INTC_SSCIR寄存器支持设置或清除软件可设置的中断请求。这些寄存器包含独立的位集,以通过软件设置和清除相应的标志位。与PSRs中的SWT位不同,INTC_SSCIR寄存器不需要读-修改-写。除了由软件设置外,这个标志位的行为与在外设中设置的标志位相同。这个标志位在INTC中生成一个中断请求,就像一个外围设备的中断请求一样。写一个1到SET将使SET保持在0不变,但将设置CLR。将0到SET将没有效果。CLR是标志位。给CLR写一个1就会清除它。将0写入CLR将没有任何效果。如果一个1同时写入一对SET和CLR位,则断言CLR,而不管在写入之前是否断言CLR。

6
SET
设置标志位。写一个1将设置相应的CLR位。写一个0将没有任何效果。每个组都被读取为0。
7
CLR

清除标志位。CLR是标志位。将1写入CLR将清除它,只要1不同时写入其相应的SET位。将0写入CLR将没有任何效果。

0在INTC内未挂起的中断请求。

1 INTC内的中断请求。

INTC优先级选择寄存器(INTC_PSRn)

优先级选择寄存器支持为每个中断请求源选择单个优先级,并将请求路由到一个或多个处理器。每个外围或软件可设置的中断请求的唯一向量决定了分配给哪个INTC_PSRn。软件可设置的中断请求被分配给最低编号的向量,它们的优先级被配置在最低编号的INTC_PSR寄存器中。外围中断请求在软件可设置的中断请求之后立即分配给向量,它们的优先级在随后的INTC_PSR寄存器中配置。外围中断请求被分配给向量32-1023,它们的优先级分别在INTC_PSR32-1023中被配置。

0
PRC_SELN0

对于处理器,请选择为0。如果启用了中断源,则该字段将选择是否将中断请求发送到处理器0。

0中断请求未发送到处理器0

1 中断请求发送到处理器0

7
SWTN
此位仅在不对应于sscir的psr中可用。SWT位支持通过软件而不是硬件来触发中断。这是在外围设备中设置标志位的一种替代方法。这个标志位在INTC中生成一个中断请求,就像一个外围设备的中断请求一样。写入SWTn设置位。在中断确认周期中,SWTn位被清除。SWT函数在硬件和软件向量模式下都可以工作。只有在PSR的PRC_SELn字段中定义的启用处理器(s)清除。
11–15
PRIN
优先级选择。选择中断请求的优先级。PRI的值为31(最高优先级),降为0(最低优先级)。

INTC监视器模式寄存器0(INTC_MMRC0)

监视器模式寄存器用于配置INTC的测量选项。

30–31
MM

监控模式。控制INTC是否监视延迟或中断处理程序时间

00禁用

01 IACK -中断确认-计时器从断言到中断确认。如果计时器超过编程中断延迟,且编程中断延迟非零,则会发出错误信号。

10 EOI -中断计时器结束从IRQ断言到中断处理程序结束都处于活动状态。即使中断处理程序被抢占,计时器也将继续运行。如果计时器超过编程中断延迟,且编程中断延迟非零,则会发出错误信号。

11软件软件计时器从IRQ的断言到中断处理程序的结束都是活动的,除非它被抢占。如果是与活动IRQ关联的定时器,则中断的返回将启动定时器。没有错误信号;相反,软件可以在任何时候读取计时器。

INTC HIPRI寄存器(INTC_HIPRInC0)

HIPRI log2(源)位寄存器用于指示要监视或检查哪个IRQ。助记符的形式是HIPRImCn,其中“n”是相应的处理器,“m”是该处理器的监视器实例。

22–31
IRQ
选择要监控的IRQ(输入IRQ的十六进制值)

INTC LAT寄存器(INTC_LATnC0)

这些寄存器用于指示基于模式为检测到的IRQ到IACK或RFI的错误信号之前的最大时间。助记符的形式是LATmCn,其中n是相应的处理器,“m”是该处理器的监视器实例。

8–31
LAT
选择被监控的IRQ所允许的最大INTC时钟周期数。

INTC计时器寄存器(INTC_TIMERnC0)

这些寄存器用于指示基于模式的检测到的IRQ到IACK或RFI的时间。助记符的形式是TIMERmCn,其中n是相应的处理器,“m”是该处理器的监视器实例,用于指示检测到的IRQ到IACK或RFI的最大时间。

8–31
TIMER
计时器用于计算高达24位的INTC时钟周期数。

/****************************************************************/

最简单的:

中断标志位触发后,计算机硬件会自动处理中断请求。不同的的中断同时触发会根据中断优先级先后执行,执行的函数定义在中断向量表中。

例:当我配置了PIT使能、PIT时钟时长、PIT中断使能后,需要INTC寄存器设置此中断的优先级、中断号和中断向量表中此中断触发后的运行函数,函数需要清除相应的中断标志位(此例需清楚PIT寄存器中的标志位)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值