中断--ARM

1.summary
ARM的core只有两根中断线一个是irq一个FIQ,需要个中断控制器GIC管理。
在这里插入图片描述
2.中断状态:inactive,pending,active and pending, active。
inactive:中断处于无效状态
pending:中断处于有效状态,但是cpu没有响应该中断
active:cpu在响应该中断
active and pending:cpu在响应该中断,但是该中断源又发送中断过来 以下是中断状态的转移图。至于图中的转移条件,在gic架构文档中,有介绍。
中断触发方式,包含以下两种方式:

edge-triggered: 边沿触发,当中断源产生一个边沿,中断有效
level-sensitive:电平触发,当中断源为指定电平,中断有效

在这里插入图片描述

三、中断类型
中断类型分为以下几类:

PPI:(private peripheral interrupt),私有外设中断,该中断来源于外设,但是该中断只对指定的core有效。
SPI:(shared peripheral interrupt),共享外设中断,该中断来源于外设,但是该中断可以对所有的core有效。
SGI:(software-generated interrupt),软中断,软件产生的中断,用于给其他的core发送中断信号
virtual interrupt:虚拟中断,用于支持虚拟机

四、中断号

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

ID0-ID15,分配给SGI
ID16-ID31,分配给PPI
ID32-ID1019分配给SPI

五,start:中断开始
generate:中断源产生中断,发送给gic
deliver:gic将中断发送给cpu
activate:cpu响应该中

deactivate: cpu响应完中断,告诉gic,中断处理完毕,gic更新该中断状态
end:中断结束
在这里插入图片描述
七、banking
banking(不知翻译成啥比较合适)功能,包括以下两个:

1、中断banking

对于PPI和SGI,gic可以有多个中断对应于同一个中断号。比如在soc中,有多个外设的中断,共享同一个中断号。

2、寄存器banking

对于同一个gic寄存器地址,在不同的情况下,访问的是不同的寄存器。例如在secure和non-secure状态下,访问同一个gic寄存器,其实是访问的不同的gic的寄存器。

gicV2
gic主要包括以下两个组件:

distributor
cpu interface
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值