ARM架构(四)——异常中断和中断控制器(GIC)①

news2024/9/23 19:24:24

中断术语1——assert、routing、target、target to、target fromtaken

在这里插入图片描述
几个重要的概念:assert。routing、target、target to、target fromtaken

1.2 assert

外设发给GIC一个中断信号,GIC发给PE,PE对中断进行assert,断言这个中断是IRQ还是FIQ,这个过程就是assert。

1.3 target

外设发出中断信号给GIC,GIC发给PE,PE首先进行assert,然后下一步,PE对这个中断要进行Target操作,就是target到某一个异常等级,可能是EL1,也可能是EL2也可能是EL3,这个过程就是Target.

1.4 taken

外设发出中断信号给GIC,GIC发给PE,PE首先进行assert,然后PE对这个中断要进行Target,然后下一步在部分场景下PE还会再检查PSTATE的MASK位,,下一步PE准备对这个中断进行处理,就叫做PE taken了这个中断。taken之后就会跳到异常向量表进行中断处理了。

1.5 routing

就是从外设发出中断信号给GIC,GIC发给PE,PE首先assert,判断这个中断是FIQ还是IRQ。然后:
(1)PEtarget到其异常等级
(2)PE先判断处理器状态掩码
(3)PE taken这个中断
最后跳到异常向量表进行中断处理。
中间这个(1)(2)(3)过程就是routing路由的过程。

1.6 小结

在这里插入图片描述

路由之后,在部分场景下还会再检查PSTATE的MASK位,如果是unMasked的,此时也就是中断被taken了,也就是PE acknowledge了该中断。然后中断处理的软件中读取gic的寄存器。

2. 中断术语2

掌握中断进入和中断退出时,哪些行为是硬件自动完成的,哪些行为是依靠软件去做的。

2.1 IRQ 和FIQ区别

FIQ不是一个快速中断的意思,在很早的ARM手册中有讲FIQ比IRQ优先级别高,但是在后面的手册中有更正,FIQ 和IRQ优先级没有高低,FIQ更多的是体现了一个要被转发出去的中断,如果这个中断我这边不处理要转发出去,那就是FIQ,我自己要处理就是IRQ

2.2 中断数据流

在这里插入图片描述

图中蓝色都是硬件完成,后面跳到中断向量表了才到软件开始处理,

2.3中断entry

中断进来时的硬件的自动行为:
1、将PSTATE保存到SPSR_ELx中
2、将return地址保存到ELR_ELx中:
3、将PSTATE.{D.A,F}全部置为1
4-如果是同步异常或SError,在更新ESR_ELX异常特征寄存器
5、跳转到异常向量表
6、sp选择目标异常级别的sp_elx

2.4中断exit

一旦中断处理程序处理完中断,该处理程序就返回到中断发生前正在运行的代码。
它通过以下操作来实现:恢复所有以前堆叠的可损坏寄存器启动异常返回指令(ERET) ,ERET指令从关联的SPSR和分支中恢复先前的处理器状态到ELR中记录的异常返回地址。返回异常级别是根据SPSR_EL< x>中的值配置的,其中< x>是要返回的级别。SPSR_ELx还包含目标执行状态 。这是中断退出时候的硬件自动行为。

  • 在ELx上执行ERET指令时:
    (1)用ELR_RLx保存的值恢复PC
    (2)通过使用SPSR_ELx的内容来恢复PSTATE

在这里插入图片描述

2.5 EL 级别的切换

在这里插入图片描述

2.6 svc 也是可以trapped到EL2

  • 置上以下比特位,svc将trapped到EL2:
    HFGITR_EL2 (Hypervisor Fine-Grained Instruction Trap Register)
    SVC_EL1, bit [53]
    SVC_ELo, bit [52]
  • 置上以下比特位eret将trapped到EL2:
    ERET, bit [51]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2041668.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PPT怎么锁定图片不被移动?2个办公必备的实用技巧盘点!

