STM32启动流程

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

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

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

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

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

在这里插入图片描述

2、流程图如下:

在这里插入图片描述

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

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

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值