当前位置: 首页 > article >正文

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


http://www.kler.cn/a/306610.html

相关文章:

  • Docker 篇-Docker 详细安装、了解和使用 Docker 核心功能(数据卷、自定义镜像 Dockerfile、网络)
  • linux c/c++最高效的计时方法
  • Bugku CTF_Web——文件上传
  • C获取程序名称的方法
  • Nuxt 版本 2 和 版本 3 的区别
  • 21. Drag-Drop拖放操作(二) - 文件、表格和树的拖放实现
  • 中间件安全(一)
  • 基于Selenium的新闻爬取技术实操
  • 【AIGC cosplay】让大模型扮演求职者,我当hr来面试
  • 语言哲学(Philosophy of Language)
  • PMP--一模--解题--81-90
  • Python 常用模块(二):json模块
  • 拒绝低效!开发者必备AI工具助你事半功倍!
  • WPF利用Path自定义画头部导航条(TOP)样式
  • C# 网口通信(通过Sockets类)
  • Vue 生命周期与 TypeScript:深入理解组件生命周期
  • 5-【JavaWeb】JUnit 单元测试及JUL 日志系统
  • uniapp使用高德地图设置marker标记点,后续根据接口数据改变某个marker标记点,动态更新
  • CentOS 7上安装Docker
  • 电商数据采集分析全流程分享||电商API数据接口
  • wsl2桥接网络 ubuntu到弃坑到又跳坑
  • Flutter Spacer引发的The ParentDataWidget Expanded(flex: 1) 惨案
  • Spring Boot 注解探秘:JSON 处理的魔法世界
  • JAVA基础:线程优先级和精灵线程
  • 股指期货的详细玩法功能与应用解析
  • 详解 Pandas 的累计统计函数