CPU的异常处理

news/2024/11/15 21:33:00/

概述

什么是异常?正常流程之外的流程都叫做异常,中断是异常的一种。

现场保护:中断发生的时候,CPU需要记录当前程序的上下文,然后再去处理异常,以便异常处理完成后,返回到原先的程序当中去。

硬中断和软中断

硬中断就是硬件产生的中断,软中断是一条会汇编指令,只要一执行,就会产生软中断。

异常向量表

所有CPU都有异常向量表,用于处理异常,是硬件决定的。详细来说,出现异常时,CPU转跳到异常处理表,这个行为是硬件决定的,至于异常向量表里面具体的实现动作,是软件定义的。

异常发生的时候,CPU自动把PC寄存器转跳到异常向量处理处理异常。

在这里插入图片描述

如图所示,异常向量表是一个这样的数据结构:不同的异常连续地存放在地址空间中,每个异常对应的向量内容是一个32位的地址,异常发生的时候,CPU将PC寄存器的内容设置成向量指向的地址,CPU进而会去执行地址指向的程序。

ARM的异常处理流程

  1. 将CPSR拷贝到当前模式地SPSR中,以便异常处理后,程序状态寄存器的恢复
  2. 修改CPSR上的标志位,使CPU进入ARM模式,因为Thumb模式不支持异常的处理
  3. 设置中断禁止位,禁止相应的中断(可选)
  4. 保存返回地址到LR寄存器中,以便异常处理后,能够接着上次的位置执行程序
  5. 设置PC程序寄存器,为响应的异常向量
  6. 执行异常处理函数
  7. 从SPSR恢复CPSR
  8. 从LR寄存器恢复PC
  9. 继续运行上一次的程序

http://www.ppmy.cn/news/768255.html

相关文章

架构篇--系统监控--spring-boot2.0.X 系统原生信息监控,SQL信息监控,cpu温度监控报警,cup磁盘内存使用率监控报警,自定义端点监控以及子节点获取,系统异常邮件通知

架构篇–系统监控–spring-boot2.0.X 系统原生信息监控,SQL信息监控,cpu温度监控报警,cup磁盘内存使用率监控报警,自定义端点监控以及子节点获取,加工原生端点,系统异常邮件通知,ui界面spring-b…

tor(洋葱卷)浏览器下载地址

http://torproject.lu/zh-CN/thank-you/

洋葱网络简单介绍

通过洋葱网络来进行匿名访问网站 https://mp.weixin.qq.com/s?__bizMzIzMzgxOTQ5NA&mid2247483855&idx1&sn4c028f0b8df5d5a729e0234197f5f4b3&chksme8fe9dc6df8914d0abc0987385946bab368db8c12593e6b83f2b58cb2b17c9ea515e62e9d4c9&scene21#wechat_redire…

洋葱浏览器Tor Browser for Mac

Tor Browser for Mac是Tor,Vidalia Torbutton的一个易于使用的便携包和Firefox叉预配置协同工作的开箱。它包含一个经过修改的Firefox副本,旨在解决主线版本中的隐私和安全问题。Tor最初是作为美国海军研究实验室的第三代洋葱路由项目设计,实…

Tor 洋葱浏览器下载

Tor Project | 下载你的语言的 Tor 浏览器

电脑翻墙后无法使用浏览器

1打开控制面板 2打开网络与internet 3选择 连接 4局域网设置,选择自动检测设置,其他不勾选

Safari 神器,手机平板都能用,我们找到了 14 个超实用浏览器插件

自 iOS 15/iPadOS 15 之后,移动端的 Safari 有了对扩展插件的全面支持,在各种插件的辅助之下,移动端 Safari 变得更加全面,体验也愈发接近桌面端,这对那些希望用 iPad 替代笔记本作为生产力工具的群体而言,…

Chromedriver安装教程【无需翻墙】

第一步 查看你当前Chrome浏览器的版本,如下图所示: 第二步 查看当前Chrome浏览器的版本号,如下图所示,版本 108.0.5359.125(正式版本) (64 位)中的,108就是我们的版本号。 第三…