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

相关推荐
亿道电子Emdoor10 分钟前
【Arm】Encountered an improper argument
arm开发·stm32·单片机
大聪明-PLUS3 小时前
Rsync:管理员详细指南 第2部分
linux·嵌入式·arm·smarc
GilgameshJSS4 小时前
STM32H743-ARM例程43-SD_IAP_FPGA
arm开发·stm32·fpga开发
大聪明-PLUS18 小时前
如何使用 Docker 打包一个简单的应用程序:简易指南
linux·嵌入式·arm·smarc
XINVRY-FPGA18 小时前
XC95288XL-10TQG144I Xilinx AMD CPLD
arm开发·单片机·嵌入式硬件·mcu·fpga开发·硬件工程·fpga
大聪明-PLUS1 天前
Docker 的底层工作原理
linux·嵌入式·arm·smarc
瑞禧生物ruixibio1 天前
5-脱氧-5-甲硫腺苷标记生物素,5-MTA-Biotin,Biotin-5-脱氧-5-甲硫腺苷,5-MTA-生物素复合物
arm开发
树在风中摇曳1 天前
TCP连接还在吗?主机拔掉网线后再插上,连接会断开吗?
arm开发·网络协议·tcp/ip
uoscn2 天前
链接脚本(Linker Scripts)
linux·arm开发·arm
随机昵称_1234562 天前
Linux如何从docker hub下载arm镜像
java·linux·arm开发·docker