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

相关推荐
Awh-10 小时前
ARM 裸机开发 DAY11 学习笔记
arm开发·笔记·学习
chu_bingzhi10 小时前
ARMv8体系结构
arm
陌上花开缓缓归以11 小时前
openssl 模拟签名验签(加密解密)详细分析
arm开发
en.en..13 小时前
ARM 汇编 B / BL 核心区别
汇编·arm开发
程序员JerrySUN13 小时前
Jetson Edge AI 实战05:Secure Boot 到底在保护什么?PKC、SBK、Fuse 与可信启动链一次讲清【视频讲解】
arm开发·人工智能·安全·计算机视觉·目标跟踪·音视频
老当益壮梁奶奶18 小时前
驱动学习(二):从零开始:驱动工程搭建与字符设备驱动框架详解(基于IMX6ULL)
c语言·arm开发·驱动开发·嵌入式硬件·学习
竣达技术19 小时前
机房运维:UPS 如何实现跨网段采集监控数据
运维·arm开发
女神下凡2 天前
嵌入式系统 vs 嵌入式文件系统
arm开发·嵌入式硬件·设计规范
女神下凡2 天前
芯参谋(55):LED 驱动 · 系统设计指南
arm开发·单片机·嵌入式硬件·硬件工程·设计规范
Awh-2 天前
ARM 裸机开发 DAY10 学习笔记
arm开发·笔记·学习