[研电赛技术支持] GD32的Bootloader中实现Ymodem协议进行固件升级

[复制链接]
1641|40
burgessmaggie 发表于 2025-11-13 12:56 | 显示全部楼层
硬件初始化→ 等待 Ymodem 连接 → 接收固件数据 → Flash 擦除与写入 → 校验固件完整性 → 跳转至新固件。
xiaoyaodz 发表于 2025-11-13 13:31 | 显示全部楼层
使用支持Ymodem协议的软件准备待升级的固件文件
kkzz 发表于 2025-11-13 14:18 | 显示全部楼层
GD32通过Bootloader实现Ymodem协议固件升级需完成硬件初始化、协议适配、Flash分区配置及跳转逻辑,核心流程与STM32类似,可复用部分开源代码。
louliana 发表于 2025-11-13 15:05 | 显示全部楼层
Bootloader 作为系统启动的第一阶段代码,负责初始化最小硬件环境,通过 Ymodem 协议接收上位机发送的固件文件,校验后写入 Flash,最终跳转至新固件运行。
玛尼玛尼哄 发表于 2025-11-13 15:16 | 显示全部楼层
涉及协议解析、数据包处理、CRC校验等关键环节
cemaj 发表于 2025-11-13 15:50 | 显示全部楼层
建议参考官方提供的AN1501应用笔记获取更多代码模板和技术细节
juliestephen 发表于 2025-11-13 16:29 | 显示全部楼层
分区地址需在 Bootloader 中硬编码,且用户固件的链接脚本需指定起始地址为 0x08010000,避免与 Bootloader 冲突。
phoenixwhite 发表于 2025-11-13 16:52 | 显示全部楼层
GD32的IAP升级依赖Bootloader引导程序,通过串口接收Ymodem协议传输的固件,校验后写入Flash指定区域,最终跳转到新固件执行。
claretttt 发表于 2025-11-13 18:10 | 显示全部楼层
编译 Bootloader 代码,下载到 GD32 的 0x08000000 地址。
编译用户固件,生成.bin 文件。
jkl21 发表于 2025-11-13 19:03 | 显示全部楼层
在GD32微控制器中实现基于Ymodem协议的Bootloader固件升级
primojones 发表于 2025-11-13 19:39 | 显示全部楼层
Bootloader:编译生成.bin文件,设置Flash起始地址为0x080000001。
APP:修改链接脚本,将起始地址设为0x08007800,并通过编译指令生成.bin文件
usysm 发表于 2025-11-13 20:07 | 显示全部楼层
设备上电后Bootloader发送字符'C',上位机回应包含文件名和大小的数据包,后续数据以1024字节/包传输,每包含序号、反码及CRC校验
51xlf 发表于 2025-11-13 20:27 | 显示全部楼层
检查Application区的栈顶地址是否合法。
重置中断向量表。 将中断向量表的起始地址设置为Application区的起始地址。
设置栈指针并跳转到Application的Reset_Handler。
uiint 发表于 2025-11-13 20:53 | 显示全部楼层
务必仔细检查Bootloader和Application的链接脚本地址是否正确。
digit0 发表于 2025-11-14 15:33 | 显示全部楼层
接收串口数据包时,需设置合适的超时时间,确保数据完整,然后计算CRC校验值以确保数据正确。
LLGTR 发表于 2025-11-16 17:09 | 显示全部楼层
协议解析和数据包处理是处理信息的关键步骤,CRC校验用于验证数据准确性。
V853 发表于 2025-11-17 12:50 | 显示全部楼层
自制引导加载程序加入校验、加密技术,保护固件不被篡改。
dreamCar 发表于 2025-11-19 11:41 | 显示全部楼层
得找一个兼容YModem协议的软件来备份旧固件,再用它来传输新固件到单片机。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部