ARM中断处理过程

发布者:那是一条路都最新更新时间:2018-12-19 来源: eefocus关键字:ARM  中断处理 手机看文章 扫描二维码
随时随地手机看文章

 ARM有七种异常中断类型,优先级、工作模式(有七种工作模式)、地址、功能都不一样。如其中软件中断SWI优先级为6,工作模式管理模式,异常向量地址为0x00000008,功能是用户定义的中断指令,可用于用户模式下的程序调用特权操作。


当中断产生后,除了复位中断立即中止当前指令外,其余情况都是处理器完成当前指令后,才去执行异常处理程序。


(1)将CPSR的值保存到将要执行的异常中断对应的各自SPSR中,以实现对处理器当前状态、中断屏蔽及各标志位的保护。


(2)设置当前状态寄存器CPSR的相应位。设置CPSR中的M4~M0的5位,进入相应工作模式,设置I=1禁止IRQ中断,如果进入复位模式或FIQ模式,还要设置F=1以禁止FIQ中断。


(3)将引起异常指令的下一条地址(断点地址)保存到新异常工作模式的LR(R14)中,使异常处理程序执行完后正确返回原来程序处继续向下执行。


(4)给程序计数器PC强制赋值,转入向量地址,以便执行相应的处理程序。


每种中断异常模式对应两个寄存器SP和LR。


从中断返回。如果是复位异常,系统自动从0x00000000开始重新执行程序,无需返回。


(1)首先恢复原来被保护的用户寄存器。


(2)将SPSR寄存器复制到CPSR中,使得原来CPSR状态从相应的SOSR中恢复,一恢复被中断的程序状态。


(3)根据异常类型将PC值恢复成断点地址,以继续执行用户原来运行着的程序。


(4)清除CPSR中的中断禁止标志I和F,开放外部中断和快速中断。


注意:(1)程序状态寄存器及断点地址的恢复必须同时进行。


(2)由于异常随机发生,所以要对异常向量进行初始化,即在异常向量的地址处放置一条跳转指令,跳转到异常处理程序。

关键字:ARM  中断处理 引用地址:ARM中断处理过程

上一篇:关于ARM中断的具体的启动代码解释
下一篇:ARM基本接口之外部中断实验

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

