当前位置: 首页 > news >正文

STM32 启动流程

我用最容易理解的方式,把 STM32 从上电 → 运行 main ()的全过程讲清楚,Cortex‑M 内核通用(STM32F1/F4/H7/L4 全都一样)。


一、一句话总结启动流程

上电 → 从 Flash 读取栈顶地址 → 加载复位中断函数地址 → 跳转到复位函数 → 初始化硬件 → 跳转到 main () → 死循环


二、详细 7 步启动流程(必须掌握)

第 1 步:上电 / 复位

  • 电源接通,或复位键按下
  • CPU 进入复位状态

第 2 步:从 0x08000000 读取栈顶地址 (SP)

  • STM32 启动时,强制从 Flash 起始地址 0x0800_0000 取第一个字
  • 这个字是栈顶指针(Stack Pointer)
  • 作用:给程序运行准备堆栈空间

第 3 步:读取复位中断服务函数地址

  • Flash 第 2 个地址:0x0800_0004
  • 这里存放的是复位函数 Reset_Handler 的入口地址

第 4 步:跳转到Reset_Handler 复位函数

这是程序真正执行的第一行代码,由启动文件(startup_stm32xx.s)提供。

第 5 步:初始化数据段(.data)

  • 初始化变量从 Flash 复制到 RAM
  • 例如:int a = 10;

第 6 步:清零未初始化数据段(.bss)

  • int b;这类未赋值变量全部清 0
  • 防止随机值导致程序异常

第 7 步:跳转到 C 语言的main () 函数

main();

三、启动文件(startup_stm32xx.s)到底干了什么?

它是汇编文件,是 MCU 上电后第一个执行的代码。

主要做 4 件事:

  1. 设置栈顶 SP
  2. 设置中断向量表(复位、异常、中断入口)
  3. 初始化 RAM 数据
  4. 调用 main ()

四、最关键:中断向量表(启动核心)

Flash 开头固定放中断向量表

0x08000000: 栈顶地址 (第一个指令) 0x08000004: 复位函数地址 (第二个指令) 0x08000008: 硬fault地址 0x0800000C: 存储器管理fault ...

复位函数地址 = 程序真正的入口


五、超简洁流程图(秒懂)

上电 ↓ 读栈顶地址(SP) ↓ 读复位函数地址 ↓ 执行 Reset_Handler ↓ 初始化 .data 和 .bss ↓ 进入 main() ↓ while(1) 死循环

六、最核心的 3 个知识点(面试必考)

  1. STM32 程序入口不是 main (),而是 Reset_Handler ()
  2. 中断向量表放在 Flash 起始位置
  3. 启动文件负责初始化堆栈和 RAM,再跳转到 main

七、一句话终极总结

STM32 上电先找栈,再找复位函数,初始化 RAM 后才进入 main ()。

http://www.jsqmd.com/news/695402/

相关文章:

  • 从游戏机制实战出发:用UE5的碰撞与重叠,5分钟实现一个‘拾取道具’和‘推开木箱’功能
  • 别再死记硬背了!用Python代码帮你理解离散数学里的‘永真式’和‘等价关系’
  • LSGAN原理与Keras实现:解决GAN训练梯度消失问题
  • 2026 年 4 月市面上输送机厂家/工作站集成流水线/网带输送机/提升机/转弯流水线厂家选择指南 - 海棠依旧大
  • 大模型的探索与实践-课程笔记(九):环境安全、RAGFlow避坑与AI前沿工具实战
  • 从一次机房搬迁说起:老司机复盘VSAN 6.5集群关机重启的那些‘坑’与最佳实践
  • 机器学习数学符号全解析:从入门到精通
  • AI Scientist-v2:智能体树搜索驱动的自动化科研系统部署与实战
  • 别再问‘我该学哪个’了!一文讲透Unity、UE4、Cocos、Laya、Egret五大游戏引擎怎么选
  • WebStorm已经过期的重置方法
  • 2026 年 4 月不锈钢棒材/无人机五金零配件/医疗器械专用不锈钢棒材/精密五金车床加工不锈钢棒材/螺栓螺母专用不锈钢材料榜单 - 海棠依旧大
  • Burpsuite Intruder模块实战:四大攻击模式深度解析与靶场应用
  • 2026发泡PVC颗粒技术要点与权威供应商实测分析 - 优质品牌商家
  • STM32F103C8T6驱动WS2812灯带:用GPIO模拟时序的避坑指南与代码详解
  • AI 在软件开发中的角色:工具、场景、效率与未来趋势深度研究报告
  • 深度解析GPT-Image-2架构:探秘强大根源,Open AI的又一里程碑式突破
  • 用大疆遥控器玩转M3508电机:基于STM32 HAL库的完整项目搭建与调试避坑
  • 2026年4月评价高的青岛防水补漏/窗户防水补漏/露台防水补漏厂家选择指南 - 海棠依旧大
  • 告别单调字体!用Unity编辑器扩展+TextMeshPro,5分钟搞定游戏艺术字(附完整源码)
  • 后端转智能体开发有多香 核心技能无缝衔接
  • OpenAI 爆发 GPT 5.5:AI 竞争进入“日更”时代,Claude Opus 4.7 王座告急!
  • 2026 年 4 月行业内上海防水补漏公司/上海防水/上海飘窗漏水维修/上海别墅外墙保温隔热/上海房屋修缮 厂家推荐 - 海棠依旧大
  • 国内景观雕塑权威推荐榜 五家实力企业客观盘点 - 优质品牌商家
  • 多变量时间序列预测在空气质量分析中的应用与实践
  • 自动驾驶基础:感知、决策、控制三层解析
  • 基于RAG架构的企业知识库智能问答系统搭建实战
  • 2026年4月登车桥采购决策指南:聚焦济南捷尔斯升降机械有限公司的源头优势 - 2026年企业推荐榜
  • 2026年4月23日 今日科技要闻 具身智能:自变量机器人B轮融资20亿,5月首批进家庭
  • c++怎么在写入文本文件时自动将所有的制表符统一转换为四格空格【实战】.txt
  • 2026年4月全国草本轻养饮品品牌渠道排行:荣泓清风饮料怎么样,荣泓清风饮料购买,重庆鹰健飞主营产品,优选推荐! - 优质品牌商家