在TrueStudio中上传到STM32时如何解决“无法打开文件”

时间:2019-05-17 12:29:34

标签: stm32 flashing truestudio

我正尝试将我的STM32F411RE编写程序从TrueStudio for STM32 IDE上传到开发板本身。该板通过mini USB b电缆连接,目的是通过SWD对其进行编程。

设置

Atollic提供了一个很好的教程,说明如何通过TrueStudio IDE和ST-Link_CLI(命令行界面)as described in the document at this link执行此编程。这需要执行以下步骤,我已按照以下步骤进行了多次检查:

  1. 首先,输出(二进制)文件必须是intel .HEX, 不是TrueStudio .elf默认值。要更改此设置,请转到Project properties -> c/c++ build -> settings -> tool settings tab -> other -> Output format 并勾选选项'Convert build output',确保Intel Hex 在下拉菜单中选择了选项。

    1


  2. 要从IDE内部调用ST-Link_CLI,需要进行外部 工具配置。要进行此配置,请转到Run -> External Tools -> External Tools Configurations ....并创建一个新配置,让 称之为ST-Link_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板,使其通过SWD连接并处于复位状态,同时 告诉它上传TrueStudio构建的.HEX文件
    -c ID=0 SWD UR LPM -P ${project_loc}\Debug\${project_name}.hex -v)。

    2


输出

当我通过刚刚创建的Run -> External Tools -> ST-Link_CLI链接调用此外部工具配置时,得到以下输出:

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!

3

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

即使从CubeMX中刷新了一个全新生成的项目并设置了上述选项(包括将其设置为.hex文件),也不会允许此工具链将其上传到开发板上。


手动代码闪烁

我已经能够通过使用ST-Link GUI手动将TrueStudio生成的.HEX文件手动上传到STM32开发板上,因此我认为问题不在于ST-Link本身。但是,我无法以这种方式对其进行调试,因为我需要为此使用TrueStudio IDE工具,因此需要外部工具配置才能成功工作。

3 4

相反,我怀疑问题出在我自己的设置上,这不知何故错过了通话或选项设置不正确。也可能是GUI和CLI客户端以完全不同的方式运行,允许一个客户端读取和上传文件,而另一个则不能,但这在我看来是不合理的。


但是,我有点茫然,因为我似乎无法弄清楚为什么其他人可以通过提供的Atollic文档进行这项工作,而我却抛出了这些错误。

2 个答案:

答案 0 :(得分:1)

您尝试使用三角形重新发明轮子。

所有内容都在TrueStudio中配置:

enter image description here

只需添加调试配置即可完成。

  

OpenOCD现在会提供什么好处

一个基本要素:调试

  

鉴于我已经了解了多少TrueStudio?

这种知识(如何配置外部工具等)在99.9999%的情况下是毫无用处的。它只是Eclipse的配置。这里实际上并不太复杂。

答案 1 :(得分:0)

关于我自己的代码,我无法使ST-Link_CLI像我期望的那样作为外部工具使用,但[但是我已经使STCubeProgrammer(CLI)在相同的工具上工作(http://gotland.atollic.com/resources/applicationnotes/AN1801_cubeprogrammer_in_truestudio.pdf)。

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

现在它成功上传,并在引导我进入TrueStudio的调试环境后立即显示:)