程序加载功能

程序加载功能用于将固件烧写到 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 路径

使用步骤

  1. 打开程序加载对话框,切换到 调试器加载 (SWD) 页签(默认页签)
  2. 调试器类型:选择实际使用的调试器(CMSIS-DAP / ST-Link / J-Link)
  3. 烧写目标
    - APP → BankA (0x08020000):烧写应用程序(最常用)
    - emeboot → 0x08000000:烧写 Bootloader(仅裸板首次部署需要)
  4. 固件文件:点击 选择 按钮选择固件文件
  5. 按需勾选选项:
    - 烧写后擦除分区状态区 (0x08010000):默认勾选。擦除后 Bootloader 会自动识别新烧写的 APP 并启动,适用于变砖恢复等状态异常场景
    - 加载后自动连接 XCP:烧写成功后自动重连 XCP,便于立即观测
  6. 点击 加载 开始烧写

烧写过程与结果判断

烧写过程输出到共享日志窗口,典型流程:连接调试器 → 识别目标芯片 → 烧写 → 校验 → 复位运行。烧写 384KB 固件典型耗时 10~30 秒,期间无细粒度进度,以日志滚动为准。

成功标志:日志出现 Programming FinishedVerified OK,且 UI 提示加载成功。

固件格式说明

格式 地址来源 说明
.hex / .elf / .axf 文件内嵌,无需填写 直接烧写
.bin 使用 固件地址 输入框 默认 0x08020000,填错可能导致变砖,请勿随意修改

串口加载 (UDS)

使用前提

  • 设备已完成首次部署(emeboot + APP 正常运行)
  • APP 集成了 emXCP 库的"进 Bootloader"命令
  • XCP 已连接(状态栏显示"已连接"),串口波特率固定 115200

使用步骤

  1. 切换到 串口加载 (UDS) 页签
  2. 选择固件文件(支持 .bin、.hex、.elf、.axf 格式,自动识别转换)
  3. 选择目标设备与波特率(缺省 115200)
  4. 点击 加载 开始下载
  5. 观察进度条和日志信息:
    - 进入 Bootloader 模式
    - 擦除 Flash(耗时 3-6 秒)
    - 数据传输(显示进度百分比)
    - CRC32 校验
    - 设备自动重启
    - 自动重连 XCP

  6. 下载完成后,设备自动运行新固件,可立即开始观测/标定


注意事项

两种加载的互斥

任一页签的加载进行中时,另一页签的 加载 按钮暂时禁用;页签切换不受影响,可查看另一页签的日志。加载结束后自动恢复。

调试器加载常见问题

现象 解决方法
提示找不到调试器设备 检查 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


相关文档