ARM的异常中断机制

发布者:asa1670最新更新时间:2017-11-28 关键字:ARM  异常中断机制 手机看文章 扫描二维码
随时随地手机看文章

在我们平时使用计算机时我们敲击键盘,计算机会对我做出响应。这是什么原因呢?处理器又是如何响应外围请求的呢?其实这都是通过处理器的中断机制实现的。ARM又是怎样的中断机制?让我们一起探讨吧!

在ARM处理器里主要是通过3中情况在控制程序执行的:
1.流水方式执行程序,PC的值是下一条指令的地址,即每执行一条指令PC都加一个字的偏移。
2.通过跳转指令来控制程序执行。
   B 跳转到指定的指令处执行。
   BL 跳转执行,保存子程序地址并返回。
   BX 跳转执行并切换到Thumb状态。
   BLX 三种方式组合。
3.通过异常中断机制控制程序执行。
   当异常中断发生时,系统执行完当前指令后,将跳转到相应的异常中断处理程序处执行。在进入异常中断处理程序执行完时,程序返回到发生到产生中断指令的下一条指令处执行。在进入异常中断处理程序时,要保存被中断的程序的执行现场,从异常中断处理程序退出时,要恢复被中断的程序的执行现场。
在实际情况中ARM处理器在控制程序执行时往往是以上3种方式结合执行的。

ARM有以下几种异常中断种类:

异常中断名称 含义
Reset   复位中断,
当处理器复位引脚有效时,如系统产生复位中断则跳转至复位中断异常处理程序处执行。
有两种情况:
系统加电,
系统复位
Undefined instruction  当ARM处理器认为当前指令未定义时,产生未定义的指令异常中断。
Software interrupt软中断,这是有用户定义的中断指令。可用于用户模式下的程序调用的特权操作指令,在RTOS中可以通过该机制实现系统功能调用。
Prefech Abort 指令预取中止,预读指令地址不存在或不能访问则产生该中断。
Data Abotr 数据访问中止,数据访问指令地址不存在或不能访问则产生该中断。
IRQ 外部中断请求,当处理器外部引脚有效时,且CPSR的寄存器I被清除时,产生该中断,并调用中断服务子程序。
FIQ快速中断请求,当处理器快速外部引脚有效时,且CPSR的寄存器F被清除时,产生该中断,并调用中断服务子程序。


呵呵,让我们来看看ARM的异常中断响应过程吧!
1.保存处理器当前状态、中断屏蔽位及各条件标志位。怎样保存呢?
  ARM的6种模式下都有自己的SPSR,它就是通过把当前的CPSR保存到将要执行异常中断的SPSR_mode实现的。
2.设置当前的CPSR的相应的标志位。
  设置M、I、F等控制位。 
3.将lr_mode设成返回地址。
4.将PC指向中断向量表的地址,跳转到对应的中断服务程序处执行。
5.恢复被中断处理的处理器状态。(将SPSR_mode复制到CPSR)
6.返回到发生异常中断的下一条指令处执行。(即PC = lr_mode)

用伪代码描述如下:
lr_mode = pc
spsr_mode = cpsr
cpsr[4:0] =  exception mode
if == Reset or FIQ then 
    cpsr[6] = 1
cpsr[7] = 1
pc = exception mode vector address
cpsr = spsr_mode
pc = lr_mode


关键字:ARM  异常中断机制 引用地址:ARM的异常中断机制

上一篇:ARM中B指令和BL指令的区别
下一篇:基于LPC2210的RTL8019AS以太网驱动系统设计(四)

推荐阅读最新更新时间:2024-03-16 15:47