插入到ppt的图片&#xff0c;怎么锁定不被移动&#xff1f;这是不少做PPT的人都会遇到的问题&#xff0c;想要移动的图片不会移动&#xff0c;不想移动的图片反而动了……诸如此类的迷之操作&#xff0c;直接把人整迷糊了。 ppt怎么锁定图片不被移动&#xff1f;就着这个问题&…

(贪心 + 双指针) LeetCode 455. 分发饼干

原题链接 一. 题目描述 假设你是一位很棒的家长&#xff0c;想要给你的孩子们一些小饼干。但是&#xff0c;每个孩子最多只能给一块饼干。 对每个孩子 i&#xff0c;都有一个胃口值 g[i]&#xff0c;这是能让孩子们满足胃口的饼干的最小尺寸&#xff1b;并且每块饼干 j&…

【数学建模备赛】Ep03:皮尔逊person相关系数

文章目录 一、前言&#x1f680;&#x1f680;&#x1f680;二、皮尔逊person相关系数&#xff1a;☀️☀️☀️1. 总体皮尔逊person相关系数① 总体和样本② 理解协方差&#xff08;受量纲影响&#xff09;③ 剔除量纲影响 2. 样本皮尔逊person相关系数3. 相关性可视化① 皮尔…

后端代码练习1——加法计算器

1. 需求 输入两个整数&#xff0c;点击 “点击相加” 按钮&#xff0c;显示计算结果。 2.准备工作 创建Spring Boot项目&#xff0c;引入Spring Web依赖&#xff0c;把前端代码放入static目录下。 2.1 前端代码 <!DOCTYPE html> <html lang"en"> <h…

Unity + HybridCLR 从零开始

官方文档开始学习,快速上手 | HybridCLR (code-philosophy.com)是官方文档链接 1.建议使用2019.4.40、2020.3.26、 2021.3.0、2022.3.0 中任一版本至于其他2019-2022LTS版本可能出现打包失败情况 2. Windows Win下需要安装visual studio 2019或更高版本。安装时至少要包含 使…

apache-lotdb集群部署

一、下载 发行版本 | IoTDB Website jdk版本&#xff1a; 系统版本&#xff1a; 二、服务器规划 节点名称主机名服务192.168.110.110master01.110110.cnConfigNode、DataNode192.168.110.111node01.110111.cnConfigNode、DataNode192.168.110.112node02.110112.cnConfigNode、…

一文搞懂Python自动化测试框架!

一文搞懂Python自动化测试框架 如果你选用python做自动化测试&#xff0c;那么python测试框架的相关知识你必须要了解下。 首先我们先学习一下框架的基本知识。 什么是框架&#xff08;百度百科&#xff09;&#xff1f; 框架( Framwork )是构成一类特定软件可复用设计的一组…

100V-50mA超高压低压差线性稳压器具有电流保护功能

产品概述 PC6001 是一款能够耐受超高电压的线性稳压器&#xff0c;不仅融合了耐热增强型封装的优势&#xff0c;还能够承受持续直流电压或最高达 100V 的瞬态输入电压。 PC6001 器件与任何高于 2.2F 的输出电容以及高于0.47F 的输入电容搭配使用时均可保持稳定&#xff08;过…

mfc140u.dll丢失错误解决方法的基本思路——四种修复mfc140u.dll的方法

当遇到mfc140u.dll丢失的错误时&#xff0c;意味着你的系统中缺失了一个重要的动态链接库文件&#xff0c;该文件是微软 Visual C Redistributable for Visual Studio 2015 的一部分&#xff0c;对于运行那些用 Visual C 开发的程序是必需的。今天就教你mfc140u.dll丢失错误解决…

派单系统功能案例分析

派单系统是一种专门用于协调和分配任务的软件系统&#xff0c;它通过自动化和智能化的方式&#xff0c;确保任务能够高效地完成。以下是对派单系统功能的案例分析&#xff0c;主要从任务分配、实时监控、数据统计与分析以及行业应用等方面进行阐述。 一、任务分配 派单系统的核…

​线上教育_VR虚拟实验室​解决方案优缺点

