历史上的今天
返回首页

历史上的今天

今天是:2024年11月01日(星期五)

正在发生

2021年11月01日 | ARM异常及中断处理介绍(中断是异常的一种)

2021-11-01 来源:eefocus

中断

概念:是一个过程,是CPU在执行当前程序的过程中因硬件或软件的原因插入了另一段程序运行的过程。因硬件原因引起的中断过程的出现时不可预测的,即随机的,而软中断是事先安排好的。


中断源

概念:可以引起中断的信号源。


异常优先级

ARM处理器中有7种类型的异常,按优先级从高到低的排列如下:复位异常(Reset)、数据异常(Data Abort)、快速中断异常(FIQ)、外部中断异常(IRQ)、预取异常(Prefetch Abort)、软中断异常(SWI)、未定义指令异常(Undefined interrupt)。

优先级最低的两种异常是软件中断异常和未定义指令异常。因为正在执行的指令不可能既是一条软中断指令,又是一条未定义指令,所以软中断异常和未定义指令异常享有相同的优先级。


注意

在ARM处理器中(Exception)和中断(Interrupt)有些差别,异常主要是从处理器被动接受异常的角度出发,而中断带有向处理器主动申请的色彩。此文中对“异常”和“中断”不做严格区分;两者都是指请求处理器打断正常的程序执行流程,进入特定程序循环的一种机制。


异常

概念:异常由内部或外部源产生并引起处理器处理一个事件。在处理异常之前,处理器状态必须保留,一遍在异常处理程序完成后,原来的程序能够重新执行。同一时刻可能出现多个异常。


注意


当异常出现时,异常模式分组的R14和SPSR用于保存状态。

当处理异常返回时,把SPSR传送到CPSR,R14传送到PC。

异常向量表

概念:当异常发生时,处理器会把PC设置为一个特定的存储器地址(强制从异常类型对应的固定存储地址开始执行程序)。用来记录哪种异常对应哪个地址的表。

特点:


就是一块内存空间,大小为32bytes,平均被分成了8份,每一份对应一个异常源,其中有一份是预留的;

在异常向量表中的每一份存放的是一个跳转指令,跳转到对应的异常处理函数;

异常向量表中每一份的位置是固定的,不能更改;

一般情况下,像启动程序(uboot)起始位置就是异常向量表;

在这里插入图片描述

1.复位异常

概述:当处理器的复位引脚有效时,系统产生复位异常中断,程序跳转到复位异常中断处理程序执行。复位异常中断通常用于系统上电和系统复位两种情况。

复位异常中断处理程序的功能


设置异常中断向量表;

初始化数据栈和寄存器;

初始化存储系统,如系统中的MMU等;

初始化关键的I/O设备;

使能中断;

处理器切换到合适模式;

初始化C变量,跳转到应用程序执行;

2.未定义指令异常

概述:当ARM处理器执行协处理器指令时,它必须等待一个外部协处理器应答后,才能真正执行这条指令。若协处理器没有响应,则发生未定义指令异常。若试图执行未定义指令,也会出现未定义指令异常。未定义指令异常可用于在没有物理协处理器的系统上,对协处理器进行软件仿真,或通过软件仿真实现指令集扩展。


3.软中断异常

概述:软件中断异常指令SWI进入特权模式,执行一些特权模式下的操作系统功能。


4.预取异常

概述:预取异常是由系统存储器报告的。当处理器试图去取一条被标记为预取无效的指令时,发生预取异常。如果系统中不包含MMU,指令预取异常中断处理程序只是简单地报告错误并退出;若包含MMU,引起异常的指令的物理地址被存储到内存中。


5.数据异常

概述:数据异常时由存储器发出数据中止信号,它由存储器访问指令Load/Store产生。当数据访问指令的目标地址不存在或者该地址不允许当前指令访问时,处理器产生数据访问中止异常。


6.外部中断异常

概述:当处理器的外部中断请求引脚有效,并且CPSR寄存器的I控制位被清除时,处理器产生外部中断异常。系统中各外部设备通常通过该异常中断请求处理器服务。


7.快速中断异常

概述:当处理器的快速中断请求引脚有效且CPSR寄存器的F控制位被清除时,处理器产生快速中断异常。


ARM处理器模式和异常

在这里插入图片描述

中断响应

步骤


保护断点,即保存下一个将要执行的指令的地址,就是把这个地址送入堆栈;

寻找中断入口,根据不同的中断源所产生的的中断,查找不同的入口地址;

执行中断处理程序;

中断返回,执行完中断指令后,就从中断处返回到主程序,继续执行;

推荐阅读

史海拾趣

百蓉(ECE)公司的发展小趣事

百蓉公司不满足于仅在国内市场发展,开始积极拓展国际市场。他们参加了多个国际电子展览,与多家国际知名企业建立了合作关系。通过深入了解不同国家和地区的市场需求,百蓉针对性地推出了符合当地消费者需求的产品,逐渐在国际市场上占据了一席之地。

Hayashi Denko Co Ltd公司的发展小趣事