ARM架构之异常与中断
ARM920T架构中有7中运行模式: 1.用户模式(user) 2.快中断模式(fiq) 3.中断模式(irq) 4.超级用户模式(svc) 5.中止模式(abt) 6.系统模式(sys) 7.未定义模式(und) ARM在处理异常和中断的时候都会到中断向量表中寻找相对应的异常与中断处理程序地址,通过跳转指令去执行相关的异常与中断的处理程序。 在ARM检测到异常或中断时,系统会进入相对应的运行模式,如中断进入IRQ模式,具体进入什么中断可以通过读取CPSR寄存器的值来判断。在进入相关的运行模式中,各个模式都有自己专属的寄存器,不同于通用寄存器,这些是只有进入该模式才有的寄存器,所以在进入异常中断处理程序之前,要保存除了专用
[单片机]
<font color='red'>ARM</font>架构之异常与中断
ARM推出DS-5专业版及ARM Compiler 5.0版
DS-5专业版将取代RVDS,成为ARM架构的参考软件开发工具链 ARM公司今天宣布推出ARM® Compiler 5.0版及ARM® DS™-5 专业版(Development Studio 5.0 Professional),后者取代ARM RVDS™ 系列工具包(RealView Development Suite),成为基于ARM处理器的SoC、ASIC和ASSP设备的参考软件开发工具链。 ARM DS-5专业版以ARM Compiler的成功为基础,同时集成DS-5调试器和Streamline™ 性能分析器,组成基于Eclipse的软件开发工具的完整套件,从而形成一个集成的、强大的、直观的基于Eclips
[嵌入式]
研华认证ARM-Based Design Partner 携艾博唯提供可信赖的服务
北京,4月 12日,2017–全球智能系统领导厂商研华公司(股票代号:2395)郑重宣布,与北京艾博唯科技有限公司正式签订“Advantech Certified ARM-Based Design Partner”合作协议,双方将携手为客户提供更加快速、灵活、可信赖的深度开发支持及客制化服务。 艾博唯成为研华首家认证ARM-Based Design Partner 研华科技IoT嵌入式平台事业群中国区总经理许杰弘先生与北京艾博唯科技董事长陈大勇先生代表双方出席现场。双方就本次签约协议达成共识,签订合作协议。许杰弘先生代表研华对艾博唯颁布授权证书,艾博唯正式成为研华首个ARM-Based Design Partner,双方相互
[物联网]
研华认证<font color='red'>ARM</font>-Based Design Partner 携艾博唯提供可信赖的服务
基于UDP协议的ARM与X86平台之间的通讯方案
  随着人工智能的应用,ARM产品已经遍布到各个领域:工业控制、无线通讯领域、消费类电子产品、成像和安全产品,包括现在流行的数码相机和打印机中绝大部分采用ARM技术,手机中的32位SIM智能卡也采用了ARM技术。除此以外,ARM微处理器及技术还应用到许多不同的领域,并会在将来取得更加广泛的应用,因此,ARM与其它平台之间通讯就显得尤为重要。   1.UDP协议本质   UDP协议是英文User Datagram Protocol的缩写,即用户数据报协议,主要用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世至今已经被使用了很多年,虽
[单片机]
arm ldm stm指令解析
这里比较下容易混淆的四条指令,已经在这4条指令的混淆上花费了很多精力,现在做个小结,LDR,STR,LDM,STM这四条指令,关于LDM和STM的说明,见另外一个说明文件,说明了这两个文件用于栈操作时的注意事项。 (1)LDR:L表示LOAD,LOAD的含义应该理解为:Load from memory into register。下面这条语句就说明的很清楚: LDR R1, R1 —— 就是把R2所指向的存储单元的内容的值(一个memory地址内的值),读取到R1中(一个register) (2)STR:S表示STORE,STORE的含义应该理解为:Store from a register into memory。
[单片机]
ARM MMU工作原理剖析
一、MMU的产生 许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时的程序。但随着图形界面的兴起还用用户需求的不断增大,应用程序的规模也随之膨胀起来,终于一个难题出现在程序员的面前,那就是应用程序太大以至于内存容纳不下该程序,通常解决的办法是把程序分割成许多称为覆盖块(overlay)的片段。覆盖块0首先运行,结束时他将调用另一个覆盖块。虽然覆盖块的交换是由OS完成的,但是必须先由程序员把程序先进行分割,这是一个费时费力的工作,而且相当枯燥。人们必须找到更好的办法从根本上解决这个问题。不久人们找到
[单片机]
<font color='red'>ARM</font> MMU工作原理剖析
基于MB86R01的ARM嵌入式汽车数字化虚拟仪表
  随着汽车、通信、信息电器、医疗、军事等行业的巨大的智能化需要,嵌入式软件及系统发展迅速。微处理器从8位到16位、32位甚至64位,从支持单一品种的CPU芯片到支持多品种的,从单一内核到除了内核外还提供其它功能模块。而且随着硬件技术的不断革新,硬件平台的处理能力不断增强,成本不断下降,嵌入式软件已成为产品的数字化改造、智能化增值的关键性、带动性技术。因此,开发一个集成化嵌入式控制、高速数据采集和网络通信于一体,并提供友好的人机操作界面的硬件平台和多种总线接口,对于提高嵌入式系统可靠性、组网灵活性意义重大。   据此,本文介绍的MB86R01芯片,将ARM926EJ-S核、2D/3D显示、车载通信功能、各种应用接口集成到一个单芯
[单片机]
基于MB86R01的<font color='red'>ARM</font>嵌入式汽车数字化虚拟仪表
飞利浦90纳米ARM9微控制器提供高计算性能和低功耗
飞利浦电子公司日前宣布开始供应业界第一个ARM9核心的90纳米微控制器LPC3180。飞利浦这一全新的32位MCU不仅提供高效能和低功耗,也是唯一提供矢量浮点协处理器和整合的USB On-The-Go,以及在低至0.9V电压的超低功耗模式下运行能力的ARM9微控制器。飞利浦LPC3180的最高速度可达208MHz,是许多高精度应用的理想选择,例如销售点(POS)设备、医疗及工业装置、全球定位系统(GPS)和机器人等。 飞利浦半导体微控制器产品线产品创新总监Ata Khan表示:“藉由先进的90纳米工艺技术的优势,飞利浦能够开发具有高计算性能并针对低功耗运行最优化的最先进的ARM9 MCU。LPC3180推出之后,即使是低成本的电
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved