ARM异常处理与EDA:入口/出口汇总及编程模型

需积分: 48 3 下载量 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体系结构和编程模型具有重要价值。