如何使用STM32微控制器的ST Open Bootloader
如何使用STM32微控制器的ST Open Bootloader 1。简介ST Open Bootloader是STM32微控制器的示例应用程序代码,提供应用程序内编程(IAP),并在STM32Cube MCU包和GitHub中提供。。。
如何使用STM32微控制器的ST Open Bootloader
1.简介
ST Open Bootloader是提供应用程序内编程(IAP)的STM32微控制器的示例应用程序代码,在STM32Cube MCU包和GitHub中提供。它与STM32系统引导程序完全兼容,支持相同的通信接口和命令,也可与STM32CubeProgrammer一起使用。Open Bootloader作为示例代码提供,可用于构建自定义的引导加载程序。它允许将应用程序下载到内部用户存储器(闪存、SRAM、OTP),而不需要使用可用通信接口之一(USART、I2C、SPI、USB-DFU或FDCAN)的调试器。
Open Bootloader通过接口链接与主机(STM32CubeProgrammer或其他主机)通信,将固件下载到设备,以写入目标用户内存。Open Bootloader依赖STM32Cube HAL/LL驱动程序进行硬件系统初始化以及时钟和通信接口的配置。打开引导程序代码可以加载到用户闪存或SRAM中,采取必要的预防措施以避免擦除或损坏(即使用写保护功能)。Open Bootloader在非安全域中从用户Flash或SRAM使用以下资源在初始基地址执行:
- 非安全内部闪存/SRAM1
- 中断
- 时钟和电源
- 通信接口
- GPIO公司
- 系统刻度
- IWDG公司
本文展示了如何在STM32Cube库包中找到ST Open Bootloader,并通过一个将其编程到STM32中并与STM32CubeProgramer一起使用的示例进行了说明。
2.先决条件示例
- 硬件
- Micro USB电缆:为板供电和编程
- Type-C USB电缆:用于连接板载STM32G0的USB外围设备
- STM32G0C1E-EV评估板

- 软件
- STM32管
- STM32管式编程器
3.入门
ST Open Bootloader是STM32Cube Library软件包的一部分。此示例使用STM32G0C1评估板,Open Bootloader可在此处找到:
STM32Cube_FW_G0_Vx.x\Projects\STM32G0C1E-EV\Applications\OpenBootloader
提供了STM32CubeIDE、IAR EWARM和Keil uVision工具链的项目示例,而本文使用的是STM32CubeIDE。ST Open Bootloader支持各种外围接口(UART、I2C、SPI、CAN、USB DFU),STM32G0 System Memory Bootloader也是如此。本例将使用USB DFU。
4.步骤
-
下载并解压缩最新的STM32G0CubeG0固件库:
-
打开ST Open Bootloader项目:
STM32Cube_FW_G0_V.1.5.0\项目/STM32G0C1E-EV\Applications\OpenBootloader/STM32CubeIDE
然后,该项目将显示在项目资源管理器中,如下所示:

-
构建项目,进入调试模式并运行代码

进入调试会话:这将代码编程到闪存中,然后启动调试会话

通过终止调试会话来退出调试会话。
默认情况下,引导模式已设置为从Flash执行。
重置板,ST Open Bootloader将开始执行。ST Open Bootloader在检测阶段开始,检查各种通信外围接口是否存在寻找主机连接的活动。
将USB Type C电缆插入连接到STM32G0母板的CN7子板。USB主机将开始通信,将板枚举为设备管理器中确认的USB DFU设备:

打开STM32CubeProgammer:
- 选择STM32CubeProgamer中的USB接口以通过USB建立连接:

确认USB连接已建立,如下所示。如果不是,请单击刷新按钮


现在单击“连接”按钮进行连接:

连接完成后,闪光灯的内容将显示如下:

虽然现在可以读取、擦除或写入闪存,但主要目标是将新的应用程序映像上载到STM32G0中。
5.链接
STM32G0C1VE-主流Arm Cortex-M0+32位MCU,最高512KB闪存,144KB RAM,6x USART,定时器。。。STM320x1基于Arm®的高级32位MCU-参考手册
STM32CubeIDE-STM32集成开发环境-STMicroelectronics
STM32CubeG0-适用于STM32G0系列的STM32Cube MCU封装(HAL、低层API和CMSIS、USB PD、文件。。。
STM32CubeProg-适用于所有STM32-STMicroelectronics的STM32Cube编程器软件
STM32G0C1E-EV-带STM32G0C11VE MCU的评估板-STMicroelectronics
AN2606-STM32微控制器系统内存引导模式
AN3155-STM32引导加载程序中使用的USART协议
AN4221-STM32引导加载程序中使用的I2C协议
AN4286-STM32引导加载程序中使用的SPI协议
AN3156-STM32引导加载程序中使用的USB DFU协议
AN5405-STM32引导加载程序中使用的FDCAN协议
AN3154-STM32引导加载程序中使用的CAN协议
STM32在GitHub上打开引导加载程序
上一篇: 如何在STM32H7上配置和使用PSSI 下一篇: 如何在IAR中调试X-Cube-AWS