【ARM】中断的处理

ARM的异常向量表在这里插入图片描述

  1. 如果发生异常后并没有exception level切换,并且发生异常之
    前使用的栈指针是SP_EL0,那么使用第一组异常向量表。
  2. 如果发生异常后并没有exception level切换,并且发生异常之
    前使用的栈指针是SP_EL1/2/3,那么使用第二组异常向量表。
  3. 如果发生异常导致了exception level切换,并且发生异常之前
    的exception level运行在AARCH64模式,那么使用第三组异常
    向量表。
  4. 如果发生异常导致了exception level切换,并且发生异常之前
    的exception level运行在AARCH32模式,那么使用第四组异常
    向量表。

Linux Kernel的中断处理

Linux Kernel中的异常向量表的实现

在这里插入图片描述
在设置异常向量表基地址时填的虚拟地址

Linux kernel对中断的处理

在这里插入图片描述

ATF(TF-A)的中断处理

ATF(TF-A)中的中断向量表

在这里插入图片描述

BL31 runtime_exceptions

在这里插入图片描述
程序在EL3时来一个IRQ中断target到EL3来实现时,是不支持的,因为是没有实现的。
程序在EL3一下时来一个中断,此时是支持的,直接target到EL3。

optee的中断处理

optee os中异常向量表的实现

在这里插入图片描述
第二组不用
做了两件事
1,写了一个异常向量表
2,把异常向量表的基地址写入VBAR_EL1寄存器中

optee os中对中断的处理

在这里插入图片描述

optee中中断的使用示例

在这里插入图片描述
写一个结构体声明一下,调用itr_add和itr_enable,当中断一来,就会自动调用中断处理函数

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值