4. 烧录软件安装:常用烧录软件介绍与配置

烧录工具装好了,接下来就是软件。说实话,选对烧录软件比选对硬件还重要。我见过不少工程师,硬件买的是顶级货,结果软件装不对,折腾一整天都连不上芯片。今天咱们就把 J-Flash、STM32CubeProgrammer 和 OpenOCD 这三款主流工具讲透。

4.1 三款烧录软件的核心定位

先看个对比表格,心里有个底:

软件名称 适用硬件 操作系统 主要特点 我个人的使用场景
J-Flash J-Link 系列调试器 Windows / Linux / macOS 图形化界面,操作直观,支持批量生产 产线烧录、快速验证固件
STM32CubeProgrammer ST-Link / UART / DFU / OTA Windows / Linux / macOS 全功能烧录+配置,支持加密和选项字节 STM32 全系列开发与调试
OpenOCD FTDI / CMSIS-DAP / 各种调试器 Linux / Windows(需驱动) 开源、命令行、可脚本化 自动化测试、CI/CD 集成

一句话总结:J-Flash 适合「点一下就能烧」的场景;STM32CubeProgrammer 是 ST 生态的瑞士军刀;OpenOCD 则是给喜欢写脚本的人准备的。

4.2 J-Flash 安装与许可证配置

J-Flash 是 Segger 公司的产品,配合 J-Link 调试器使用。我最早接触它是在一个量产项目上,当时要烧 2000 片 STM32F103,用 J-Flash 的批量模式,一天就搞定了。

安装步骤

  1. 访问 Segger 官网下载 J-Link 软件包(包含 J-Flash、J-Link Commander 等工具)。
  2. 运行安装程序,选择完整安装。
  3. 安装过程中会提示安装 J-Link 驱动,务必勾选。
  4. 安装完成后,插入 J-Link 调试器,系统会自动识别。

许可证配置

J-Flash 分为免费版和付费版。免费版限制烧录速度(最高 200 kHz),但个人学习和原型验证完全够用。

小技巧:如果你用的是 J-Link EDU 版(教育版),许可证是自动激活的。商用版需要输入许可证密钥,在菜单栏 Help → License Manager 里输入即可。

我记得有一次,同事的 J-Flash 突然提示「No license found」,折腾了半天才发现是网卡 MAC 地址变了(他换了张网卡)。重新申请许可证就好了。嗯,这里要注意:Segger 的许可证是绑定 MAC 地址的。

4.3 STM32CubeProgrammer 安装与配置

这款工具是 ST 官方推出的,功能非常全。你想想看,它不光能烧录,还能读 Flash、写选项字节、配置 OTP、甚至做 OTA 升级。我最近一个项目用 STM32U5,就是靠它来配置 TrustZone 的。

安装步骤

  1. 从 ST 官网下载 STM32CubeProgrammer 安装包(推荐最新版本)。
  2. Windows 下直接运行 .exe,Linux 下解压后运行 SetupSTM32CubeProgrammer 脚本。
  3. 安装过程中会安装 ST-Link 驱动,如果之前装过旧版,建议先卸载。
  4. 安装完成后,打开软件,连接 ST-Link 或开发板。

许可证说明

STM32CubeProgrammer 是免费的,不需要额外许可证。但要注意:

  • 部分高级功能(如 Secure Boot 配置)需要注册 ST 账号。
  • 如果使用 DFU 模式烧录,需要安装 DFU 驱动(Windows 下会自动提示)。

避坑指南:我曾经在 Windows 10 上遇到过 STM32CubeProgrammer 无法识别 ST-Link 的问题。原因是系统自动安装了错误的驱动。解决办法:打开设备管理器,找到 ST-Link 设备,手动更新驱动为安装目录下的 Driver 文件夹里的版本。

4.4 OpenOCD 安装与配置

OpenOCD 是开源界的宝贝。它支持几十种调试器和上千种芯片。说白了,如果你不想被厂商工具绑定,OpenOCD 就是你的不二之选。但它的学习曲线比较陡——全是命令行。

安装步骤

  • Windows:推荐下载预编译的 openocd-x64-xxx.zip,解压后把 bin 目录加入系统 PATH。
  • Linux:sudo apt install openocd(Ubuntu/Debian)或 sudo pacman -S openocd(Arch)。
  • macOS:brew install openocd。

配置文件与许可证

OpenOCD 本身不需要许可证。但你需要写配置文件来告诉它:用什么调试器、连什么芯片、烧录什么文件。

举个例子,烧录 STM32F407 的配置:

# stm32f407.cfg
source [find interface/stlink.cfg]
source [find target/stm32f4x.cfg]
adapter speed 1000

# 烧录命令
program my_firmware.hex verify reset exit

然后在终端运行:

openocd -f stm32f407.cfg

个人经验:我习惯把常用的配置文件放在一个 openocd_scripts 文件夹里,这样每次烧录只需要改文件名。另外,OpenOCD 的日志输出非常详细,如果烧录失败,先看日志——90% 的问题都能找到线索。

4.5 三款软件的选择建议

到底用哪个?我列个简单的决策流程:

烧录软件选择决策流程 开始选择烧录软件 是否使用 J-Link 调试器? 是 J-Flash 否 是否用 ST 芯片? 是 STM32CubeProgrammer 否 OpenOCD 提示:如果追求图形化操作,优先选 J-Flash 或 STM32CubeProgrammer; 如果需要自动化或跨平台,OpenOCD 是唯一选择。

4.6 安装后的验证方法

软件装好了,怎么知道它能不能用?我一般会做三步验证:

  1. 检查驱动:在设备管理器(Windows)或 lsusb(Linux)中确认调试器被识别。
  2. 读取芯片 ID:用软件连接芯片,读取 Device ID。如果读出来全是 0xFF 或 0x00,说明连接有问题。
  3. 烧录一个空工程:随便写个点灯程序,烧进去看看能不能跑。

警告:千万不要在没确认连接的情况下直接烧录量产固件。我曾经有一次,OpenOCD 的配置文件写错了,结果把固件烧到了调试器的 Flash 里——虽然没坏,但折腾了一下午才恢复。

好了,软件安装这块就讲到这里。记住一句话:工具是死的,人是活的。选对工具,能让你少走很多弯路。