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

相关推荐
时空自由民.19 小时前
蓝牙协议栈知识和网络协议栈知识对比
网络·arm开发·网络协议
QAQ小菜鸟1 天前
五、keil添加AC5
arm开发
花无缺就是我1 天前
内网穿透哪个好,之神卓互联Linux版Arm安装教程2026最新
linux·运维·arm开发
以梦为马无处可栖1 天前
AxVisor 深度学习笔记-ARM 虚拟化硬件原理
arm开发·笔记·深度学习
CinzWS1 天前
UVM验证环境构建:CPU验证的方法论——从零构建ARM A53验证帝国的艺术
arm开发·架构·芯片验证·原型验证·a53
若风的雨1 天前
【DeepSeek】Ramdisk 目录内容与功能说明
arm开发
CinzWS2 天前
A53多核协同(上):核间通信与缓存一致性协议——ARM多核的“心灵感应“
arm开发·嵌入式·芯片验证·原型验证·a53
CinzWS2 天前
A53多核协同(下):一致性内存模型与内存屏障——ARM多核的“时间魔法“
arm开发·嵌入式·原型验证·a53
EnglishJun2 天前
ARM嵌入式学习(二十四)--- 库移植(移植到开发板)
arm开发·学习
AI服务老曹3 天前
异构计算时代的安防底座:基于 Docker 的 X86/ARM 双模部署与 NPU 资源池化实战
arm开发·docker·容器