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

相关推荐
AI_567816 小时前
从“3秒一帧”到“实时识别”——ARM平台OpenCV优化实战
arm开发·人工智能·opencv
切糕师学AI16 小时前
ARM 汇编指令:BX
汇编·arm开发·assembly
ShiMetaPi21 小时前
GM-3568JHF丨ARM+FPGA异构开发板系列教程:外设教程 05 蓝牙
arm开发·fpga开发·fpga·rk3568
切糕师学AI21 小时前
ARM 汇编指令:B
汇编·arm开发
HunterMichaelG1 天前
【MySQL】KylinV10 ARM 服务器上编译MySQL 5.7 XtraBackup
mysql·arm·xtrabackup
切糕师学AI2 天前
ARM 汇编指令:TST
汇编·arm开发
Zeku2 天前
20251201 - 指令集架构中ARM和RISC-V的关系
arm开发·架构·risc-v
切糕师学AI2 天前
ARM 汇编指令:BEQ
汇编·arm开发
若风的雨2 天前
ARM Trusted Firmware 启动流程:从汇编到 C 语言的渐进式初始化
c语言·汇编·arm开发
千桐科技3 天前
qData 数据中台开源版 v1.1.0 发布:清洗与稽查规则能力增强,支持 ARM 与 x86 双架构
arm·开源软件·数据治理·数据中台·qdata·java数据中台·千桐科技