线上教育的兴起也预示着对VR虚拟实验室的需求&#xff0c;这些虚拟实验室可以帮助学生学习他们研究的经验和进行实践&#xff0c;帮助学生更好地理解知识。但是&#xff0c;基于VR虚拟现实技术的虚拟实验室本质上是灵活的&#xff0c;它能让孩子们更轻松、更快速地探索各种新事…

【博主推荐】HTML5新闻,博客,官网网站源码文章瀑布流+详情页面

文章目录 1.设计来源1.1 主界面1.2 文章详情界面1.3 联系我们界面1.4 关于我们界面 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板&#xff0c;程序开发&#xff0c;在线开发&#xff0c;在线沟通 【博主推荐】&#xff1a;前些天发现了一个巨牛的人工智能学习网站&…

mfc运行时报错内存不足闪退等问题

问题 mfc的打包程序源代码所在主机可以运行&#xff0c;在其他主机不能脱机运行&#xff0c;会报内存不足等莫名其妙的问题。 解决方法 排除其他代码上的问题后&#xff0c;看看是不是编译链的工具组件一致&#xff0c;我看新建项目的教程时没注意&#xff0c;红色框里的俩一…

Grok-2惊艳亮相,文生图功能竟然“无所不能“!

Grok-2 生成的图片 在人工智能的战场上&#xff0c;一场新的风暴正在酝酿。埃隆马斯克&#xff0c;这位科技界的"钢铁侠"&#xff0c;再次以其独特的方式搅动了 AI 的风云。就在谷歌和OpenAI互相角力之际&#xff0c;马斯克的 xAI 公司悄然推出了新一代AI模型 Grok-2…

深度学习中之前馈神经网络

目录 基本结构和工作原理 神经元和权重 激活函数 深度前馈网络 应用场景 优缺点 深度前馈神经网络与卷积神经网络&#xff08;CNN&#xff09;和循环神经网络&#xff08;RNN&#xff09;的具体区别和联系是什么&#xff1f; 具体区别 联系 如何有效解决前馈神经网络…

微软开源库 Detours 详细介绍与使用实例分享

目录 1、Detours概述 2、Detours功能特性 3、Detours工作原理 4、Detours应用场景 5、Detours兼容性 6、Detours具体使用方法 7、Detours使用实例 - 使用Detours拦截系统库中的UnhandledExceptionFilter接口&#xff0c;实现对程序异常的拦截 C软件异常排查从入门到精通…

Spring SSM框架--MVC

一、介绍 Spring 框架是一个资源整合的框架&#xff0c;可以整合一切可以整合的资源&#xff08;Spring 自身和第三方&#xff09;&#xff0c;是一个庞大的生态&#xff0c;包含很多子框架&#xff1a;Spring Framework、Spring Boot、Spring Data、Spring Cloud…… 其中Spr…

全球海事航行通告解析辅助决策系统

“全球海事航行通告解析辅助决策系统”是一个针对海事行业设计的智能系统&#xff0c;旨在帮助海上导航和航运操作人员解析和应对全球发布的海事航行通告。 要做这样的系统我们必须要了解海事签派员的日常工作。 海事签派员&#xff0c;也称为船舶操作员或船运调度员&#xff0…

国产车规级TSN芯片获十万片订单,将步入规模化应用

近日&#xff0c;从北京科技企业东土科技获悉&#xff0c;其研发并孵化的我国首颗列入工信部国产汽车芯片名录的车规级时间敏感网络&#xff08;TSN&#xff09;交换网络芯片&#xff0c;于近期获得国家新能源汽车技术创新中心10万片芯片订单&#xff0c;将规模化应用于车载网关…

bluecmsphp代码审计

bluecms代码审计 (一) 运行环境需求&#xff1a; 可用的 httpd 服务器&#xff08;如 Apache、Zeus、IIS 等&#xff09; PHP 4.3.0 及以上 MySQL 4.1 及以上配置文件审计 看到uploads/install/include/common.inc.php 当然我们可能自己根本不知道那个是重要的文件&#x…