赞
踩
实验目的:
请说明STM32的三种Boot模式的差异,研究至少两种boot模式下,代码下载(烧录)运行后所在的地址位置,与理论对比验证。
实验工具:
硬件:
软件:
在 STM32 的板子上,可以看到有 BOOT0 、BOOT1 这两个管脚,刚买的板子,用短路帽将 BOOT0、BOOT1都接地的,也就是 BOOT0 和 BOOT1 的电平都置为 0,用短路帽将 BOOT 连到 3V3 即可置 1。
以下是Boot的三种启动模式:
由于默认BOOT1和BOOT0的电平为0,故我们一般使用的启动模式为主闪存存储器。
1.Main Flash memory(主闪存存储器)
2.System memory(系统存储器)
Step1:将BOOT0设置为1,BOOT1设置为0,然后按下复位键,这样才能从系统存储器启动BootLoader
Step2:最后在BootLoader的帮助下,通过串口下载程序到Flash中
Step3:程序下载完成后,又有需要将BOOT0设置为GND,手动复位,这样,STM32才可以从Flash中启动可以看到,利用串口下载程序还是比较的麻烦, 需要跳帽跳来跳去的,非常的不注重用户体验。
3.Embedded Memory(内置SRAM)
这次使用的工程来自于之前的实验:【嵌入式】STM32下的C语言编程
下面是工程的压缩包
链接:https://pan.baidu.com/s/1dBUDI-6xEC156kPshccGZA
提取码:w2pe
下面对主闪存存储器和系统存储器进行验证
首先置BOOT1
、BOOT0
均为 0 ,再烧录程序,结果如下:
主闪存存储器的访问地址是从 0x 0800 0000
开始的,最小的地址都没有低于 0x 0800 0000
首先置 BOOT1
为 0 、BOOT0
为 1,再烧录程序(更改一丢丢程序内容)。
烧录完后,串口调试助手没有反应。
这时再置 BOOT1
为 0、BOOT0
为 0,并按 RESET 复位键.
串口调试助手有了显示结果,如下:
对比发现两者地址相同,烧录过程不同
原因
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。