《尿不湿级》STM32 F103C8T6最小系统板搭建(五)BOOT

一、BOOT是什么?

大多数初学者第一次接触BOOT总是对这个词感到不解,从哪冒出一个奇奇怪怪的东西还要接跳线帽,为什么要配置它才能进行串口程序的下载?为什么不正确配置会导致单片机无法正常启动......

boot,及物动词,指"通过使操作系统加载到内存中启动计算机",源自 bootstrap(动词),该动词源自 bootstrap(名词) ,意为"加载计算机操作系统的固定指令序列"(1953年)。那bootstrap为什么被指做"加载计算机操作系统的固定指令序列"呢?

boot-strap,最开始指男靴后部顶部的一个小环或小圈,穿着者可以用手指钩住它来穿上靴子。到1871年,在斯蒂尔的《流行物理学》教科书第一章的最后的"实际问题"中,有一个问题是:"30.为什么一个人不能通过拉起靴带来抬起自己?",所以后来它被用来比喻一个不可能的任务,也被用来暗示"通过严格的、不依赖他人的努力来改善自己"。这正好切合了计算机系统的引导启动程序的功能------------第一个加载的程序通过 bootstrap 来拉起自己。计算机系统就是通过BOOT来拉着自己的靴带来抬起自己。

在STM32中,BOOT是引导加载器(Bootloader)的缩写。引导加载器是位于芯片内部的一段特殊代码,它负责在单片机启动过程中执行一些初始化操作,并加载用户应用程序或固件。

二、STM32的BOOT

STM32的BOOT被BOOT0和BOOT1的引脚电平高低所控制

BOOT0和BOOT1是如何控制BOOT的?

在系统复位后,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。用户可以通过设置BOOT1

和BOOT0引脚的状态,来选择在复位后的启动模式

在从待机模式退出时,BOOT引脚的值将被被重新锁存;因此,在待机模式下BOOT引脚应保持

为需要的启动配置。在启动延迟之后,CPU从地址0x0000 0000获取堆栈顶的地址,并从启动

存储器的0x0000 0004指示的地址开始执行代码。

从Flash启动:

这是最常用的启动方式。在该模式下,复位向量和应用程序代码存储在主Flash存储器中。当微控制器复位时,CPU从Flash的起始地址(通常为0x0800 0000)开始执行代码。Flash存储器通常用于存储固件、应用程序和其他常用数据。

特点和用处:

  • 适用于大多数应用场景,特别是需要长期运行的应用程序。
  • 提供了较大的存储容量,可以容纳较大的代码和数据。
  • 代码和数据可以在开发过程中通过编程器烧录到Flash存储器中。

从系统存储器(System Memory)启动:

STM32微控制器的一些型号具有内置的系统存储器,通常是一小段Flash存储器。在该模式下,复位向量和应用程序代码存储在系统存储器中。当微控制器复位时,CPU从系统存储器的起始地址(通常为0x1FFF 0000)开始执行代码。

启动地址:0x1FFF0000从系统存储器启动,系统存储器是芯片内部的一块特定区域,在出厂时由ST(STMicroelectronics)在该区域内预置了一个Bootloader,也称为ISP(In-System Programming)程序。这个Bootloader是一个只读存储器(ROM),无法在出厂后进行修改。

当将BOOT0设置为1,BOOT1设置为0,并按下复位键时,微控制器会从系统存储器中的Bootloader开始执行。这个Bootloader具有串口下载程序的功能,可以通过串口将程序下载到微控制器的Flash存储器中。

使用这种启动模式时,通常需要执行以下步骤:

将BOOT0设置为1,BOOT1设置为0,并按下复位键,使微控制器从系统存储器启动Bootloader。

在Bootloader的帮助下,通过串口将程序下载到Flash存储器中。

程序下载完成后,将BOOT0设置为GND(地),手动复位微控制器,使其从Flash存储器中启动。

确实,通过串口下载程序相对来说比较繁琐,需要进行引脚配置和手动操作,不太方便。因此,这种启动方式在实际应用中并不常用,除非特定的需求需要通过串口下载程序。一般情况下,从Flash启动是更常见和方便的方式。

特点和用处:

点击《尿不湿级》STM32 F103C8T6最小系统板搭建(五)BOOT - 古月居可查看全文

相关推荐
FreakStudio1 小时前
全网最适合入门的面向对象编程教程:56 Python字符串与序列化-正则表达式和re模块应用
python·单片机·嵌入式·面向对象·电子diy
EVERSPIN4 小时前
分享国产32位单片机的电机控制方案
单片机·嵌入式硬件
每天一杯冰美式oh4 小时前
51单片机的家用煤气报警系统【proteus仿真+程序+报告+原理图+演示视频】
嵌入式硬件·51单片机·proteus
芯橦7 小时前
【瑞昱RTL8763E】音频
单片机·嵌入式硬件·mcu·物联网·音视频·visual studio code·智能手表
夜间去看海11 小时前
基于单片机的智能浇花系统
单片机·嵌入式硬件·智能浇花
VirtuousLiu11 小时前
LM74912-Q1用作电源开关
单片机·嵌入式硬件·ti·电源设计·lm74912·电源开关
打地基的小白11 小时前
软件I2C-基于江科大源码进行的原理解析和改造升级
stm32·单片机·嵌入式硬件·通信模式·i2c
Echo_cy_12 小时前
STM32 DMA+AD多通道
stm32·单片机·嵌入式硬件
朴人12 小时前
【从零开始实现stm32无刷电机FOC】【实践】【7.2/7 完整代码编写】
stm32·单片机·嵌入式硬件·foc
追梦少年时12 小时前
STM32中断——外部中断
stm32·单片机·嵌入式硬件