面对智能制造的浪潮,百蓉公司积极拥抱变革。他们引进了先进的自动化设备,对生产线进行了全面升级,实现了从手工制造向智能制造的转变。这一转型不仅提高了生产效率,还大幅提升了产品质量和产品的一致性,使得百蓉的产品在市场上更具竞争力。

Aten International公司的发展小趣事

在电子设备的日益增多的背景下,用户对于高效、便捷的设备管理需求愈发强烈。Aten International凭借其对连接技术的深入理解,成功研发出KVM切换器,该产品能够实现对多台计算机的控制,大大提高了工作效率。随着技术的不断进步,Aten International的KVM切换器不断更新迭代,从最初的简单切换功能,发展到现在的智能管理、远程操控等高级功能,成为了电子行业的一大亮点。

Dexter Research Center Inc公司的发展小趣事

作为一家有社会责任感的企业,Dexter始终关注环境保护和可持续发展问题。公司积极采用环保材料和工艺,减少生产过程中的废弃物和污染物排放。同时,Dexter还积极参与社会公益事业,为当地社区和弱势群体提供帮助和支持。这些举措不仅有助于保护环境、推动社会进步,还提升了Dexter的企业形象和品牌价值。

Clever Little Box公司的发展小趣事

随着公司的发展,Clever Little Box逐渐意识到,单一的产品线无法满足市场的多样化需求。于是,公司开始积极拓展产品线,不仅涵盖了脉冲发生器、转换器等核心产品,还增加了音频/视频电缆组件等辅助产品。同时,公司注重创新,不断研发新技术、新产品,以满足市场的不断变化和客户的个性化需求。

FUJIKURA公司的发展小趣事

Clever Little Box深知,优质的客户服务是企业长期发展的关键。因此,公司始终注重提升服务质量,为客户提供专业的技术支持和售后服务。同时,公司还注重与客户建立良好的关系,通过定期沟通、反馈收集等方式,了解客户的需求和意见,以便更好地满足客户的期望。

问答坊 | AI 解惑

DCR022405P的技术参数

DCR022405P的技术参数 产品型号:DCR022405P 输出电压最小值(V):4.900 输出电压最大值(V):5.100 容限(%):2 输出电流(mA):400 输入电压最小值(V):21.600 输入电压最大值(V):26.400 效率典型值(%):- 静态电流典型值(mA):15 开关频率最大值( ...…

查看全部问答>

如何在WM5系统中实现窗口隐藏?

采用wm5.0 sdk开发wm5的程序,开发环境为visual studio.net 2005,如果采用单文档编写的界面,则程序运行时点击窗口右上角的关闭按钮,则窗口隐藏,然后通过其他任务管理软件可以重新激活重新激活该窗口,但是果果采用的是对话框编写的界面,则程序 ...…

查看全部问答>

编译提示 找不到 pkfuncs.h 文件

谁有此文件,能传给我一个么? 据说这个文件在 platform builder里有,一般的sdk里不包含, 可是连platform builder的下载都很难找 请发到 yuedong_2008@hotmail.com 谢谢 …

查看全部问答>

信息产业部—硬件设计工程师培训火爆报名中!!!!!

全国硬件工程师实训基地系信息产业部电子教育与考试中心指定的硬件工程师独家教育机构,有着多年的IT业培训经验,与诸多IT企业有着密切联系,经过两年多的精心策划特推出PCB设计工程师,单片机设计工程师,嵌入式系统工程师职业培训,详情请百度搜索\" ...…

查看全部问答>

Fitel/Furukawa Fusion Splicer (S 183PM)

我想问我能去哪里买到以下的产品? a)MSK 4200, 75 Volt 5A H Bridge PWM Motor Driver/Amplifier MSK ( M.S. Kennedy Corp) 100 pcs b)MSK 4203, 75 Volt 10A H Bridge PWM Motor Driver/Amplifier MSK ( M.S. Kennedy Corp) 100 pcs c)Fitel/ ...…

查看全部问答>

请问中断处理过程中 中断被禁止多久

中断的过程是这样的吧: 硬件设备发生中断时,ISR会禁止同级和低级中断,然后根据IRQ返回关联的SysIntr,内核根据ISR返回的SysIntr唤醒相应的IST(SysIntr与IST创建的Event关联),IST处理中断之后调用InterruptDone解除中断禁止。 那是不是说在 ...…

查看全部问答>

STM32管脚复用问题

                                 以前没有过多注意,只是根据库来配置io的,发现一个问题手册上没有明确的说明,就是一个管脚除了主功能外,部分还 ...…

查看全部问答>

汽车打铁不良故障的诊断

在汽车上采用将蓄电池负极与车身的金属部分相连接,因此汽车上的负极导线通常称为搭铁线。搭铁线在汽车电路中起着重要的作用,因此搭铁状态的好坏是汽车电器工作好坏的关键。在修理工作中,查找搭铁不良故障,一般都要耗费大量的时间诊断。本文介绍 ...…

查看全部问答>

从51到ARM. 32位嵌入式系统入门

祝大家好运,学习愉快!…

查看全部问答>