ARM-A架构入门基础(二)异常处理

news2025/8/11 18:32:13

14天学习训练营导师课程:周贺贺《ARMv8/ARMv9架构-快速入门》

1. 异常处理种类

1.1 中断

在ARM中,FIQ的优先级要高于IRQ,在SOC内部会有一个中断控制器负责中断优先级调度,然后发送中断信号给处理器。中断属于异步模式的异常。

1.2 中止

中止异常分为数据中止和指令中止,MMU能够捕获错误并汇报给处理器。

1.3 复位

复位是处理器中优先级最高的异常,通常分为上电复位和软件复位。

1.4 软件产生的异常

ARMv8提供了3中软件产生的异常,发生此异常的原因是软件企图进入更高的异常等级。

SVC 允许用户模式下的程序请求os服务
HVC 允许客户机(Linux os)请求主机服务
SMC 允许普通世界的程序请求安全服务

1.5 同步异常和异步异常

故名思议,同步异常必须等待cpu处理完当前异常才可以继续执行指令。

常见的同步异常:

访问其他等级的寄存器,比如当前是EL1,如果访问EL2的寄存器就会出现异常
SP未对齐
SVC、HVC和SMC
地址翻译错误/地址权限
常见的异步异常:

物理中断 IRQ、FIQ和系统错误
虚拟中断 vIRQ、vFIQ、vSError

2. ARMv8异常模型

在这里插入图片描述
ARMv8-a Exception level有关的说明如下:
1)首先需要注意的是,AArch64中,已经没有User、SVC、ABT等处理器模式的概念,但ARMv8需要向前兼容,在AArch32中,就把这些处理器模式map到了4个Exception level。
2)Application位于特权等级最低的EL0,Guest OS(Linux kernel、window等)位于EL1,提供虚拟化支持的Hypervisor位于EL2(可以不实现),提供Security支持的Seurity Monitor位于EL3(可以不实现)。
3)只有在异常发生时(或者异常处理返回时),才能切换Exception level(这也是Exception level的命名原因,为了处理异常)。当异常发生时,有两种选择,停留在当前的EL,或者跳转到更高的EL,EL不能降级。同样,异常处理返回时,也有两种选择,停留在当前EL,或者调到更低的EL。

3. GIC中断控制器

由于SOC中外设及与其相关的中断数量众多,且各中断又有多种不同的配置方式,为了减轻CPU的负担,现代处理器中断的配置和管理一般都通过中断控制器实现。

GIC是arm公司推出可与cortex-A和cortex-R处理器配合使用的中断控制器,当前一共有4个版本,分别为GICv1 – GICv4。GICv3是基于armv8的SOC设计中应用较为广泛的一种中断控制器,GICv4与GICv3的功能基本相同,只是为了提高虚拟化的性能,增加了直接注入虚拟中断的能力。

在这里插入图片描述

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

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

相关文章

Python定时打开世界杯直播,还有小姐姐语音提醒哦~不错过每一场世界杯比赛

前言 卡塔尔世界杯今晚0点就要开幕了,为了防止大家沉迷工作,忘记看球,小编用50行Python代码写了一个定时提醒你看球的小程序,还有小姐姐语音提醒哟~🎇 (文末送读者福利) 1、代码说明 获取上…

Redmine 插件 实现富文本编辑,可插入表格和

基本介绍 Redmine 插件将“所见即所得"的UEditor富文本编辑器完美移植到了Redmine。UEditor具有界面美观、功能丰富、注重用户体验的特点,使用方法比CKeditor更为简便。 该插件在redmine现有的文本编辑模式上添加WYSIWYG所见即所得编辑功能。 Redmine UEditor主…

功能测试如何进阶自动化测试?5个步骤带你成功进阶...

手动测试人员应该权衡测试自动化相对于手动测试的好处,并且即可开始行动。下面我介绍一下从手动测试到自动化测试转换的5步指南。 步骤1: 查找合适的自动化测试用例 测试自动化在重复测试中发挥着极其重要的作用。可以在下表中找到最适合自动化的测试类型列表。 测…

【学习笔记20】JavaScript数据类型之间的区别

一、数据类型 基本数据类型复杂数据类型 (function; object; array)二、存储的区别 基本数据类型: 存储在栈内存中, 变量内部就是实际的值引用数据类型: 变量存储在栈内存中, 变量内部存储的是指向堆内存的地址(对象实际的值, 存储在堆内存中)三、赋值的区别 1. 基本数据类型: …

Linux零基础从入门到精通,必学的55个指令合集【下篇】

Linux学习笔记 资料下载: 链接: https://pan.baidu.com/s/1UvwkJaEJO7W3sU5qkCgKzA?pwdfe2f提取码: fe2f 本篇文章主要适用0基础的读者,内容会比较通俗易懂,也会有详细的图解教程,以及运行后的返回结果。我本人在系统性的学习…

Rsync已过时?替代文件同步方式了解一下

随着企业结构分散化的不断扩大,企业内部和企业间的信息互动更加频繁。越来越多的企业要求内部各种业务数据在服务器、数据中心甚至云上能够有实时的同步留存。所以,企业需要文件同步软件,通过在两个或更多设备之间同步数据并自动更新更改来确…

