STM32中BOOT模式配置的作用

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

 boot模式的配置 (见下表)

BOOT 模式说明
BOOT1 BOOT0 模式名称 说明
X 0

主闪存存储器

Main Flash memory

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

系统存储器

System memory

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

内置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模式重新更换到主闪存存储器模式即可

你可能感兴趣的:(单片机,stm32,嵌入式硬件)