上机实验指南:Bootloader 串口升级与启动验证

目录

1:实验流程概览

[2:修改 APP 代码(改变 LED 闪烁速度)](#2:修改 APP 代码(改变 LED 闪烁速度))

3:制作新版本固件信息并验证升级成功

一句话总结


1:实验流程概览

这张图告诉我们实验要做什么:

  1. 生成 h5_app.bin → 用 create_firmware_info.exe 制作固件信息(一串十六进制数据),复制到串口工具里备用。

  2. 烧写 h5_bootloader_ok 程序到开发板。

  3. 观察串口工具 :当收到字符 '1'(Bootloader 请求固件信息)时,点击"发送"按钮,先发 5 个 0x5A 作为同步头,紧接着发送刚才复制的固件信息。

  4. 当串口工具收到字符 '2'(Bootloader 请求固件数据)时,点击"发送文件",选择 h5_app.bin 发送。

  5. 成功后会看到 "Download OK" 提示。

  6. 修改 h5_app 代码(比如让 LED 闪烁更快),重新编译生成新 bin,然后重复上述步骤,即可实现升级。


2:修改 APP 代码(改变 LED 闪烁速度)

https://7f324e3dc0ec2dc76b00c421ee711da8.jpghttps://7f324e3dc0ec2dc76b00c421ee711da8.jpg

图中是 main.c 的 while 循环,LED 先灭(GPIO_PIN_SET)延时 100ms,再亮(GPIO_PIN_RESET)延时 100ms。要想让 LED 闪烁更快,可以把 HAL_Delay(100) 改成更小的值,比如 50 或 20。修改后重新编译生成新的 h5_app.bin。


3:制作新版本固件信息并验证升级成功

  • 左上角命令行:用 create_firmware_info.exe 为新固件生成信息,版本号设为 5(必须比原来大,比如原来版本是 1),输出的十六进制数据就是新的固件信息。

  • 右侧串口工具界面:提示我们手工复位开发板,重复之前的发送步骤(先发同步头 5A...,再发新固件信息,最后发新的 bin 文件)。烧录成功后,程序自动启动,LED 闪烁速度会变快(因为延时改小了)。


一句话总结

通过这三张图,我们可以完整地实现 Bootloader 串口升级:

先烧写 Bootloader → 用工具生成固件信息 → 在串口助手交互发送信息 + bin 文件 → 看到 "Download OK" → 修改 APP 后重新生成更高版本的固件 → 再次发送,观察 LED 变化,验证升级成功。

相关推荐
LCG米3 小时前
STM32硬件CRC外设实测:多项式固定陷阱、CRC-32校验不匹配根因与软件查表法耗时对比落地
stm32·单片机·嵌入式硬件
La Pulga7 小时前
【FreeRTOS源码学习笔记】任务切换
单片机·mcu·学习·嵌入式·freertos·实时操作系统
女神下凡10 小时前
芯参谋(85):Linux_PPI_NAND_驱动开发指南
linux·运维·arm开发·驱动开发·单片机·嵌入式硬件·设计规范
硅基手札12 小时前
【Linux 内核专栏 19】20 · 嵌入式子系统 — GPIO·pinctrl·clock·regulator
linux·运维·单片机·linux内核·嵌入式开发·调试定位
何粥学14 小时前
Vivado 2024.2 开发记录(AC820 Zynq-7020)——软件使用,点亮led灯
单片机·嵌入式硬件·zynq
Sakura_j_h_15 小时前
51 单片机驱动四位数码管:动态扫描、限流电阻与消影的取舍
单片机·嵌入式硬件·51单片机·嵌入式·数码管·动态扫描·限流电阻
HANDY0920016 小时前
从“不照人”到“剂量达标”:扇叶遮挡式UV-C空气消毒的工程边界与可验证评估框架
开发语言·人工智能·嵌入式硬件·智能家居
飞凌嵌入式18 小时前
千次静电放电试炼,守住飞凌嵌入式硬件可靠底线
嵌入式硬件
蹊黎1 天前
Linux 下用 C 语言实现进度条
linux·c语言·单片机
无敌贵点大王1 天前
从寄存器层面重学STM32(6)——串口USART实战部分
stm32·单片机·嵌入式硬件