首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复上传到STM32时TrueStudio中的“无法打开文件”

如何修复上传到STM32时TrueStudio中的“无法打开文件”
EN

Stack Overflow用户
提问于 2019-05-17 12:29:33
回答 3查看 2.3K关注 0票数 0

我正在尝试将我的STM32F411RE书面程序从我的TrueStudio for STM32 IDE上传到董事会本身。该板是通过迷你USB b电缆连接,其目的是通过社会福利署编程。

设置

Atollic提供了一个很好的教程,介绍如何通过它的TrueStudio IDE和ST(命令行接口),如文档中所述,在此链接上来执行这个编程。这需要以下步骤,我已经多次遵循和检查了这些步骤:

  1. 首先,输出(二进制)文件需要是一个英特尔.HEX,而不是TrueStudio .elf默认值。若要更改此选项,请转到Project properties -> c/c++ build -> settings -> tool settings tab -> other -> Output format并勾选“转换生成输出”选项,请确保在下拉菜单中选中Intel选项。
  1. 要从IDE内部调用ST_CLI,需要进行外部工具配置。要进行此配置,我转到Run -> External Tools -> External Tools Configurations ....并创建一个新的配置,让我们将其命名为ST_CLI。

对于工作目录,我指定我的ST-LINK_CLI目录。

(C:\Program Files (x86)\STMicroelectronics\STM32 ST-LINK Utility\ST-LINK Utility)

对于这个位置,我指定了这个目录和文件名。

(C:\Program Files (x86)\STMicroelectronics\STM32 ST-LINK Utility\ST-LINK Utility\ST-LINK_CLI.exe)。

最后,我添加了以下参数来标识STM32板,让它通过社署连接并处于重置状态,同时告诉它上传由TrueStudio构建的.HEX文件

(-c ID=0 SWD UR LPM -P ${project_loc}\Debug\${project_name}.hex -v)。

输出

然后,当我通过刚刚创建的Run -> External Tools -> ST-Link_CLI链接调用这个外部工具配置时,我得到了下面列出的输出:

代码语言:javascript
复制
STM32 ST-LINK CLI v3.4.0.0
STM32 ST-LINK Command Line Interface

ST-LINK SN: 066EFF525750877267092042
ST-LINK Firmware version: V2J33M25
Connected via SWD.
SWD Frequency = 4000K.
Target voltage = 3.3 V
Connection mode: Connect Under Reset
Reset mode: Hardware reset
Debug in Low Power mode enabled
Device ID: 0x431 
Device flash Size: 512 Kbytes
Device family: STM32F411xC/E

Loading file...
Unable to open file!

显然,从IDE内部成功地调用了ST-Link_CLI,但它无法消化.hex文件(在调试文件夹中)并将其上传到STM32板。

即使从CubeMX中闪烁一个全新的生成项目并设置上面的选项(包括将其设置为.hex文件),也不会让这个工具链将其上传到板上。

手动代码闪烁

通过使用ST,我成功地上传了由.HEX构建的TrueStudio文件,通过手动将其上传到STM32板,所以我认为问题不存在于ST-Link本身。但是,我不能以这种方式调试它,因为我需要TrueStudio IDE工具,因此需要外部工具配置才能成功地工作。

相反,我怀疑问题在于我自己的设置,哪里不知何故错过了一个呼叫或有一个选项设置不正确。也可能是GUI和CLI客户端的操作方式完全不同,允许一个用户读取和上传文件,而另一个客户端则不能,但对我来说,这似乎不合理。

然而,我在这里有点不知所措,因为我似乎无法理解为什么其他人可以通过提供的Atollic文档来完成这项工作,而我的文档却出现了这些错误。

EN

回答 3

Stack Overflow用户

发布于 2019-05-17 13:29:06

你试着用三角形来改造轮子。

所有内容都在TrueStudio中配置:

只需添加调试配置,您就完成了。

在这一点上,OpenOCD会提供什么好处?

一个基本要素:调试

考虑到我对TrueStudio已经了解了多少?

这种知识(如何配置外部工具等)在99.9999%的情况下都是无用的。它只是Eclipse的配置。这里不需要太复杂。

票数 0
EN

Stack Overflow用户

发布于 2019-05-17 14:01:15

关于我自己的代码,我没有能够让ST-Link_CLI以我想要的方式作为外部工具工作,但我已经能够让STCubeProgrammer (CLI)以与我试图使用的ST-Link(truestudio.pdf)相同的方式工作。

考虑到我确实使用了与以前相同的过程,而是指定了STCubeProgrammer (而不是ST-Link)的位置和可执行文件,我怀疑问题确实可能是Seeing (连接到TrueStudio)。

现在它成功地上传并立即将我引导到TrueStudio的调试环境:)

票数 0
EN

Stack Overflow用户

发布于 2022-02-15 13:01:41

我只是在启动脚本中注释了"load“命令,并且调试成功了。我只需要先使用st链接加载十六进制。

代码语言:javascript
复制
/# Load the program executable

#load       <---//added "#"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56186473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档