ARM异常处理与中断返回详解

需积分: 50 44 下载量 94 浏览量 更新于2024-08-09 收藏 3.57MB PDF 举报
"该文档是关于消费类IP Camera的参考设计和开发指南,特别是涉及到异常处理和中断管理的细节。内容涵盖了ARM处理器在异常和中断处理时的状态转换、寄存器保存与恢复以及进入异常的步骤。" 在嵌入式系统开发中,异常和中断处理是关键部分,尤其在消费类IP Camera的设计中。文档详细描述了ARM7TDMI处理器在处理异常时的机制。异常可以分为多种类型,如BL(分支链接)、SWI(软件中断)、未定义指令、预取中止、快中断、中断和数据中止等。每种异常都有特定的处理方式,如异常入口时,处理器会保存下一条指令的地址到相应的LR寄存器,并将CPSR(当前程序状态寄存器)复制到SPSR(saved program status register)。 异常处理程序的开始部分通常涉及保存现场,即保存可能用到的寄存器,以备后续恢复。程序清单3.3展示了如何使用STMFD指令保存寄存器,包括LR寄存器,并在退出部分使用LDMFD指令恢复寄存器,同时恢复PC和CPSR。这里的"^"符号表示特殊的LDMFD指令,它能同时恢复PC和CPSR,确保异常返回时的正确状态。 当进入异常时,ARM7TDMI处理器会根据异常类型调整LR寄存器中的返回地址,复制CPSR到SPSR,并根据异常类型切换CPSR的模式。中断异常时,还会设置中断禁止标志,防止异常嵌套。值得注意的是,异常总是在ARM状态中处理,即使处理器在Thumb状态时发生异常。 在嵌入式系统的发展趋势中,32位处理器如基于ARM架构的芯片正在逐渐取代8位和16位微控制器,因为它们提供了更高的处理能力和更好的性价比。LPC2000系列微控制器是PHILIPS推出的一个例子,它为嵌入式系统带来了更强大的32位处理能力。 对于学习和教学嵌入式系统,尤其是基于ARM的系统,了解这些异常处理机制和中断管理至关重要,因为它们是编写高效、可靠嵌入式代码的基础。而针对ARM的书籍通常分为内核介绍、芯片应用和开发板指南等类别,适合不同层次的学习者。本文档则聚焦于异常处理这部分内容,为开发者提供了实用的指导。