欢迎光临深圳市微效电子有限公司官网!
咨询热线:
13423842368
  1. 首页 > 新闻动态 > 常见问题

MCU单片机启动流程

本文以通用MCU(以STM32为主)为例,梳理从上电复位到运行用户程序的完整启动流程,整体分为上电复位、启动模式选择、向量表读取、系统初始化、进入用户程序、中断响应六大阶段。

MCU单片机启动流程

1. 上电复位阶段

MCU上电或手动按下复位键时,内部复位电路实时监测供电电压。待电压达到工作阈值且电压稳定后,向CPU发送复位信号,避免电压波动导致CPU执行异常指令。该阶段会强制CPU恢复初始状态,保证启动可靠性。

2. 启动模式选择

复位结束后,CPU检测硬件配置引脚电平(如STM32的BOOT0、BOOT1),判定程序读取的存储介质,确定启动地址:

- Flash启动:从内部Flash读取程序,为产品正式运行的常用模式;

- RAM启动:从内部RAM加载程序,多用于程序调试;

- 外设启动:通过串口、USB、SD卡等外部设备加载程序,常用于程序升级、批量烧录。

3. 向量表读取与复位中断

确定启动地址后,CPU从程序存储区起始位置读取中断向量表,完成两项核心配置:首先初始化主栈指针(MSP),再读取复位中断向量地址,随后跳转至复位中断服务程序(Reset_Handler)。向量表同时存储各类异常、外设中断入口,为后续中断响应提供地址依据。

4. 底层系统初始化

在复位中断服务程序中完成底层硬件初始化,为C语言运行搭建基础运行环境,主要包含:

- 初始化堆栈、配置RAM内存;

- 初始化C运行库,完成全局变量、静态变量初始化;

- 配置系统时钟,确定MCU工作主频;

- 初始化基础外设,如GPIO、串口、定时器等;

- 调用底层硬件初始化函数(如SystemInit)。

5. 跳转执行用户程序

底层初始化全部完成后,程序跳转至用户代码的main函数,正式执行用户应用程序。此时MCU完成启动流程,硬件外设正常工作,程序一般以死循环作为主体逻辑,可根据业务需求切换低功耗模式,等待触发各类事件。

6. 中断处理机制(运行阶段)

用户程序运行期间,若产生中断请求,MCU依据中断向量表自动跳转至对应中断服务函数(ISR)。硬件自动保存现场寄存器数据,中断处理完成后,恢复现场并返回主程序断点处继续执行,保障主程序运行不受中断干扰。

总结

MCU启动遵循复位→选启动模式→读向量表→底层初始化→进入main函数的固定流程,由硬件电路配合底层汇编代码完成初始化,最终交付控制权给用户程序,是嵌入式系统稳定运行的底层基础。推荐使用辉芒微MCU


Copyright © 2026 深圳市微效电子有限公司 All Rights Reserved    专注于IC芯片代理、MCU芯片代理,主要产品:SPI NOR FLASH、NAND FLASH、SD NAND FLASH、 mcu单片机、温度传感器芯片等存储芯片,粤ICP备2025381541号-1网站地图sitemap.xml

扫描微信,掌握资讯