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

相关推荐
精英的英7 小时前
【嵌入式Linux开发】如何在Windows上开发Linux ARM版本QT程序
linux·arm开发·windows
睡觉然后上课7 小时前
如何让虚拟机运行速度翻倍
linux·arm开发·windows
kk哥88999 小时前
Keil MDK 5.39 编程 + 调试 ,ARM 嵌入式开发!如何安装
c++·arm
apolloyhl18 小时前
FreeRTOS内核:核心数据结构与任务切换原理解析
arm开发·嵌入式·rtos
CinzWS20 小时前
Cortex-R52+ 架构深度解析与国产芯片实战
arm·exception·coretex-r52+·aarch32
雾削木1 天前
FLASH ARM内核 SRAM RCC ADC I/O
arm开发·单片机·嵌入式硬件
带土12 天前
1. ARM开始
arm开发
大聪明-PLUS2 天前
编程语言保证是安全软件开发的基础
linux·嵌入式·arm·smarc
小尧嵌入式2 天前
基于HAL库实现F407的基本外设GPIO输入输出USART收发RTC时钟I2CEEPROM和SPIW25Q128读写及CAN通信
arm开发·单片机·嵌入式硬件
楼兰公子3 天前
arm-linux 系统allwinner R528 外挂的sd卡片为什么只能传输189.54M文件
linux·arm开发·sd卡