当前位置:   article > 正文

【嵌入式】STM32的3种Boot与实例验证_嵌入式boot启动模式

嵌入式boot启动模式

一、实验准备

实验目的:

请说明STM32的三种Boot模式的差异,研究至少两种boot模式下,代码下载(烧录)运行后所在的地址位置,与理论对比验证。

实验工具:
硬件:

  • 野火指南者开发板

软件:

  • keil 5
  • 野火串口调试助手

二、介绍Boot模式

在 STM32 的板子上,可以看到有 BOOT0 、BOOT1 这两个管脚,刚买的板子,用短路帽将 BOOT0、BOOT1都接地的,也就是 BOOT0 和 BOOT1 的电平都置为 0,用短路帽将 BOOT 连到 3V3 即可置 1。

以下是Boot的三种启动模式:
在这里插入图片描述
由于默认BOOT1和BOOT0的电平为0,故我们一般使用的启动模式为主闪存存储器。

1.Main Flash memory(主闪存存储器)

  • 访问地址为0x00000000或0x08000000
  • 是STM32内置的Flash,一般我们使用JTAG或者SWD模式下载程序时,就是下载到这个里面,重启后也直接从这启动程序。

2.System memory(系统存储器)

  • 访问地址为0x00000000或0x1FF00000
  • 从系统存储器启动,这种模式启动的程序功能是由厂家设置的。系统存储器是芯片内部一块特定的区域,STM32在出厂时,由ST在这个区域内部预置了一段BootLoader,也就是我们常说的ISP程序,这是一块ROM,出厂后无法修改。
    一般来说,我们选用这种启动模式时,是为了从串口下载程序,因为在厂家提供的BootLoader中,提供了串口下载程序的固件,可以通过这个BootLoader将程序下载到系统的Flash中。但是这个下载方式需要以下步骤:

Step1:将BOOT0设置为1,BOOT1设置为0,然后按下复位键,这样才能从系统存储器启动BootLoader
Step2:最后在BootLoader的帮助下,通过串口下载程序到Flash中
Step3:程序下载完成后,又有需要将BOOT0设置为GND,手动复位,这样,STM32才可以从Flash中启动可以看到,利用串口下载程序还是比较的麻烦, 需要跳帽跳来跳去的,非常的不注重用户体验。

3.Embedded Memory(内置SRAM)

  • 启动时地址为0x00000000或0x20000000
  • 内置SRAM,既然是SRAM,自然也就没有程序存储的能力了,这个模式一般用于程序调试。

三、实例验证

这次使用的工程来自于之前的实验:【嵌入式】STM32下的C语言编程
下面是工程的压缩包
链接:https://pan.baidu.com/s/1dBUDI-6xEC156kPshccGZA
提取码:w2pe

下面对主闪存存储器系统存储器进行验证

1.主闪存存储器

首先置BOOT1BOOT0 均为 0 ,再烧录程序,结果如下:
在这里插入图片描述
主闪存存储器的访问地址是从 0x 0800 0000 开始的,最小的地址都没有低于 0x 0800 0000

2.系统存储器

首先置 BOOT1 为 0 、BOOT0 为 1,再烧录程序(更改一丢丢程序内容)。
烧录完后,串口调试助手没有反应。
这时再置 BOOT1 为 0、BOOT0 为 0,并按 RESET 复位键.
串口调试助手有了显示结果,如下:
在这里插入图片描述

四、对比异同

对比发现两者地址相同,烧录过程不同

  • 主闪存存储器——烧录程序后立马就显示数据;
  • 系统存储器——烧录程序后,需置 BOOT0 为 0,然后按复位显示数据;

原因

  • 主闪存存储器——hex 文件直接储存到 Flash 上,烧录后,程序直接就运行了,开发板和上位机就直接可以进行通信。
  • 系统存储器——将 BOOT0 设置为 1,BOOT1 设置为 0,然后按下复位键,这样才能从系统存储器启动 BootLoader,在 BootLoader 的帮助下,通过串口下载程序到 Flash 中,程序下载完成后,又有需要将 BOOT0 设置为 GND,手动复位,这样,STM32 才可以从 Flash 中启动可以看到(也就是上面的三个步骤)。

五、参考

STM32 BOOT模式配置以及作用
探究 STM32 的三种 BOOT(启动) 模式并实例验证

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/75858
推荐阅读
相关标签
  

闽ICP备14008679号