news 2026/4/18 7:45:20

STM32启动流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
STM32启动流程

STM32的启动流程是从上电复位到进入用户main()函数的一系列关键初始化过程,它确保了硬件和软件环境正确建立。这个过程主要由硬件自动完成和启动文件(.s汇编文件)引导执行。

一、启动流程核心步骤

整个流程可以概括为以下几个关键阶段,它们紧密衔接,为C语言程序的运行铺平道路:

  1. 上电复位与启动模式选择:芯片上电或复位后,硬件根据BOOT引脚的电平状态,决定将哪个物理存储器(如内部Flash、系统存储器或SRAM)映射到地址0x0000 0000
  2. 初始化栈指针(SP)和程序计数器(PC):CPU从映射后的起始地址0x0000 0000读取第一个字(4字节)作为主栈指针(MSP)的初始值,从0x0000 0004读取第二个字作为复位中断向量的入口地址,并赋值给PC指针,从而跳转到复位中断服务程序。
  3. 执行复位中断服务程序(Reset_Handler):这是启动文件中的核心汇编函数。它首先设置系统时钟(通常通过调用SystemInit()函数),然后初始化.data段(将已初始化的全局变量从Flash拷贝到RAM)和清零.bss段(未初始化的全局变量区)。
  4. 跳转到C语言世界:复位服务程序最后会调用C库函数__main__main函数会完成用户堆栈的最终初始化,然后才调用我们编写的main()函数,至此启动过程结束,用户程序开始执行。

二、启动文件(.s文件)的关键作用

启动文件是上述流程的具体实现者,它用汇编语言编写,是上电后执行的第一段代码。其主要工作包括:

  • 设置堆栈(Stack & Heap):定义栈(用于局部变量、函数调用)和堆(用于动态内存分配)的内存空间及大小。
  • 建立中断向量表:向量表是一个存储着各种中断服务程序入口地址的数组。第一个条目是栈顶地址,第二个条目就是Reset_Handler的地址。
  • 提供弱定义的中断服务程序:为所有中断入口预先定义一个空的或死循环的弱符号函数(如Default_Handler)。如果用户在C代码中定义了同名的中断处理函数,编译器会链接用户定义的强符号函数,从而实现中断的接管。
  • 执行复位程序:包含Reset_Handler函数,完成系统时钟配置和运行环境初始化。

三、三种启动模式详解

STM32通过BOOT0和BOOT1引脚的电平组合选择三种启动模式,这决定了初始向量表被映射到的物理位置:

  • 主闪存存储器启动:最常用的模式。程序存储在内部Flash(地址0x0800 0000),该区域被映射到0x0000 0000。通过JTAG/SWD下载的程序即运行于此。
  • 系统存储器启动:从芯片内置的系统存储区(存储了厂家预置的Bootloader程序)启动。该模式常用于通过串口等接口进行程序烧录(ISP)。
  • 片上SRAM启动:将SRAM(地址0x2000 0000)映射为启动区域。由于SRAM内容掉电丢失,此模式主要用于程序调试。

理解STM32的启动流程对于深入掌握单片机工作原理、进行底层调试、实现Bootloader(IAP)以及操作系统移植都至关重要。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 7:03:43

SHA1-HULUD 蠕虫硬盘递归检测器

一场席卷 npm 生态的供应链攻击2025 年 11 月,npm 生态系统遭受了一次大规模的供应链攻击 —— SHA1-HULUD pt 2。这次攻击影响了 288 个流行的 npm 包,包括:PostHog 全家桶 (posthog/*, posthog-node)Zapier 包 (zapier/*)AsyncAPI 工具链 (…

作者头像 李华
网站建设 2026/4/17 18:51:13

Grafana中文版终极汉化指南:一键部署监控仪表盘

Grafana中文版终极汉化指南:一键部署监控仪表盘 【免费下载链接】grafana-chinese grafana中文版本 项目地址: https://gitcode.com/gh_mirrors/gr/grafana-chinese Grafana中文版是一个专为中国用户深度定制的监控仪表盘汉化项目,基于官方Grafan…

作者头像 李华
网站建设 2026/4/17 16:33:54

B2B数字化商城系统开发公司有哪些?

说到B2B数字化商城定制,我们之前讲过几点判断的方法,我们以此来分析商联达:首先,我们看商联达的公司规模商联达成立有多年时间,技术总部在北京、分别在上海、广州、深圳、南京、成都等地都设立了分公司,线下…

作者头像 李华
网站建设 2026/4/16 23:29:25

如何快速实现企业级实时消息推送:RuoYi-Cloud-Plus SSE完整指南

如何快速实现企业级实时消息推送:RuoYi-Cloud-Plus SSE完整指南 【免费下载链接】RuoYi-Cloud-Plus 微服务管理系统 重写RuoYi-Cloud所有功能 整合 SpringCloudAlibaba、Dubbo3.0、Sa-Token、Mybatis-Plus、MQ、Warm-Flow工作流、ES、Docker 全方位升级 定期同步 …

作者头像 李华
网站建设 2026/4/17 18:15:40

品牌排行榜2026年EOR名义雇主服务前8款,助力企业高效拓展全球市场

在2026年的品牌排行榜中,EOR名义雇主服务成为企业全球市场拓展的重要伙伴。这些服务不仅提供合规保障,还提升了企业的运营效率和本地化能力。随着国际市场的快速变化,EOR名义雇主服务帮助企业灵活应对不同法律法规,降低用工风险。…

作者头像 李华
网站建设 2026/4/15 4:34:54

必看!2026年EOR名义雇主服务品牌排行榜:助力企业国际化的最佳选择

EOR名义雇主服务为企业国际化提供了有效的解决方案,帮助公司在不同国家和地区顺利运营。随着2026年品牌排行榜的揭晓,多个服务提供商展示出各自的优势与特色。企业可以从这些排名中了解各大品牌的功能组合,例如薪资管理、合规支持及合同处理等…

作者头像 李华