在ARM体系中,通常有3种方式控制处理器的流程

   1:在正常执行过程中,每执行一条ARM指令,程序计数器寄存器PC的值加四个字节,在每执行一条Thumb指令,程序计数器寄存器PC的值加两个字节,整个过程是按照顺序执行的  

   2:通过跳转指令,程序可以跳转到指定的地址标号进行执行,或者跳转到特定的子程序进行执行,其中B指令用于执行跳转操作,BL指令用于执行跳转操作的同时,保存子程序相应的返回地址,BX在执行跳转操作的同时,分居目标地址的最低位,可以将程序切换到THumb状态,BLX执行上述三个操作

   3:当异常中断发生时,系统执行当前指令后,将跳转到相应的异常中断处理程序进行执行,当异常处理中断执行完成之后,程序返回到发生中断的下一条指令出继续执行,在进入异常中断处理程序的时候,要保存被中断程序的执行现场,在从异常中断程序退出时,要恢复被中断的程序的执行现场

ARM处理器对异常中断的响应

  1保存处理器当前的状态,中断屏蔽位,以及各条件标志位,这是通过当前程序状态寄存器CPSR的内容保存到要自信的异常中断对应的SPSR寄存器中实现的

  2设置当前程序状态寄存器的相应的位,包括CPSR中的位,是处理器进入相应的执行模式,设置CPSR中的位,进制IRQ中断,但进入FIQ是,进制FIQ中断

  3将寄存器设置成返回地址

  4将程序计数器PC,设置长异常中断的中断向量地址,从而跳转到相应的异常中断进行处理

从异常中断处理中返回

  1恢复被中断的程序的处理器后状态,讲SPSR_mode寄存器内容复制到CPSR

  2返回到发生异常中断的指令的下一条指令执行,讲IR_MODE中的内容复制到PC

  3复位和异常中断不需要返回,程序计数器PC所指向的不同的异常中断是不同的

转载请注明链接地址:http://www.cnblogs.com/fengdashen/p/3724801.html

转载于:https://www.cnblogs.com/fengdashen/p/3724801.html

ARM体系的异常中断相关推荐

  1. 软件和硬件都是对生活的高度抽象---论中断控制(ARM体系编程)

    不同的芯片体系设计在集成电路系统设计阶段其实都遵循大体一致的设计思想,芯片设计发展那么多年,真正为人所熟知的就是X86架构和ARM架构,当然还有日渐没落的MIPS,其他都是一些简单的控制器芯片体系.而 ...

  2. 嵌入式:ARM异常中断指令SWI、BKPT、CLZ详解

    文章目录 SWI 二进制编码 汇编格式 断点指令(BKPT-仅用于v5T体系) 二进制编码 汇编格式 前导0计数 二进制编码 汇编格式 异常中断指令可以分为一下两种: 软件中断指令(SWI) 断点指令 ...

  3. ARM 之六 Cortex-M 内核中断/异常系统、中断优先级/嵌套 详解

    问题 最近在使用STM32F3芯片的时候,遇到这样一个问题:如果外部中断来的频率足够快,上一个中断没有处理完成,新来的中断如何处理? 在调试时,发现有中断有 挂起.激活.失能等状态,考虑这些状态都是干 ...

  4. arm中断保护和恢复_ARM异常中断的原因及处理措施

    当ARM异常中断发生时,系统执行完当前指令后,将跳转到相应的异常中断处理程序处执行.当异常中断处理程序执行完成后,程序返回到发生中断指令的下条指令处执 行.在进入异常中断处理程序时,要保存被中断程序的 ...

  5. 面经——嵌入式软件工程师ARM体系与架构相关

    参考:嵌入式软件工程师笔试面试指南-ARM体系与架构 作者:嵌入式与Linux那些事 发布时间: 2021-04-28 15:22:06 网址:https://blog.csdn.net/qq_169 ...

  6. 【ARM】ARM体系与计算机组成——第一篇

    目录 前言 一.计算机组成 1.1.存储器种类 1.2.CPU 1.3.存储器和CPU之间的关系 1.4.CPU执行指令过程 1.5.计算机架构 1.6.冯洛伊曼架构功能 2.ARM体系结构 2.1. ...

  7. ARM的体系结构与编程系列博客——ARM体系版本

    ARM体系版本前言 很多人都知道,ARM有许多版本,口中最长说的就是ARM7\ARM9\ARM11,诚然,这个的确是ARM处理器的版本,但绝对不是ARM的版本,其实ARM到迄今为止经历了6代版本,随着 ...

  8. 单片机ARM体系架构知识你知道多少?

    想学习单片机的同学可以关注.私信我或者在评论区回复我要入门.在嵌入式领域中ARM可谓一家独大,所以我们要学习嵌入式开发,一定要了解ARM体系,只有在了解ARM体系的基础上才能理解ARM汇编(GNU汇编 ...

  9. 嵌入式软件工程师笔试面试指南-ARM体系与架构

    哈喽,大家好.我终于回来了!19号刚提交完大论文,就被抓去出差了,折腾了整整一周,26号晚上,才回到学校.鸽了好久都没更新干货了.今天更新一篇关于Arm的笔试面试题目. 文章目录 ARM体系与架构 硬 ...

最新文章

  1. 杨光:物联网连接将成为虚商发展新空间
  2. effective c++ 条款10 让operator= 返回*this的引用
  3. SQL Server2005设置sa登录名
  4. hibernate3.6.0日志配置
  5. 基于bootstrap的 按钮-隐藏 案例
  6. void符合c语言用户标识吗,1以下可用作C语言用户标识符的是()。void,define,.doc...
  7. Salesforce正面叫板微软Office:5.82亿美元收购Quip
  8. 大数据Hadoop快速入门
  9. Setup Factory安装结束自动启动程序
  10. mysql保存提示 HHH000315:Batch update returned unexpected row count from update: 1 actual row count: 0 ex
  11. 微信小程序 behaviors 组件之间数据共享
  12. 神舟战神调节风扇热键_神舟GX9电脑热键驱动
  13. Excel 公式结果为0时不显示
  14. java计算机毕业设计喜枫日料店自助点餐系统源码+系统+数据库+lw文档+mybatis+运行部署
  15. 7.3 习而学与CDIO,来自工程教育思想的启示——《逆袭大学》连载
  16. bms中soh计算方式_电动汽车BMS中SOH和SOP估算策略总结
  17. d3js selections深入理解
  18. 特斯拉Model3车主称无法开启;传高通开发首款笔记本处理器;Dfinity挑战亚马逊 | 雷锋早报...
  19. lucene 分词源码分析
  20. Java collection集合截断

热门文章

  1. 深度解析艾瑞咨询《2017年度中国商业智能行业研究报告》
  2. android field 类型,Gradle buildConfigField 使用Hashmap ArrayList 等类型
  3. ras私钥c#转java_RSA密钥,JAVA与.NET之间转换
  4. complex类模板c++_高中地理综合题答题模板,学霸们都收藏了!
  5. zookeeper 虚拟机搭建好后 外部链接不上_Ubuntu Server搭建Hyperledger Fabric 2.1学习环境...
  6. python 监听tcp端口_创建TCP监听_创建TCP监听_功能示例_Python SDK示例_SDK 参考_开发指南_负载均衡 - 阿里云...
  7. 软件工程导论 02章可行性研究
  8. CodeForces - 801C Voltage Keepsake 二分
  9. Batch入门教程(1)
  10. pytorch损失函数(正在更新中,勿点进来看)