ARM异常处理与EDA:入口/出口汇总及编程模型
需积分: 48 74 浏览量
更新于2024-08-16
收藏 2.16MB PPT 举报
本文主要介绍了ARM处理器在异常入口和出口时的处理机制,涉及EDA(电子设计自动化)、ARM体系结构和编程模型的相关知识点,并列举了不同异常类型的返回指令及其状态转换。
在ARM处理器中,异常是指处理器在执行过程中遇到的非正常情况,如软件中断、未定义指令、数据中止等。异常的处理涉及到处理器状态的切换和程序计数器(PC)的更新。异常入口时,处理器会保存当前状态,并进入相应的异常模式,如管理模式、快中断模式(FIQ)、外部中断模式(IRQ)等。异常出口时,处理器会根据特定的指令恢复之前的状态并继续执行。
- **异常返回指令**:
- **BL**:调用子程序后,通过`MOV PC, R14`返回,PC的值是BL指令的地址加4(对于ARM指令)或加2(对于Thumb指令)。
- **软件中断(SWI)**:使用`MOVS PC, R14_svc`返回,PC值加4,R14中保存异常前的地址。
- **未定义指令**:使用`MOVS PC, R14_und`返回,同样PC值加4。
- **预取指中止**:使用`SUBS PC, R14_abt, #4`,PC值加4。
- **快中断(FIQ)**:`SUBS PC, R14_fiq, #4`,PC值加4。
- **外部中断(IRQ)**:`SUBS PC, R14_irq, #4`,PC值加4。
- **数据中止**:`SUBS PC, R14_abt, #8`,PC值加8,适用于数据中止的装载或保存指令地址。
- **复位**:复位异常不使用特定的返回指令,复位时R14_svc的值是不可预知的。
这些指令确保了异常处理后的正确程序流程恢复。
此外,文章还提及了ARM处理器的发展历程,包括:
- MIPS(无互锁级流水线微处理器)和CPU的概念,以及CPU如何通过微指令和硬布线逻辑进行操作。
- 寻址空间的定义,即CPU能寻址的内存范围。
- ARM的不同版本及其增加的功能,如版本1的基础指令集,版本2的乘法指令、协处理器支持和额外的影子寄存器,版本3引入的CPSR和SPSR,以及版本4和5对指令集和处理器模式的扩展,特别是增加了Thumb指令集和处理器特权模式。
在嵌入式开发中,早期的调试工具如在线仿真器(ICE)在目标板上提供了完整的仿真环境,而随着版本的升级,处理器的复杂性和灵活性也相应提升,使得开发和调试工具也需要不断进步以适应新的需求。
总结起来,这篇文章深入浅出地介绍了ARM处理器在异常处理中的工作原理,以及其在不同版本发展过程中的演变,对于理解ARM体系结构和编程模型具有重要价值。
2022-04-01 上传
2008-08-02 上传
2021-02-15 上传
2021-06-04 上传
2021-03-14 上传
2020-11-16 上传
2020-11-16 上传
2020-11-07 上传
速本
- 粉丝: 20
- 资源: 2万+
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