历史上的今天
今天是:2025年07月28日(星期一)
2021年07月28日 | Windows上使用 OpenOCD 给 STM32 下载程序
2021-07-28 来源:eefocus
之前有写过如何在Linux上使用openOCD给STM32下载程序的文章,今天给大家介绍一下如何在Windows上使用openOCD。
openocd全名叫做Open On-Chip Debugger,是一个自由开放的片上调试工具和编程工具,目前已经发布到0.11.0版本,目前主流调试器几乎都支持,具体可以查看Open On-Chip Debugger:OpenOCD User’s Guide。
支持下载器列表(部分):
CMSIS-DAP v2 (USB bulk based) adapter driver
Nuvoton Nu-Link and Nu-Link2 adapter drivers
NXP IMX GPIO mmap based adapter driver
ST-Link consolidate all versions in single config
ST-Link read properly old USB serial numbers
STLink/V3 support (for ST devices only)
https://github.com/xpack-dev-tools/openocd-xpack/releases

2. 安装openOCD
这是第三方编译好的软件,解压后配置环境变量即可。
openocd可执行程序在 bin 目录下,将 bin 目录路径添加到环境变量中:
配置好之后重启电脑。
3. 检查是否安装完成
重启后打开命令行,检查是否可以查看openocd版本:

1. 连接到目标芯片
openOCD连接目标芯片的命令格式为:
openocd -f <接口配置文件> -f <目标芯片配置文件>1.
接口配置文件和目标芯片配置文件需要使用绝对路径。
其中接口配置文件是openOCD支持的下载接口,在 scriptsinterface 文件夹下:
目标芯片配置文件是openOCD支持的目标芯片,在 scriptstarget 文件夹下;
比如这里我使用ST-Link v2-1下载器+STM32L431RCT6,结果如图:
2. 下载程序
成功连接到目标芯片后,需要使用 telnet 协议连接到 openOCD 终端,端口4444,这里我使用mobaxterm:

连接之后需要注意,此时终端所在的路径是openOCD开启服务的路径,可以使用pwd命令查看:
连接到openOCD终端之后,按照下面三个步骤下载程序。
① 目标芯片挂起,停机:
halt
1.
② 烧写:
flash write_image erase <要下载的文件> 1. ③ 复位: reset 3. 一行命令完成 可以在启动openOCD的时候,使用 -c 参数带上要执行的命令,通过一行命令完成烧写和复位,无需新建终端使用 telnet 连接openOCD。 openocd -f <接口配置文件> -f <目标芯片配置文件> -c <要执行的命令> 比如之前的过程可以综合为: openocd -f G:develop_toolsopenOCDxpack-openocd-0.11.0-1scriptsinterfacestlink-v2-1.cfg -f G:develop_toolsopenOCDxpack-openocd-0.11.0-1scriptstargetstm32l4x.cfg -c init -c halt -c "flash write_image erase E:/MCU/STM32L431RC-BearPi/usart1-fpu-test/build/usart1-fpu-test.bin 0x08000000" -c reset -c shutdown 下载结果如下: 四、添加到makefile中实现一键下载 1. 添加makefile伪目标 openOCD虽然可以通过一行命令完成下载,将其添加到makefile中作为伪目标: ####################################### # download ####################################### download: openocd -f G:develop_toolsopenOCDxpack-openocd-0.11.0-1scriptsinterfacestlink-v2-1.cfg -f G:develop_toolsopenOCDxpack-openocd-0.11.0-1scriptstargetstm32l4x.cfg -c init -c halt -c "flash write_image erase E:/MCU/STM32L431RC-BearPi/usart1-fpu-test/build/usart1-fpu-test.bin 0x08000000" -c reset -c shutdown 这样我们就可以使用下面这行命令完成烧写: make download 1. 2. 优化makefile 对上述在makefile中添加的命令使用变量进行优化,方便以后不同的工程进行修改: ####################################### # download ####################################### OPENOCD_ROOT = G:develop_toolsopenOCDxpack-openocd-0.11.0-1 OPENOCD_INTERFACE = stlink-v2-1.cfg OPENOCD_TARGET = stm32l4x.cfg OPENOCD_FLASH_START = 0x08000000 PWD_DIR = E:/MCU/STM32L431RC-BearPi/usart1-fpu-test download: openocd -f $(OPENOCD_ROOT)scriptsinterface$(OPENOCD_INTERFACE) -f $(OPENOCD_ROOT)scriptsta

史海拾趣
|
请问系统管理员: 我在这个论坛的级别好不容易升到了“大学三年级”,可是我重装了系统后重新登录,结果级别一下子又回到了小学三年级,真不知道是为什么呀?难道每次重新登录都要从低级开始吗?是不是论坛的系统出了什么问题啦,还是有其他什么原 ...… 查看全部问答> |
|
采用特殊感光油墨实施软板材料与硬板工艺方案,或调整硬性电路板设计而符合软板生产方案,而达到SMD密集性硬性电路板转型软板生产。应用领域广泛。 深圳市实佳电子有限公司以生产销售样板、中小批量柔性电路板、刚柔结合板为主,是个集研发、设计 ...… 查看全部问答> |
|
目录: 概论 §0-1电器的定义和分类 第一篇 电器的发热与电动力 第二篇 电弧与电接触 第三篇 电磁系统 §0-2典型电器的结构原理 §0-3电器学的主要理论范畴 §0-4电器技术的发展简史及其展望 §0-5我国电器制造事业的发展及其远景 第一 ...… 查看全部问答> |
|
强烈推荐一本很好的VxWorks驱动编程书《Tornado Device Driver WorkShop》 无意中找到这本描写驱动结构和编程的书,写的相当好,强烈推荐!!! 大概内容如下: Chapter1 Introduction Chapter2 Methodologies Chapter3 Polling and Interrupt Handling Chapter4 Writing Character Drivers Chapter5 Serial Driver ...… 查看全部问答> |
|
我用VC6.0+XPDDK+DS3.2 编译了一个C代码的网卡驱动的程序,生成了sys文件。 现在想开始写INF文件,我看了一些介绍,DDK里面有个GenINF,这个是不是可以导出INF文件。 在GenINF的向导里我要选择Device class,但是里面没有PCI卡的这一项嘛。下面是 ...… 查看全部问答> |




