ARM GIC(二)中断分类

一、中断状态

对于每一个中断而言,有以下4个状态:

inactive:中断处于无效状态

pending:中断处于有效状态,但是cpu没有响应该中断

active:cpu在响应该中断

active and pending:cpu在响应该中断,但是该中断源又发送中断过来

以下是中断状态的转移图。至于图中的转移条件,在gic架构文档中,有介绍。

二、中断触发方式

中断触发方式,包含以下两种方式:

edge-triggered: 边沿触发,当中断源产生一个边沿,中断有效

level-sensitive:电平触发,当中断源为指定电平,中断有效

三、中断类型

中断类型分为以下几类:

SGI(software-generated interrupts)软件产生的中断,主要用于核间交互,内核中的IPI,inter-processor interrupts就是基于SGI的,中断号ID0 - ID15用于SGI。内核中的 IPI:inter-processor interrupts 就是基于 SGI

PPI:(private peripheral interrupt),私有外设中断,该中断来源于外设,但是该中断只对指定的core有效。

SPI:(shared peripheral interrupt),共享外设中断,该中断来源于外设,但是该中断可以对所有的core有效。

LPI (Locality-specific Peripheral Interrupt):LPI 是 GICv3 中的新特性,它们在很多方面与其他类型的中断不同。LPI 始终是基于消息的中断,它们的配置保存在表中而不是寄存器。比如 PCIe 的 MSI/MSI-x 中断。

四、中断优先级

因为soc中,中断有很多,为了方便对中断的管理,对每个中断,附加了中断优先级。在中断仲裁时,高优先级的中断,会优于低优先级的中断,发送给cpu处理。

当cpu在响应低优先级中断时,如果此时来了高优先级中断,那么高优先级中断会抢占低优先级中断,而被处理器响应。

五、中断号

为了方便对中断的管理,gic为每个中断,分配了一个中断号,也就是interrupt ID。对于中断号,gic也进行了分配:

ID0-ID15,分配给SGI

ID16-ID31,分配给PPI

ID32-ID1019分配给SPI

其他

在具体的arm的cpu中,对于PPI,又进行了详细的分配。这个,就得看arm cpu的TRM了。

相关推荐
工业设备方案笔记14 小时前
RK3588 vs RK3568:AI边缘计算项目到底应该如何选择芯片平台?
arm开发·人工智能·目标跟踪·架构·边缘计算
过客而已200320 小时前
Model Context Protocol(MCP)技术深度解析
arm开发
ARM|X86+FPGA工业主板厂家3 天前
基于ARM+FPGA平台在精密测控领域的应用:8路同步IEPE振动采集系统
arm开发·fpga开发
振南的单片机世界3 天前
2MHz/50MHz玄机:GPIO速度档选错,信号直接“烂尾”
arm开发·stm32·单片机·嵌入式硬件
ARM|X86+FPGA工业主板厂家3 天前
基于ARM+FPGA平台在精密测控领域的应用:ZYNQ千兆以太网高速数据记录仪
arm开发·fpga开发
ARM|X86+FPGA工业主板厂家3 天前
基于ARM+FPGA平台在精密测控领域的应用:ZYNQ FPGA图像预处理加速系统
arm开发·fpga开发
LCMICRO-133108477464 天前
国产长芯微LPS7118完全pin-pin替代ADP7118,是一款采用 CMOS 技术设计的低噪声、高 PSRR、快速瞬态响应、低压差线性稳压器
arm开发·单片机·嵌入式硬件·fpga开发·硬件工程·线性稳压器·adp7118
LCMICRO-133108477464 天前
国产长芯微LM3042完全P2P替代LT3042,是一款高性能低压差线性稳压器
arm开发·单片机·嵌入式硬件·fpga开发·硬件工程·线性稳压器·lt3042
2401_827501284 天前
Linux系统移植
linux·arm开发·单片机
神罚天下ET5 天前
典型arm位单片机启动流程(从上电到main.c)
c语言·arm开发·单片机