STM32启动流程

先阐述一个问题,嵌入式应用程序以C语言为主,因此main函数成为了程序运行起点。但一个经常会被忽略的问题是:微控制器(单片机)上电后,是如何寻找到并执行main函数的呢?
答案是“启动文件”,用英文单词来描述是“Bootloader”。

下面进入正题:
STM32又是如何启动的呢?

1、先来看看STM32几种启动方式:

STM32芯片自带的启动方式有3种,通过设置BOOT1、BOOT0的引脚的高低电平即可选择。

  • 主闪存启动是将程序下载到内置的Flash进行启动(该flash可运行程序),该程序可以掉电保存,下次开机可自动启动。
  • 系统存储器启动是将程序写入到一块特定的区域,一般由厂家直接写入,不能被随意更改或擦除。
  • 内置SRAM启动,由于SRAM掉电丢失,不能保存程序,一般只用于程序的调试。

STM32启动流程_第1张图片

2、流程图如下:

STM32启动流程_第2张图片

3、如果程序执行文件很大,解决如下:

对于一个嵌入式系统的程序来说,如果程序执行文件很大,而STM32内置的存储空间有限,就需要外置Nand flash/Nor flash 和SDRAM,即程序存储在flash中,程序执行在SDRAM中,既节约了成本有提高了运行效率。如果采用外置的Flash+SDRAM的方式,就需要一个更加复杂的启动文件(bootloader)。

你可能感兴趣的:(stm32)