历史上的今天
返回首页

历史上的今天

今天是: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版本:

三、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


推荐阅读

史海拾趣

诚润电子(CHEVRON)公司的发展小趣事

在电子行业中,创新是企业持续发展的动力。诚润电子一直保持着对新技术、新产品的敏锐洞察力。他们不断投入研发资金,引进先进的生产设备和技术人才,致力于研发出更加先进、更加符合市场需求的产品。正是这种不断创新的精神,使得诚润电子在电子保护元件领域始终保持领先地位。

HARTING公司的发展小趣事

诚润电子(CHEVRON)自创立之初,就以技术为核心竞争力。公司在2010年正式成立,由一群热衷于电子保护元件研发的工程师创立。他们深知,在这个日新月异的电子行业中,只有不断创新,才能在竞争中立于不败之地。因此,诚润电子从一开始就专注于电子保护元件的研发和生产,通过不断的技术创新,逐渐在市场中树立起了自己的品牌。

GHI Electronics公司的发展小趣事

随着业务的不断拓展,GHI Electronics开始实施全球化战略。公司积极寻求与全球合作伙伴的合作机会,共同开拓新市场。同时,GHI Electronics还在多个国家和地区设立了分支机构或研发中心,以便更好地服务当地客户并快速响应市场需求。这种全球化战略布局不仅增强了GHI Electronics的市场竞争力,也为其带来了更多的商业机会和发展空间。

HCH Co公司的发展小趣事

背景:面对电子行业的快速变化和多元化需求,HCH Co公司意识到仅凭一己之力难以应对所有挑战。因此,公司积极寻求与其他行业的跨界合作机会,以共同推动电子行业的创新发展。

发展:通过与汽车、医疗、教育等多个行业的领军企业建立合作关系,HCH Co公司成功将自身的电子技术和产品应用于更广泛的领域。例如,与汽车制造商合作开发智能驾驶系统、与医疗机构合作研发远程医疗设备等。跨界合作不仅为公司带来了新的增长点,也促进了不同行业之间的技术交流和资源共享。未来,HCH Co公司将继续秉承开放合作的理念,与更多行业伙伴携手共创美好未来。

请注意,以上五个故事是基于假设构建的,旨在反映电子行业中企业可能的发展路径和趋势。实际情况中,“HCH Co”公司的具体发展故事可能有所不同。

ABB公司的发展小趣事

背景:随着全球对环境保护和可持续发展的重视程度不断提高,HCH Co公司积极响应号召,开始了绿色转型之路。公司致力于开发环保型电子产品和绿色生产技术,以减少对环境的影响。

发展:通过不断的技术创新和生产工艺的改进,HCH Co公司成功推出了一系列环保型电子产品,如可回收材料制成的外壳、低功耗的显示屏等。同时,公司还加强了废弃电子产品的回收和再利用工作,实现了资源的循环利用。绿色转型不仅提升了公司的社会形象,也为公司的长期发展注入了新的动力。

Amulet Technologies公司的发展小趣事

背景:面对日益激烈的市场竞争,HCH Co公司决定通过智能制造来提升生产效率和产品质量。公司引入先进的自动化生产线和智能物流系统,实现了从原材料采购到成品出库的全程智能化管理。

发展:智能制造的实施,不仅大幅提高了生产效率和产品良率,还降低了人力成本和运营风险。HCH Co公司因此能够在更短的时间内响应市场需求变化,推出更多符合消费者需求的高品质电子产品。同时,公司还通过智能制造的实践经验,为行业内的其他企业提供了可借鉴的转型路径。

问答坊 | AI 解惑

请问系统管理员:论坛的级别为什么会变低?郁闷!

请问系统管理员: 我在这个论坛的级别好不容易升到了“大学三年级”,可是我重装了系统后重新登录,结果级别一下子又回到了小学三年级,真不知道是为什么呀?难道每次重新登录都要从低级开始吗?是不是论坛的系统出了什么问题啦,还是有其他什么原 ...…

查看全部问答>

硬性电路板转型软性电路板

采用特殊感光油墨实施软板材料与硬板工艺方案,或调整硬性电路板设计而符合软板生产方案,而达到SMD密集性硬性电路板转型软板生产。应用领域广泛。 深圳市实佳电子有限公司以生产销售样板、中小批量柔性电路板、刚柔结合板为主,是个集研发、设计 ...…

查看全部问答>

2009年电子竞赛控制类预测

这是我昨天晚上和今天早上总结的各大论坛商量的关于智能小车的重点。希望大家多多关照。 如果不对,还请各位见谅!!!!!!…

查看全部问答>

【藏书阁】电器理论基础(修订本)

目录: 概论 §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 ...…

查看全部问答>

用EDMA传输数据程序为什么执行不了中断?

用EDMA传输数据程序为什么执行不了中断?…

查看全部问答>

有关遨游设置问题

遨游右上角有我的电脑、注册表编辑器 什么的 想把其中一个改为WORD  编辑的命令是什么? …

查看全部问答>

招聘

本公司因业务需要,急需招聘软件开发工程师,熟悉嵌入式C语言、串口开发、LCD及键盘应用,待遇从优。有意者请将简历发送至liuyh0105@126.com刘月红收。有IC卡、条形码行业工作经验者优先。电话:010-51265035、68219720、68219760…

查看全部问答>

请教INF编写的方法

我用VC6.0+XPDDK+DS3.2 编译了一个C代码的网卡驱动的程序,生成了sys文件。 现在想开始写INF文件,我看了一些介绍,DDK里面有个GenINF,这个是不是可以导出INF文件。 在GenINF的向导里我要选择Device class,但是里面没有PCI卡的这一项嘛。下面是 ...…

查看全部问答>