程序加载功能
程序加载功能用于将固件烧写到 MCU,提供两种加载方式:
- 调试器加载 (SWD):通过硬件调试器(CMSIS-DAP、ST-Link、J-Link)直接烧写 Flash,对标 Keil 的 Flash → Download 功能,无需依赖 Keil 工程
- 串口加载 (UDS):通过串口 UDS 协议在线升级固件,无需调试器硬件
对话框打开时默认显示 调试器加载 页签,两个页签共享同一日志窗口。
如何选择加载方式
| 使用场景 | 推荐方式 | 说明 |
|---|---|---|
| 全新板卡(空白 Flash)首次部署 | 调试器加载 | 先烧写 emeboot,再烧写 APP |
| APP 损坏或无法启动(变砖恢复) | 调试器加载 | 绕过 Bootloader 直接重烧 Flash |
| 手头有 DAP/ST-Link/J-Link 调试器 | 调试器加载 | 连接调试器即可烧写,最快最直接 |
| 日常迭代升级(设备运行正常) | 串口加载 | 只需串口线,自动进度显示,加载后自动重连 XCP |
| 没有调试器硬件 | 串口加载 | 需设备已完成首次部署且能正常运行 |
一句话总结:有调试器用调试器加载(尤其是板子刷不进/起不来时);日常迭代用串口加载。
功能入口
- 菜单栏:工具 → 程序加载
- 工具栏:点击加载按钮
调试器加载 (SWD)
使用前提
- 调试器硬件已连接 PC 与目标板 SWD 接口(CMSIS-DAP / ST-Link / J-Link)
- 目标板已上电
- 软件内置 OpenOCD 工具(
tools/openocd目录),无需单独安装;也可在设置中自定义 OpenOCD 路径
使用步骤
- 打开程序加载对话框,切换到 调试器加载 (SWD) 页签(默认页签)
- 调试器类型:选择实际使用的调试器(CMSIS-DAP / ST-Link / J-Link)
- 烧写目标:
- APP → BankA (0x08020000):烧写应用程序(最常用)
- emeboot → 0x08000000:烧写 Bootloader(仅裸板首次部署需要) - 固件文件:点击 选择 按钮选择固件文件
- 按需勾选选项:
- 烧写后擦除分区状态区 (0x08010000):默认勾选。擦除后 Bootloader 会自动识别新烧写的 APP 并启动,适用于变砖恢复等状态异常场景
- 加载后自动连接 XCP:烧写成功后自动重连 XCP,便于立即观测 - 点击 加载 开始烧写
烧写过程与结果判断
烧写过程输出到共享日志窗口,典型流程:连接调试器 → 识别目标芯片 → 烧写 → 校验 → 复位运行。烧写 384KB 固件典型耗时 10~30 秒,期间无细粒度进度,以日志滚动为准。
成功标志:日志出现 Programming Finished 与 Verified OK,且 UI 提示加载成功。
固件格式说明
| 格式 | 地址来源 | 说明 |
|---|---|---|
| .hex / .elf / .axf | 文件内嵌,无需填写 | 直接烧写 |
| .bin | 使用 固件地址 输入框 | 默认 0x08020000,填错可能导致变砖,请勿随意修改 |
串口加载 (UDS)
使用前提
- 设备已完成首次部署(emeboot + APP 正常运行)
- APP 集成了 emXCP 库的"进 Bootloader"命令
- XCP 已连接(状态栏显示"已连接"),串口波特率固定 115200
使用步骤
- 切换到 串口加载 (UDS) 页签
- 选择固件文件(支持 .bin、.hex、.elf、.axf 格式,自动识别转换)
- 选择目标设备与波特率(缺省 115200)
- 点击 加载 开始下载
-
观察进度条和日志信息:
- 进入 Bootloader 模式
- 擦除 Flash(耗时 3-6 秒)
- 数据传输(显示进度百分比)
- CRC32 校验
- 设备自动重启
- 自动重连 XCP -
下载完成后,设备自动运行新固件,可立即开始观测/标定
注意事项
两种加载的互斥
任一页签的加载进行中时,另一页签的 加载 按钮暂时禁用;页签切换不受影响,可查看另一页签的日志。加载结束后自动恢复。
调试器加载常见问题
| 现象 | 解决方法 |
|---|---|
| 提示找不到调试器设备 | 检查 USB 连接;部分山寨 CMSIS-DAP 需更换 WinUSB 驱动(Zadig 工具) |
| 目标芯片识别失败 | 检查 SWD 接线(SWDIO/SWCLK/GND)与目标板供电 |
| 提示无法访问目标 | 关闭 Keil 等其他正在占用调试器的调试会话后重试 |
| 芯片读保护(RDP) | 需通过 STM32CubeProg 解除读保护后重试 |
| openocd.exe 缺失 | 检查 tools/openocd 目录或在设置中指定 OpenOCD 路径 |
串口加载常见问题
程序加载卡在 0%
- 检查 APP 是否集成了 emXCP 库的"进 Bootloader"命令
- 确认 XCP 已连接后再点击加载
- 手动复位设备,观察串口日志是否显示进入 Bootloader
首次连接失败
- 执行一次全片擦除后重新烧写 emeboot 与 APP
相关文档
- 程序加载部署 - 首次部署详细指南
- 目标机集成与 Boot 部署 - emeboot 与 emXCP 集成说明
- emXCP 目标机库集成 - XCP 库集成说明
- 设备连接 - 串口配置说明