历史上的今天
今天是: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处理器模式和异常

中断响应
步骤
保护断点,即保存下一个将要执行的指令的地址,就是把这个地址送入堆栈;
寻找中断入口,根据不同的中断源所产生的的中断,查找不同的入口地址;
执行中断处理程序;
中断返回,执行完中断指令后,就从中断处返回到主程序,继续执行;
史海拾趣
|
DCR022405P的技术参数 产品型号:DCR022405P 输出电压最小值(V):4.900 输出电压最大值(V):5.100 容限(%):2 输出电流(mA):400 输入电压最小值(V):21.600 输入电压最大值(V):26.400 效率典型值(%):- 静态电流典型值(mA):15 开关频率最大值( ...… 查看全部问答> |
|
采用wm5.0 sdk开发wm5的程序,开发环境为visual studio.net 2005,如果采用单文档编写的界面,则程序运行时点击窗口右上角的关闭按钮,则窗口隐藏,然后通过其他任务管理软件可以重新激活重新激活该窗口,但是果果采用的是对话框编写的界面,则程序 ...… 查看全部问答> |
|
谁有此文件,能传给我一个么? 据说这个文件在 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解除中断禁止。 那是不是说在 ...… 查看全部问答> |
|
在汽车上采用将蓄电池负极与车身的金属部分相连接,因此汽车上的负极导线通常称为搭铁线。搭铁线在汽车电路中起着重要的作用,因此搭铁状态的好坏是汽车电器工作好坏的关键。在修理工作中,查找搭铁不良故障,一般都要耗费大量的时间诊断。本文介绍 ...… 查看全部问答> |