零时科技 || 分布式资本创始人4200万美金资产被盗分析及追踪工作

事件背景 2022年11月23日,分布式资本创始人沈波发推文称,价值4200万美元的个人钱包资产被盗,其中包含 3800 万枚 USDC和1606 枚 ETH,在纽约时间 11 月 10 日凌晨被盗。被盗资产为个人资金,与分布式相关基金无关。目前…

【学习笔记16】JavaScript函数封装习题

笔记初发 1、书写一个函数, 求任意两个数字的和, 把结果以弹窗的形式展示 书写一个函数需要参数吗?            -->需要需要几个参数?         —>两个函数要做什么?         -->求和然后弹窗的形式展示    -->alert(弹窗展示的值…

Area of a circle

In geometry, the area enclosed by a circle of radius r is πr2. Here the Greek letter π represents the constant ratio of the circumference of any circle to its diameter, approximately equal to 3.14159. One method of deriving this formula, which originate…

【矩阵论】4. 矩阵运算——张量积

4.2 张量积 4.2.1 定义 设A(aij)mn,B(bij)pq,则称如下分块矩阵(a11Ba12B⋯a1nBa21Ba22B⋯a2nB⋮⋮⋱⋮an1Ban2⋯ann)为A与B的张量积记作A⊗B(aijB)mpnq\begin{aligned} &设A(a_{ij})_{m\times n},B(b_{ij})_{p\times q},则称如下分块矩阵\left( \begin{matrix} a_{11}B&am…

【Dense Res2net:两个非局部注意模型:IVIF】

Res2Fusion: Infrared and Visible Image Fusion Based on Dense Res2net and Double Nonlocal Attention Models (Res2Fusion: 基于密集Res2net和双非局部注意模型的红外和可见光图像融合) 红外和可见光图像融合旨在生成具有出色场景表示和更好视觉感…

Zabbix最新6.2安装及使用!

zabbix官网 Zabbix 是由 Alexei Vladishev 创建,目前是由 Zabbix SIA 在持续开发和提供支持。 Zabbix 是一款能够监控众多网络参数和服务器的健康度和完整性的软件。Zabbix 使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的警报。这样可以快速…

数字赋能之学生返乡报备登记管理系统

年关将至,不少高校即将开启寒假模式了。对于不少地方而言,第一批返乡高潮快要到来了。当前,国内疫情防控形势异常严峻,且多地发生外返大学生初筛阳性,为切实保障广大返乡大学生及家人、朋友的身体健康,各个…

MYSQL 基本操作 (2)

分组查询和聚合查询: group by (列名) 根据查询的结果来进行分组,值相同的记录分到一组,然后针对每一组进行聚合。 目前表中,对容易一行进行分组操作都会去除重复名字项,同时将重复项打包进改组,例如&…

TingsBoard源码解析-登录认证-OAuth2认证

配置类:ThingsboardSecurityConfiguration 用户名密码登录 用户名密码登录请求URL: /api/auth/login 配置中发现:在默认的用户名密码认证之前添加了认证拦截器【RestLoginProcessingFilter】,而该拦截器拦截将拦截用户名密码登录请求&#x…

项目管理证书 PMP 的含金量高吗?

PMP 含金量,PMP有没有用,这类问题一直是大家关注的重点,知乎上几个相关问题热度也一直很高。 作为有 7 年项目经验的 PMP 持证者,我要跟大家说句实话: PMP 最基础的是项目管理领域的一个资格认证证书,相当…

FastDFS分布式文件系统

FastDFS分布式文件系统 FastDFS是由国人开发的针对中小文件存储的轻量级分布式文件系统,使用C语言进行开发,效率高、跨平台,可以在类UNIX系统上很好运行。整体设计以简单高效为原则,具有冗余备份、负载均衡、在线扩容等性能。 F…

开源生态企业反哺GitLink确实开源创新服务--DevOps引擎合作

日前,建木正式入驻到GitLink引擎模块下。 建木是DevOps领域的小能手,而GitLink又致力于提供强大的开源基础设施,双方可谓一拍即合,强强联手为开发者提供更愉悦、更轻松的研发体验! GitLink(确实开源&#…

Android结构优化 - Java、Kotlin项目结构分包

随着Android中 Java、Kotlin 的混编开发场景越来越多,其中大多人都会将 java文件 和 kt文件 放在同一个资源文件夹下,在项目越来越大的情况下,我们进行代码查询、项目重构、优化都不太便捷,所以本篇主要记录通过 kotlin分包、java…

MySQL集群:双主模式

目录 1、双主模式 1.1、高可用架构 1.2、MMM架构(基于双主模式) 1.2.1、MMM故障处理机制 1.2.2、MMM监控机制 1.3、MHA架构(基于主从模式) 1.3.1、MHA故障处理机制 1.3.2、MHA优点 1.4、主备切换 1.4.1、主备延迟问题 1.4.2、可靠性优先 1.4.3、可用性优先 2、双主…