ARM 异常处理方式简单介绍
创始人
2024-02-23 07:07:03
0

一、什么是异常

  • 正常工作之外的流程都叫异常;

也就是说,除了用户模式和系统模式外,其他情况都是异常,见下图:

在这里插入图片描述

  • 异常会打断正在执行的工作,并且一般我们希望异常处理完成后继续回来执行原来的工作;
  • 中断是异常的一种;

二、异常向量表

  • 所有的 CPU 都有异常向量表,这是 CPU 设计时就设定好的,是硬件决定的
  • 当异常发生时,CPU 会自动动作(PC 跳转到异常向量处处理异常,有时伴有一些辅助动作);
  • 异常向量表是硬件向软件提供的处理异常的支持;

三、ARM的异常处理机制

  • 当异常产生时,需要切换用户模式到某个异常模式 mode,ARM core:

    • 拷贝用户模式的 CPSR 到 SPSR_< mode >
    • 此时,CPSR 寄存器被异常模式 mode 占用,设置适当的 CPSR 位:
      • 改变处理器状态进入 ARM 态
      • 改变处理器模式进入相应的异常模式
      • 设置中断禁止位禁止相应中断 (如果需要)
    • 保存返回地址到 LR_< mode >,用于当退出异常模式 mode 时,继续执行用户模式剩下的程序指令
    • 设置 PC 为相应的异常向量
  • 返回时, 异常处理需要:

    • 从 SPSR_< mode > 恢复 CPSR,恢复用户模式下的 ARM 处理器的状态
    • 从 LR_< mode > 恢复 PC,继续执行用户模式剩下的程序指令
    • Note:这些操作只能在 ARM 态执行.

归纳

异常向量表

1、

异常向量表中,Software Interrupt 是软件中断。发生软件中断的时候,CPU 就会跳转到此处去执行。

什么是软件中断?
一般中断都是硬件产生的,比如按下按钮,手指滑动触摸屏等等。

软件中断, 其实就是 CPU 中的一条汇编指令,只要执行这条汇编指令,就会产生一个软中断;这种软中断是靠程序员
写代码去产生的。软中断一般是用来实现系操作系统的系统调用的,比如:程序员调用 fopen 函数打开一个文件,fopen 函数就会去调用系统调用函数 open ,open 函数会触发软件中断,从而去调用操作系统内置的 open 相关的代码指令。

2、

由于 Thumb 状态是无法处理异常的,所以当异常的时候,需要确保 CPU 处于 ARM 状态,CPU 才能处理异常。
因此,当进入异常模式时,需要改变处理器状态进入 ARM 态。


总结

  • 异常处理中,有一些是硬件自动做的,有一些是程序员需要自己做的。需要搞清楚哪些是需要自己做的,才知道如何写代码。
  • 以上说的是 CPU 设计时提供的异常向量表,一般称为一级向量表。有些 CPU 为了支持多个中断,还会提供二级中断向量表,处理思路类似于这里说的一级中断向量表。

B站朱友鹏老师.

相关内容

热门资讯

普陀山导游词 普陀山导游词(精选5篇)  作为一名可信赖的导游人员,时常要开展导游词准备工作,导游词的主要特点是口...
洱海导游词 洱海导游词  大家好,欢迎各位来到“五朵金花”的故乡一大理,洱海导游词。现在我们的游船正行驶在洱海的...
中华民族园导游词 中华民族园导游词范文  中华民族园坐落在北京中轴线北端亚运村西南,1994年6月18日正式向游人开放...
北京故宫导游词 北京故宫导游词(精选6篇)  作为一名乐于助人的导游,通常会被要求编写导游词,导游词具有极强的实用性...
最新三峡大坝英文导游词 导语:各位导游请点击unjs.com了解详情三峡大坝位于中国湖北省宜昌市境内,距下游葛洲坝水利枢纽工...
避暑山庄的导游词 避暑山庄的导游词15篇  作为一名专门为游客提供优质服务的导游人员,有必要进行细致的导游词准备工作,...
嘉兴旅游景点简介及导游词 嘉兴旅游景点简介及导游词  嘉兴,自古为富庶繁华之地,素有“鱼米之乡,丝绸之府”之美誉。嘉兴旅游资源...
董永公园导游词 董永公园导游词范文  各位游客,欢迎光临孝感董永公园,我是(导游词),我代表我们旅行社欢迎大家到汉孝...
介绍趵突泉的导游词 介绍趵突泉的导游词  作为一名乐于助人的导游,常常需要准备导游词,导游词是讲解当地的基本情况,介绍风...
张家口大镜门的英文导游词 张家口大镜门的英文导游词  Hello,everyone!  Welcome to name is ...
云南丽江古城导游词 云南丽江古城导游词 15篇  作为一名乐于为游客排忧解难的导游,总不可避免地需要编写导游词,导游词事...
杭州花港观鱼导游词 杭州花港观鱼导游词范文  作为一名专门引导游客、助人为乐的导游,编写导游词是必不可少的,导游词具有注...
吉林市松花江导游词 吉林市松花江导游词3篇  作为一位尽职的导游,时常要开展导游词准备工作,导游词事实上是一种对旅游景点...
北京圆明园的导游词 北京圆明园的导游词  圆明园位于北京市西郊,海淀区东部。原为清代一座大型皇家御苑,占地约5200亩,...
沙澧公园导游词 沙澧公园导游词  大家好!欢迎大家来到美丽的漯河,来到美丽的沙澧公园。我姓张,今天由我来为大家服务!...
蒋氏故居导游词 蒋氏故居导游词  蒋氏故居位于浙江省宁波市奉化区溪口境内,昔日蒋氏家族就于此地生活,工作,娱乐等。下...
安徽九华山的导游词 有关安徽九华山的导游词范文  九华山在皖南青阳县境内,是我国四大佛教名山之一。唐代文学家刘禹锡,登上...
阳龙导游词 阳龙导游词  游客朋友们大家好,今天我们一起来游览具有“天下第一缸”之称的云阳龙缸,我是大家今天行程...
世界地质奇观—阿斯哈图花岗岩... 世界地质奇观—阿斯哈图花岗岩石林的导游词  女士们、先生们:大家好!现在我们已经来到了国家4A级旅游...
洛阳牡丹导游词 洛阳牡丹导游词  作为一名具备丰富知识的导游,总归要编写导游词,导游词是导游员进行实地口语导游的基础...