复位异常(Cortex-M处理器)

在Cortex-M处理器中,"复位中断"严格来说应称为复位异常(Reset Exception) ,它是优先级最高(固定为 -3 )的系统异常。它不仅仅是一个"中断",更是整个处理器运行的起点。

结合书中内容,复位中断(复位处理程序 Reset_Handler)的核心作用可以总结为以下五点:

1. 初始化核心硬件环境(建立运行基础)

这是复位后硬件自动完成的第一步,不需要软件干预:

  • 加载初始栈指针(MSP) :处理器从向量表的第一个字 (地址 0x00000000)读取数值,自动写入主栈指针(R13/MSP)。这确保了在运行任何C代码之前,堆栈已经准备就绪。
  • 获取起始执行地址 :处理器从向量表的第二个字 (地址 0x00000004)读取复位处理程序的入口地址,并加载到程序计数器(PC)中,强制CPU跳转至 Reset_Handler 开始执行。

2. 初始化"C运行时环境"(从汇编走向C语言)

复位处理程序的核心软件任务是将CPU从原始状态带入可运行高级C语言的状态,主要包括(见书中第4.11、4.12节):

  • 调用 SystemInit() 函数 :配置微控制器的时钟树 (如锁相环PLL)、总线矩阵 和外部存储器。这一步确保CPU能以正确的最高频率运行,且存储映射就绪。
  • 执行 __main(数据搬运与清零) :编译器提供的 __main 函数负责:
    • 将RW-data(已初始化的全局/静态变量)从Flash复制到SRAM中。
    • 将ZI-data (未初始化的全局/静态变量)所在的SRAM区域全部清零。
    • 初始化堆(Heap)和栈(Stack)空间。
  • 跳转至 main() :完成上述"C语言土壤"的准备后,程序最终跳转至用户编写的 main() 函数,开始执行应用程序逻辑。

3. 作为"引导加载程序(Bootloader)"的桥梁

书中第3.29节专门强调了复位处理程序在复杂固件更新中的作用。通过设置向量表偏移寄存器(VTOR):

  • 复位处理程序可以先执行引导加载程序,检查Flash中是否有有效的应用程序镜像。
  • 若无有效应用或需要固件更新,则停留在Bootloader中等待升级;若应用有效,则跳转至应用代码的起始地址,并将向量表重映射至应用区,实现无缝切换。

4. 实现"软件复位"与系统恢复

复位异常不仅可以通过硬件引脚(如NRST)触发,也可通过软件主动触发(书中第4.15节):

  • 通过调用 NVIC_SystemReset() 函数,向应用中断与复位控制寄存器(AIRC)的复位位写入值,产生系统复位信号。
  • 这一特性常用于系统死机(看门狗超时)恢复 、配置变更后重启 ,或者从深度睡眠彻底唤醒。

5. 复位后多级异常的处理映射

复位完成后,处理器默认处于线程模式(Thread Mode) 且拥有特权级别(Privileged) 。在进入用户 main() 之前,复位处理程序还会确保故障异常(如硬故障 HardFault)的默认处理程序(弱定义 WEAK)已就绪,防止程序跑飞后无处可去。


总结一句话 :

复位中断是处理器从"通电状态"过渡到"稳定的C语言运行状态"的唯一通路 。它负责"搭架子"(设置堆栈)、"通血脉"(配置时钟)和"搬砖块"(初始化内存),最终将CPU控制权安全地交给你的应用程序(main 函数)。如果缺少复位处理程序的正确配置,芯片将无法启动或发生内存访问错误。

相关推荐
硅基手札1 天前
【串口技术系列文档 10】低功耗与唤醒机制
驱动开发·stm32·单片机·嵌入式硬件·mcu·计算机外设
HRTOS1 天前
HRTOS 官网内容调整记录:首页、系统架构与文档页面优化
单片机·系统架构·51单片机
雨田言炎1 天前
STM32之SysTick--系统定时器(内容简单但重要,附件有程序源码)
stm32·单片机·嵌入式硬件
ccbw161 天前
CH32M007K8U7:集成48V三相预驱的RISC-V电机MCU
单片机·嵌入式硬件
蓝天居士1 天前
PY32F系列MCU在OTA时App区概率性跑不起来的根因分析(5)
mcu·嵌入式
编程圈子1 天前
I.MX6U 裸机开发 24. 电容触摸屏与 I2C 驱动
单片机·嵌入式硬件
Zwawa1 天前
传感器模块都在交出什么:从模拟电压到数字协议
c语言·单片机·嵌入式
FakeOccupational1 天前
【电路笔记 STM32】Cortex-M7 UART 中断模式(串口接收中断+串口空闲中断)
笔记·stm32·单片机
小李不想当小白1 天前
USART串口协议(STM32标准库学习笔记)
经验分享·笔记·stm32·单片机·嵌入式硬件·学习
无垠的广袤1 天前
拆解电子价签
单片机·蓝牙·diy·调试器·jlink·墨水屏