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 的批量模式,一天就搞定了。
安装步骤
- 访问 Segger 官网下载 J-Link 软件包(包含 J-Flash、J-Link Commander 等工具)。
- 运行安装程序,选择完整安装。
- 安装过程中会提示安装 J-Link 驱动,务必勾选。
- 安装完成后,插入 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 的。
安装步骤
- 从 ST 官网下载 STM32CubeProgrammer 安装包(推荐最新版本)。
- Windows 下直接运行
.exe,Linux 下解压后运行SetupSTM32CubeProgrammer脚本。 - 安装过程中会安装 ST-Link 驱动,如果之前装过旧版,建议先卸载。
- 安装完成后,打开软件,连接 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 三款软件的选择建议
到底用哪个?我列个简单的决策流程:
4.6 安装后的验证方法
软件装好了,怎么知道它能不能用?我一般会做三步验证:
- 检查驱动:在设备管理器(Windows)或
lsusb(Linux)中确认调试器被识别。 - 读取芯片 ID:用软件连接芯片,读取 Device ID。如果读出来全是 0xFF 或 0x00,说明连接有问题。
- 烧录一个空工程:随便写个点灯程序,烧进去看看能不能跑。
警告:千万不要在没确认连接的情况下直接烧录量产固件。我曾经有一次,OpenOCD 的配置文件写错了,结果把固件烧到了调试器的 Flash 里——虽然没坏,但折腾了一下午才恢复。
好了,软件安装这块就讲到这里。记住一句话:工具是死的,人是活的。选对工具,能让你少走很多弯路。