STM32复位启动的过程

首先要了解,stm32的存储映射解构,解构如图:(该图来自官方手册)

在存储空间的开头是Alias区域,该部分就是用于存储的重映射。

重映射的选择是由Boot引脚来抉择的。

在程序复位启动时,程序一定先从0x00000000开始执行。这时alias区又映射其他的区域(例如flash)。这时候alias区就好像一个窗口,而被映射的存储区就是透过窗口看到的风景。

于是mcu指针先看到的是映射的0x08000000的flash区的中断向量表。即是

1.初始化msp指针。

2.执行reset_hanlder函数

在s启示文件中,我们能看到

复制代码
; Reset handler
Reset_Handler    PROC
                 EXPORT  Reset_Handler             [WEAK]
     IMPORT  __main
     IMPORT  SystemInit
                 LDR     R0, =SystemInit
                 BLX     R0
                 LDR     R0, =__main
                 BX      R0
                 ENDP

这些语句定义了Reset中断函数的运行逻辑,可以看到。他首先执行了SystemInit函数,后续再执行了__main函数。

而当执行的函数所在的代码地址均在flash上,就好像alias区只是个引入人,当指针运行到相应区域后,这个引入人便失去了作用。

相关推荐
东小东博客17 分钟前
STM32 WS2812 Proteus仿真 汉字显示 SPI控制
stm32·嵌入式硬件·proteus
czhaii5 小时前
STM32中的位带(bit-band)操作
单片机
嵌入式-老费7 小时前
esp开发与应用(DS18B20温度传感器)
单片机·嵌入式硬件
szxinmai主板定制专家7 小时前
基于ZYNQ MPSOC图像采集与压缩系统总体设计方案
linux·arm开发·人工智能·嵌入式硬件·fpga开发
Jonathan_LF8 小时前
DMA使用心得-STM32
stm32·单片机·嵌入式硬件
国科安芯9 小时前
ASM232S抗辐照RS-232收发器的技术架构与空间环境适应性研究
单片机·嵌入式硬件·安全·架构·安全性测试
嵌入式小站10 小时前
STM32 零基础可移植教程 07:USART 串口打印,从 CubeMX 配置到 printf 输出
stm32·单片机·嵌入式硬件
都在酒里10 小时前
STM32矩阵按键详解——4×4行列扫描与非阻塞消抖(硬件总结六)
stm32·嵌入式硬件·矩阵
都在酒里10 小时前
STM32有限状态机(FSM)详解,综合应用总结(二)
stm32·单片机·嵌入式硬件·状态机
嵌入式-老费11 小时前
esp开发与应用(继电器的使用)
单片机·嵌入式硬件