STM32F103ZET6系统启动过程
一、概述
STM32F103ZET6启动过程指硬件选择启动模式后,执行固件程序之前的一系列动作。对于系统存储器模式,系统执行Bootloader程序升级状态,检测数据进行串口升级;对于内部Flash模式,系统执行启动文件,设置堆栈大小,配置系统时钟,最终调用执行到C程序环境main()函数中,执行软件工程师设计的各功能函数。
二、启动模式和流程
启动模式即系统复位(上电复位、硬件复位、软件复位)后从哪里执行程序,根据BOOT0和BOOT1引脚设置电平不同分为3种:内部Flash、内部SRAM、系统存储器。
注:0:低电平(接GND);1:高电平(接VDD);x:任意电平,即高低电平均可
BOOT0和BOOT1由硬件上设计,人为修改,一般BOOT1默认置低电平,只需要复位前修改BOOT0电平即可切换内部Flash(工作模式)和系统存储器(串口下载模式),内部SRAM模式一般也不用。
(1)内部FLASH模式(正常工作模式)
即从内部FLASH开始执行程序。
STM32在复位信号的上升沿瞬间,硬件自动采样BOOT00和BOOT10到的组合后,芯片内部的存储器控制器根据BOOT引脚状态,建立物理地址映射关系,将0x0000 0000地址映射到内部FLASH的首地址0x0800