STM32中BOOT模式配置的作用

学习了一段时间stm32单片机, 一直没有搞明白这个Boot 引脚的作用,经过找资料,才算搞明白boot设置, 所谓的启动, 就是我们在程序下载完成后, 重新启动芯片时, SYSCLK的第四个上升沿, BOOT引脚值4会被锁存, 用户可以通过设置BOOT引脚的电平来设置 相应的启动模式.

 boot模式的配置 (见下表)

BOOT 模式说明
BOOT1BOOT0模式名称说明
X0

主闪存存储器

Main Flash memory

主闪存存储器被设为启动区域
01

系统存储器

System memory

系统存储器被设为启动区域
11

内置SRAM

Embedded Memory

内置SRAM被设为启动区域

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

即为Flash, 一般情况下我们使用JTAG或者SWD 下载程序就是下载到这个里面, 当启动时候就会从这里开始启动

二.系统存储器(System memory)

这种模式启动程序功能是由厂家设置的,一般来说用的比较少. 芯片内部有一块特定的ROM区域, 在STM32出厂时候, 预置了一段BootLoader, 就是我们常说的ISP程序,  是ROM区域,出厂后无法修改. 这种启动模式主要是用于串口下载程序,在厂家的BootLoader中提供了串口现在的附件, 可以通过这个固件将程序下载到Flash中,但这种方式下载比较麻烦,通常经过三个步骤:

1. BOOT0 = 1,BOOT1 = 0, 按下复位键,这样方可启动BootLoader;

2.在BootLoader的支持下,可以通过串口将程序下载到Flash中;

3.程序下载完成后,有需要将BOOT0 = 0, 手动复位.

三.内置SRAM(Embedded Memory)

即SRAM, 没有程序存储能力, 一般用来程序调试, 如果我们修改的代码比较少, 需要擦除整个Flash, 相对比较耗时间, 可以用这个模式启动代码, 就是放在内存中, 快速调试, 程序调试完成,再将程序下载到SRAM中. 

四.常用的BOOT模式选择,

1. 配置为主闪存模式, BOOT0为0, BOOT1任意

2. 有时候在开发调试过程中由于某些原因导致内部Flash锁死, 无法使用SWD或JTAG调试, 无法读到设备, 可以通过BOOT模式重新 刷写代码,  修改为系统存储器启动,  ST 出厂自带Boot Loader程序, SWD和JTAG都是专用接口, 程序烧写完成后,BOOT模式重新更换到主闪存存储器模式即可

  • 1
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值