我正尝试将我的STM32F411RE编写程序从TrueStudio for STM32 IDE上传到开发板本身。该板通过mini USB b电缆连接,目的是通过SWD对其进行编程。
Atollic提供了一个很好的教程,说明如何通过TrueStudio IDE和ST-Link_CLI(命令行界面)as described in the document at this link执行此编程。这需要执行以下步骤,我已按照以下步骤进行了多次检查:
首先,输出(二进制)文件必须是intel .HEX,
不是TrueStudio .elf默认值。要更改此设置,请转到Project properties -> c/c++ build -> settings -> tool settings tab -> other -> Output format
并勾选选项'Convert build output',确保Intel Hex
在下拉菜单中选择了选项。
要从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
)。
当我通过刚刚创建的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!
很显然,已从IDE内部成功调用了ST-Link_CLI,但是它无法以某种方式消化.hex文件(在调试文件夹中)并将其上传到STM32板上。
即使从CubeMX中刷新了一个全新生成的项目并设置了上述选项(包括将其设置为.hex文件),也不会允许此工具链将其上传到开发板上。
我已经能够通过使用ST-Link GUI手动将TrueStudio生成的.HEX文件手动上传到STM32开发板上,因此我认为问题不在于ST-Link本身。但是,我无法以这种方式对其进行调试,因为我需要为此使用TrueStudio IDE工具,因此需要外部工具配置才能成功工作。
相反,我怀疑问题出在我自己的设置上,这不知何故错过了通话或选项设置不正确。也可能是GUI和CLI客户端以完全不同的方式运行,允许一个客户端读取和上传文件,而另一个则不能,但这在我看来是不合理的。
但是,我有点茫然,因为我似乎无法弄清楚为什么其他人可以通过提供的Atollic文档进行这项工作,而我却抛出了这些错误。
答案 0 :(得分:1)
您尝试使用三角形重新发明轮子。
所有内容都在TrueStudio中配置:
只需添加调试配置即可完成。
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的调试环境后立即显示:)