DSP28335四路PWM移相异常返回机制解析

需积分: 48 12 下载量 8 浏览量 更新于2024-08-06 收藏 1MB PDF 举报
"异常返回的行为-基于dsp28335的四路pwm移相代码" 本文主要讨论了基于Cortex-M0处理器的异常返回机制,这是嵌入式系统中非常重要的一个概念,特别是在处理中断和异常时。Cortex-M0是ARM公司设计的一种低功耗、高性能的微控制器核心,广泛应用于各种嵌入式应用。 异常返回是处理器从异常处理程序返回到正常执行流程的过程。在Cortex-M0中,这个过程由EXC_RETURN值触发,该值在异常进入时被保存在链接寄存器(LR)中。异常返回通常发生在POP指令用于加载PC或BX指令用于根据任何寄存器进行跳转时,如果PC被设置为具有特定形式的EXC_RETURN值(bit[31:4]为0xFFFFFFF),处理器会识别到这并不是常规的分支操作,而是异常处理的结束,并开始异常返回序列。 异常返回的行为由EXC_RETURN的bit[3:0]决定,这些位指示了应使用的堆栈和返回后的处理器模式。例如: - 0xFFFFFFF1 表示返回到处理器模式,使用主堆栈(MSP)继续执行。 - 0xFFFFFFF9 和 0xFFFFFFFD 分别表示返回到线程模式,根据bit[3:0]的不同,选择MSP或进程堆栈(PSP)作为执行后的堆栈。 除了异常返回,文档还提到了故障处理,故障是异常的一个子集。故障通常会导致HardFault异常,如果在NMI(非 maskable interrupt)或HardFault处理程序中出现故障,则会导致系统锁定。以下是一些可能导致故障的情况: 1. 在SVCall优先级及以上级别执行SVC指令。 2. 在无调试器情况下执行BKPT指令。 3. 存储或加载操作时遇到系统产生的总线错误。 4. 执行位于执行禁止(XN)内存地址的指令。 5. 从导致总线故障的地址执行指令。 6. 在提取向量时发生系统产生的总线错误。 这些故障情况对于理解和调试基于Cortex-M0的系统非常重要,因为它们帮助开发者识别和解决问题,确保系统的稳定运行。 Cortex-M0参考手册提供了关于异常和故障处理的详细信息,是开发者处理这类问题的关键资源。而提供的广州周立功单片机发展有限公司的信息则表明,该公司可能提供与Cortex-M0相关的微控制器产品和服务,包括销售、技术支持以及全国范围内的销售网络。