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

相关推荐
松涛和鸣14 小时前
DAY69 Practical Guide to Linux Character Device Drivers
linux·服务器·arm开发·数据库·单片机·嵌入式硬件
松涛和鸣16 小时前
69、Linux字符设备驱动实战
linux·服务器·网络·arm开发·数据库·驱动开发
切糕师学AI17 小时前
ARM 架构中的 CurrentEL
arm开发·架构
林三的日常1 天前
Adobe Premiere Pro 26.0 - 原生支持Windows on ARM
arm开发·adobe
代码游侠1 天前
学习笔记——Linux内核与嵌入式开发1
linux·运维·前端·arm开发·单片机·嵌入式硬件·学习
代码游侠1 天前
学习笔记——Linux内核与嵌入式开发3
开发语言·arm开发·c++·学习
济6171 天前
ARM Linux 驱动开发篇----Linux驱动开发与裸机开发的区别---- Ubuntu20.04
linux·arm开发·驱动开发
代码游侠2 天前
学习笔记——Linux内核与嵌入式开发2
linux·运维·arm开发·嵌入式硬件·学习·架构
Mr_liu_6662 天前
ns3-gym使用指南与简单原理解析
arm开发
小草cys2 天前
【有问题未解决】Ubuntu arm版的桌面分辨率修改
linux·arm开发·ubuntu