0

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

设置

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

  1. 首先,输出(二进制)文件需要是 intel .HEX 而不是 TrueStudio .elf 默认值。要更改此设置Project properties -> c/c++ build -> settings -> tool settings tab -> other -> Output format 并勾选“转换构建输出”选项,请确保在下拉列表中选择了 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
    ( -c ID=0 SWD UR LPM -P ${project_loc}\Debug\${project_name}.hex -v) 构建的 .HEX 文件。

    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 Board 成功上传,所以我认为问题不在于 ST-Link 本身。但是我不能以这种方式调试它,因为我需要 TrueStudio IDE 工具,因此需要外部工具配置才能成功工作。

3 4

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


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

4

3 回答 3

0

我只是在启动脚本中注释了“加载”命令并且调试工作正常。我只需要先使用 st 链接加载十六进制。

/# Load the program executable

#load       <---//added "#"
于 2022-02-15T13:01:41.980 回答
0

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

一切都在 TrueStudio 中配置:

在此处输入图像描述

只需添加调试配置即可。

此时 OpenOCD 将提供什么好处

要点之一:调试

鉴于我已经了解了多少关于 TrueStudio 的知识?

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

于 2019-05-17T13:29:06.320 回答
0

关于我自己的代码,我无法让 ST-Link_CLI 以我想要的方式作为外部工具工作,[但我已经能够让 STCubeProgrammer (CLI) 以与各自相同的方式工作我正在尝试使用 ST-Link]。(http://gotland.atollic.com/resources/applicationnotes/AN1801_cubeprogrammer_in_truestudio.pdf)。

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

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

于 2019-05-17T14:01:15.747 回答