【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,当中断一来,就会自动调用中断处理函数

相关推荐
uoscn1 天前
从零开始实现U-Boot
arm·imx6ull·u-boot
byte轻骑兵1 天前
ARM 嵌入式处理器内核与架构深度剖析(3): ARM嵌入式处理器的架构组成
arm开发
Jing_jing_X1 天前
CPU 架构:x86、x64、ARM 到底是什么?为什么程序不能通用?
arm开发·架构·cpu
芙蓉王真的好11 天前
安全无篡改:Windows 10 22H2/LTSC/ARM 官方原版镜像下载渠道与使用教程
arm开发·windows·安全
切糕师学AI1 天前
ARM 架构中的复位(Reset)与复位流程
arm开发·单片机·嵌入式·复位
VekiSon1 天前
Linux内核驱动——基础概念与开发环境搭建
linux·运维·服务器·c语言·arm开发
MickyCode1 天前
嵌入式开发调试之Traceback
arm开发·stm32·单片机·mcu
wwwlyj1233211 天前
ARM CMSIS-DSP Q格式
arm开发
s_daqing2 天前
arm的ubuntu启动node
linux·arm开发·ubuntu
CQ_YM2 天前
ARM之I2C
arm开发·单片机·嵌入式硬件·嵌入式