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

相关推荐
生涯にわたる学び1 天前
ARM 实操 流水灯 按键控制 day53
arm开发·嵌入式硬件
YLAD2 天前
gnu arm toolchain中的arm-none-eabi-gdb.exe的使用方法?
arm开发
饶宇航2 天前
嵌入式硬件——ARM
arm开发
wdfk_prog4 天前
[Linux]学习笔记系列 -- [arm][lib]
linux·运维·arm开发·笔记·学习
努力自学的小夏5 天前
RK3568 Linux驱动学习——新字符设备驱动
linux·arm开发·驱动开发·笔记·学习
wdfk_prog6 天前
[Linux]学习笔记系列 -- [arm][lds]
linux·运维·arm开发·笔记·学习
szxinmai主板定制专家7 天前
基于FPGA的热电偶测温数据采集系统,替代NI的产品(二)总体设计方案
arm开发·人工智能·嵌入式硬件·fpga开发
漫步企鹅7 天前
【VS Code - Qt】如何基于Docker Linux配置Windows10下的VS Code,开发调试ARM 版的Qt应用程序?
linux·qt·docker·arm·vs code·开发调试
cici158748 天前
ARM保留的标准中断处理程序入口和外设中断处理程序入口介绍
arm开发
学不动CV了9 天前
FreeRTOS入门知识(初识RTOS任务调度)(三)
c语言·arm开发·stm32·单片机·物联网·算法·51单片机