Arm大陆出货10年增长百倍 CEO:看好物联网爆发式增长
Arm最近把过去的“ARM”改成“arm”,企业标志改版了,看起来更灵活弹性。因为5G与物联网(IoT),Arm持续投入研发,也将过去占据手机95%以上市场的实力,持续转移到新兴的物联网领域。尤其,面对竞争对手英特尔(Intel)在大陆加强布局,日前Arm也宣布在大陆设立合资公司,将让大陆有机会参与决定下一代芯片技术的架构、规格和标准。 Arm CEO Simon Segars近日接受大陆媒体专访时表示,被软银(SoftBank)收购后,Arm加大内部研发投入,加速物联网业务布局。目前物联网普及力道低于预期,仅完成约20%;同时物联网应用不只局限在智能家庭;Arm在大陆设立合资公司,即欲加快大陆市场布局。 Simon Se
[半导体设计/制造]
ARM 底层开发工具
现在的ARM基本上都比较强大,从ARM9开始就可以直接上操作系统,如Linux和WINCE。但某些情况下,会裸奔,即不用操作系统,把ARM当做超级MCU用。 要吧ARM当超级MCU用,需要如下开发工具: ADS:不支持ARM11,最高只支持ARM9,现在已淘汰。 Keil MDK-ARM:同RealView MDK是同一个东西。以前的版本,内核用的是Keil的,对ARM的支持不如ARM自家的ADS好,现在已经被ARM公司收购。ARM收购Keil后,编译器改用自家的Real View,成为RealView MDK。 RealView MDK:RealView Microcontroller Develop K
[单片机]
ARM-Linux驱动--ADC驱动(中断方式)
硬件平台:FL2440 内核版本:2.6.28 主机平台:Ubuntu 11.04 内核版本:2.6.39 原创作品,转载请标明出处:http://blog.csdn.net/yming0221/archive/2011/06/26/6568937.aspx 这个驱动写了好久,因为原来的Linux内核编译的时候将触摸屏驱动编译进内核了,而触摸屏驱动里的ADC中断在注册的时候类型选择的是 IRQF_SAMPLE_RANDOM,不是共享类型,所以,自己写的ADC驱动在每次open的时候,总提示ADC中断注册失败。 解决方案: 重新配置内核,选择触摸屏驱动以模块的形式编译,而不是直接编译进内核,这样Linux在启
[单片机]
<font color='red'>ARM</font>-Linux驱动--ADC驱动(中断方式)
ARM基础知识七
简介:ARM编译器支持的数据类型 ************************************************************* ARM编译器支持的数据类型 ************************************************************ 数据类型 长度(位) 对齐特性 Char 8 1(字节对齐) short 16 2(百字对齐) Int 32 4(字对齐) Long 32 4(字对齐) Longlong 64 4(字对齐) Float 32 4(字对齐) Double 64 4(字对齐) Long double 64 4
[单片机]
基于ARM处理器S3C2440和Linux系统的I2C触摸屏设计
0 引言 随着计算机相关技术的发展,ARM嵌入式系统受到越来越广泛的应用,与人们生活的结合也越来越紧密。触摸屏设备因其友善的人机交互性,操作方便灵活,输入速度快,被广泛的应用于这种嵌入式领域中。嵌入式Linux系统具有开发源代码、内核稳定、可裁减性等特点,吸引着众多商业公司和自由软件开发者的目光,成为嵌入式系统领域不可或缺的操作系统之一。触摸屏是一种输入设备,操作简单易学,可靠性高,不占额外的空间,是最常用的便携式系统的输入设备。特别是电阻式触摸屏,它结构简单,成本低,透光效果好,工作环境和外界完全隔离,不怕灰尘和水气,同时具有高解析度、高速传输反应、一次校正、稳定性高、不漂移等特点,因而被广泛用于工业控制领域。 1 电阻式触摸屏
[单片机]
基于<font color='red'>ARM</font>处理器S3C2440和Linux系统的I2C触摸屏设计
ARM协处理器指令
ARM 微处理器可支持多达 16 个协处理器,用于各种协处理操作,在程序执行的过程中,每个协处理器只执行针对自身的协处理指令,忽略 ARM 处理器和其他协处理器的指令。ARM 的协处理器指令主要用于 ARM 处理器初始化 ARM 协处理器的数据处理操作,以及在ARM 处理器的寄存器和协处理器的寄存器之间传送数据,和在 ARM 协处理器的寄存器和存储器之间传送数据。 ARM 协处理器指令包括以下 5 条: CDP 协处理器数操作指令 LDC 协处理器数据加载指令 STC 协处理器数据存储指令 MCR ARM 处理器寄存器到协处理器寄存器的数据传送指令 MRC 协处理器寄存器到ARM 处理器寄存器的数据传送指令 ......
[单片机]
arm开发经验!(适合初学者入门)
前一段时间做了arm的一些开发,主要是编写了arm的启动软件和移植了uCOS-II到arm7。我做事情喜欢深入简出,及从最简单,最原理的方面先做一个框架,然后在这个框架里面进行补充。我还是一个很喜欢和别人讨论的人,希望有人可以给我提出意见和建议。我的这个心得很初级,都是一些基本的东西。现在拿出来和大家分享,希望在我毕业之前能给大家留一些纪念。^_^ 由于这些东西发paper实在是没有价值,但是我感觉可以作为arm开发的入门。由于我的水平和经验有限,错误也是难免的。但是如果不拿出来和大家分享,就算有错误我也发现不了,是么?呵呵。我现试试发连载的第一篇,看看有多少价值,如果大家觉得有价值,我会继续连载的。 连载一: 前言 这
[单片机]
基于嵌入式系统arm2210开发板的移动机器人人机界面设计
  摘要: 移动机器人人机界面为移动机器人的运动控制提供直观的路径图形、运动速度和角度、障碍物信息等。通过arm2210的串口uart0接收中心处理器pc104的运动信息,利用东芝公司的液晶控制器t6963c驱动stn液晶屏yl240128a,以及zlg/gui软件包提供的基本绘图和菜单操作函数设计了基于嵌入式系统arm2210开发板的移动机器人人机界面,并利用arm2210的i2c器件zlg7290提供的i2c接口功能和键盘中断信号实现菜单选择,具有很强的实用性。   引言   嵌入式系统以其高性能、低功耗、低成本的优点,已经在很大程度上改变了人们的生活。如,mp3播放器、智能手机、数码相机产品等已经渗入人们生活的各个方面。
[工业控制]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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