《尿不湿级》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 - 古月居可查看全文

相关推荐
jjjxxxhhh1231 小时前
FPGA,使用场景,相比于单片机的优势
单片机·嵌入式硬件·fpga开发
无敌最俊朗@1 小时前
stm32学习之路——八种GPIO口工作模式
c语言·stm32·单片机·学习
EterNity_TiMe_1 小时前
【论文复现】STM32设计的物联网智能鱼缸
stm32·单片机·嵌入式硬件·物联网·学习·性能优化
changingshow3 小时前
Arduino IDE Windows 系统 离线安装 esp32 开发板 亲测好用。
单片机·嵌入式硬件
7yewh5 小时前
嵌入式硬件杂谈(一)-推挽 开漏 高阻态 上拉电阻
驱动开发·stm32·嵌入式硬件·mcu·物联网·硬件架构·pcb工艺
Chervin12 小时前
Windows,虚拟机Ubuntu和开发板三者之间的NFS服务器搭建
linux·单片机·ubuntu·arm
TeYiToKu13 小时前
笔记整理—linux驱动开发部分(8)framebuffer类设备
linux·驱动开发·笔记·嵌入式硬件·arm
电子工程师UP学堂14 小时前
STM32 设计的较为复杂的物联网项目,包括智能家居控制系统,涵盖了硬件和软件的详细设计。
stm32
7yewh14 小时前
嵌入式硬件电子电路设计(五)MOS管详解(NMOS、PMOS、三极管跟mos管的区别)
stm32·嵌入式硬件·mcu·物联网·硬件架构·硬件工程·pcb工艺
电子工程师UP学堂15 小时前
用单片机MSP430设计一个太阳能实战项目,能够详细的设计出它的硬件和软件系统
单片机