【STM32 ST-LINK Utility】工具使用和如何编译HEX和BIN文件

  • [一、STM32 ST-LINK Utility](#一、STM32 ST-LINK Utility)
    • [STM32 ST-LINK Utility简介](#STM32 ST-LINK Utility简介)
    • [STM32 ST-LINK Utility作用](#STM32 ST-LINK Utility作用)
  • 二、KEIL生成HEX和BIN文件
    • [1. 生成HEX文件](#1. 生成HEX文件)
    • [2. 生成BIN文件](#2. 生成BIN文件)
  • [三、STM32 ST-LINK Utility烧录](#三、STM32 ST-LINK Utility烧录)
    • [1. 硬件连接(connect)和 读取](#1. 硬件连接(connect)和 读取)
    • [2. 打开hex程序文件](#2. 打开hex程序文件)
    • [3. 下载烧录程序](#3. 下载烧录程序)
    • [4. 擦除(Erase)](#4. 擦除(Erase))

ST官网下载 STSW-LINK004 - STM32 ST-LINK utility (replaced by STM32CubeProgrammer) - STMicroelectronics

STM32 ST-LINK Utility 是一款由意法半导体(STMicroelectronics)提供的软件工具,用于配合ST-LINK编程器/调试器硬件设备,以实现对STM32系列微控制器的编程和调试。这款工具类似于J-Link工具对于J-Link编程器的作用。

功能概述:

  • 代码烧写:可以直接下载HEX文件或BIN文件到STM32微控制器的闪存中。
  • 代码加密:可以对下载的代码进行读保护,防止未经授权的读取。
  • 批量生产:在产品批量生产阶段,可以快速高效地进行代码烧写。
  • 数据读取:可以读取STM32微控制器中的闪存数据,这对于调试和故障排查非常有用。
  • 设备识别:可以读取STM32芯片的型号、ID、版本等信息,有助于确认目标设备的详细规格。
  • 量产工具:在产品批量生产时,使用STM32 ST-LINK Utility可以直接下载HEX或BIN文件,而无需每次重新编译整个工程。
  • 快速编程:可以快速地将新的固件版本烧写到多个STM32芯片中,大大加快了产品的生产流程。
  • 读取芯片信息:可以读取STM32芯片的型号、ID、版本等信息,有助于快速识别目标设备。
  • 故障诊断:在调试阶段,可以读取STM32芯片的闪存数据,有助于定位和解决潜在的问题。
  • 免驱动安装:安装STM32 ST-LINK Utility软件后,ST-LINK编程器的驱动也会被安装,这意味着ST-LINK可以在其他开发环境中(如Keil、IAR等IDE)直接使用,无需单独安装驱动。

使用场景:

  • 开发阶段:在开发过程中,可以使用STM32 ST-LINK Utility快速测试不同版本的代码。
  • 测试阶段:在测试阶段,可以读取芯片信息和闪存数据,以确保代码的正确性和完整性。
  • 生产阶段:在批量生产阶段,可以快速高效地将最终版本的固件下载到大量STM32芯片中。

STM32 ST-LINK Utility是一款非常实用的工具,不仅适用于STM32产品的开发和调试阶段,也非常适合产品的批量生产阶段。

STM32 ST-LINK Utility是针对STM32全系芯片进行编程(读、写、擦除、选项字)的一款工具。

ST-LINK Utility不仅提供图形化界面(GUI),也提供命令行命令行界面(CLI)。

二、KEIL生成HEX和BIN文件

1. 生成HEX文件

Project→点击魔术棒"Options for Target" → Output →勾选Create HEX File选择输出文件路径和文件名

2. 生成BIN文件

点击魔术棒"Options for Target" → User → 勾选 Run#2,输入命令

点击"Build"编译后就可以在"Objects"文件夹找到生成的Bin / Hex文件了

bash 复制代码
fromelf --bin -o "$L@L.bin" "#L
.\HexBin.bat $K !L @L $L

1. 硬件连接(connect)和 读取

读取STM32内部FLASH及芯片信息 【读取FLASH信息的前提是没有添加读保护】

使用ST-Link连接硬件(STM32芯片),打开STM32 ST-LINK Utility软件,连接芯片:Tarage → connect或直接点击连接快捷按钮(如下图)。

点击"连接按钮"之前可以设置读取的起始地址、大小、宽度,读取其实就是连接芯片之后,自动读取。

2. 打开hex程序文件

在上一步连接好芯片,并正确识别芯片之后,打开需要下载的程序(hex)文件。打开hex文件可以从菜单栏(File → Open File)打开,也可以直接讲hex文件拖动到FLASH区域(就像从电脑复制文件到U盘一样)。

3. 下载烧录程序

在上一步打开hex文件完成之后,点击"下载"(可以Taraget → Program,也可以直接点击下载快捷按钮,如下图)

弹出信息确认窗口,如hex文件路径、验证方式等,确认信息无误后点击"Start"开始下载程序。

下载过程时间长短与程序大小有关,一般都很快,出现"Verification...OK",说明下载成功。

4. 擦除(Erase)

相关推荐
weixin_580382064 小时前
UART寄存器介绍
stm32·单片机·嵌入式硬件
wind_one18 小时前
STM32小实验1--点亮LED
stm32·单片机·嵌入式硬件
szxinmai主板定制专家9 小时前
基于光栅传感器+FPGA+ARM的测量控制解决方案
arm开发·人工智能·嵌入式硬件·fpga开发
Ronin-Lotus11 小时前
嵌入式硬件篇---单稳态&多谐&施密特电路
单片机·嵌入式硬件
逼子格11 小时前
权电阻网络DAC实现电压输出型数模转换Multisim电路仿真——硬件工程师笔记
笔记·嵌入式硬件·硬件工程·硬件工程师·adc·硬件工程师真题·权电阻网络dac
Cyrus_柯13 小时前
单片机(STM32-串口通信)
stm32·单片机·嵌入式硬件·串口通信协议
Ronin-Lotus15 小时前
嵌入式硬件篇---晶体管的分类
嵌入式硬件·晶体管·bjt(双级结性晶体管)·fet(场效应晶体管)
熬夜的猪仔17 小时前
第二章 基于新版Onenet搭建云服务(stm32物联网)
stm32·物联网·freertos
会编程的小孩1 天前
STM32用PWM驱动步进电机
stm32·单片机·嵌入式硬件
努力做小白1 天前
Linux驱动11 --- buildroot&杂项驱动开发方法
linux·运维·驱动开发·单片机·嵌入式硬件