《嵌入式 - 深入剖析STM32》STM32 启动流程详解(GCC)

本文深入解析STM32F103的启动流程,涵盖启动模式、启动文件分析及具体启动步骤。在启动过程中,包括初始化栈顶指针SP、设置PC指针、数据段拷贝、系统时钟配置,最终进入main函数。讲解了Bootloader的作用,以及从0x0800 0000地址开始的系统复位和向量表初始化。通过对汇编和反编译的理解,详细阐述了STM32从Flash启动的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发环境:
处理器:STM32F103
GCC:10.3.1

对于我们常用的桌面操作系统而言,我们在开发应用时,并不关心系统的初始化,绝大多数应用程序是在操作系统运行后才开始运行的,操作系统已经提供了一个合适的运行环境,然而对于嵌入式设备而言,在设备上电后,所有的一切都需要由开发者来设置,这里处理器是没有堆栈,没有中断,更没有外围设备,这些工作是需要软件来指定的,而且不同的CPU类型、不同大小的内存和不同种类的外设,其初始化工作都是不同的。本文将以STMF103(基于Cortex-M3)为例进行讲解。

在开始正式讲解之前,你需要了解ARM寄存器、汇编以及反编译相关的知识,这些可以参考笔者博文。

深入理解ARM寄存器

ARM汇编入门

Keil反编译入门(一)
Keil反编译入门(二)

下面我们就来具体看一下用户从Flash启动STM32的过程,主要讲解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bruceoxl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值