STM32 Cube Programmer 和 STM32 Cube IDE 协同调试的方法

时间:2024-01-04来源:ST

1. 前言

很多人以为使用 STM32 Cube IDE 的时候就不能同时使用 STM32 Cube Programmer ,其 实不然。ST-LINK 共享模式功能很早就已经具备,但是很多人并没有在意。 STM32 Cube Programmer 和 STM32 Cube IDE 都能够使用 ST-LINK 共享模式。使用 ST- LINK 共享模式,在使用 STM32 Cube IDE 单步调试时,也可以使用 STM32 Cube Programmer 查看寄存器、内存以及选项字节。

2.ST-LINK 共享模式

想要发掘工具的所有潜力,一种方法是仔细阅读工具的文档。对于使用 STM32 Cube Programmer 的用户,我推荐大家将<<UM2237 STM32 Cube Programmer 用 户手册>>通读一遍。对于使用 STM32 Cube IDE 的用户,我推荐大家将<<UM2609 STM32 Cube IDE 用户指南>>通读一遍。在读的过程中,我们能够发现这两个文档里提到 了一个 ST-LINK 共享模式。

·STM32 Cube Programmer

我们可以看到 UM2237 如下所示提到了 STM32 Cube Programmer 支持 Shared 配 置,意思是使能 shared 模式可以允许 2 个或者多个 STM32 Cube Programmer 或者其他调 试工具连接同一个 ST-LINK。这里的其他调试工具可以是 STM32 Cube IDE。

图片.png

·STM32 Cube IDE

我们可以看到 UM2609 中说得更加详细。如下所示,它提到了,ST-LINK 共享模 式的原理是使用 ST-LINK Server;在共享模式下,STM32 Cube IDE 和 STM32 Cube Programmer 可以同时使用;ST-LINK Server 的共享模式的端口默认是 7184 而且不能修改。

图片.png

3.STM32 Cube IDE 和 STM32 Cube Programmer 的协同调试的配置。

我们先来找个简单的例子看下如何使用 ST-LINK 共享模式来进行协同调试。我们选取 STM32H563 的 GPIO_IOToggle 例程,它位于 STM32CubeRepositorySTM32Cube_FW_H5_V1.0.0ProjectsNUCLEO- H563ZIExamplesGPIOGPIO_IOToggle。请各位读者注意,你可以选择任何例程,不限于 新发布的产品 STM32H5,也不限于简单的例程 GPIO_IOToggle。而且,即使你使用的

STM32 Cube IDE 和 STM32 Cube Programmer 版本比我使用的要旧,这个功能大概率已经在 哪里。当然我们总是推荐你保持 STM32 Cube 工具为最新的稳定版本。

对于 STM32 Cube IDE,我们需要在调试配置里多进行一项配置。我们可以看到如下图所 示蓝色选中的[Shared ST-LINK]。默认这一项是不选中的,我们需要这项功能就去打个勾。

图片.png

接下来就是正常的编译,启动调试界面,让它在调试界面正常运行。我们不需要挂起 它。你看到的应该是下图这个样子。

图片.png

然后我们转向 STM32 Cube Programmer 窗口。如果我们不用 ST-LINK 共享模式,我们 这个时候是不能使用 STM32 Cube Programmer 进行连接,因为 ST-LINK 已经被占用。如下 图所示。

图片.png

同样共享模式不是 STM32 Cube Programmer 的默认配置。我们需要将STM32 Cube Programmer 改成支持 ST-LINK 共享。

图片.png

我们不想让程序从头开始,所以这里我们使用 “Hot plug”Mode。这样配置就完成了。 我们可以得到如下图所示连接成功的样子:

图片.png

4. 几个调试案例

这里举出几个协同调试案例,供大家参考。STM32 用户若遇见STM32 Cube Programmer 支持得更好的功能,就可以考虑协同调试的方法。

4.1. 寄存器抓取与保存

寄存器抓取与保存是早期 STM32 Cube IDE 和 STM32 Cube Programmer 协同调试的一个 典型场景。早期的 STM32 Cube IDE 并不支持寄存器保存,虽然能查看寄存器,但是不能将 寄存器的内容保存下来进行比较。当然现在 STM32 Cube IDE 已经支持寄存器内容的保存, 并且支持运行时动态刷新。不过在文本格式上,STM32 Cube Programmer 依然更加的清 晰。所以我们在使用 STM32 Cube IDE 进行调试的同时,仍然有使用 STM32 Cube Programmer 来抓取寄存器和进行保存的需求。

寄存器的保存使用的菜单时高亮的[REG](Registers – BETA)。当我们点击[Read],然后 点击[Save to file]选择[All peripherals]或者[Currently displayed peripherals],就可以保存所 有的寄存器内容。保存的寄存器格式易于查看,带有相应的寄存器地址。

图片.png

4.2. 查看选项字节

查看选项字节是 STM32 Cube Programmer 的优势。当 STM32 Cube IDE 正在调试应用 时,若我们怀疑某个选项字节设置不对,我们可以不必关闭 STM32 Cube IDE,而直接使用 STM32 Cube Programmer 进行查看。

图片.png

图1.

4.3. 文件比较

如果我们怀疑 Flash 的内容与需要下载的程序不同,同样我们在不关闭 STM32 Cube IDE

的调试界面就可以使用 STM32 Cube Programmer 检查 Flash。例如:

图片.png

图2.

5. 小结

ST-LINK 共享模式是一种很有用的功能,可以让 STM32Cube 多个工具发挥各自的特 长,对同一设备在同一时间进行协同调试,可以极大的提高 STM32 开发效率。

*LAT1317 - Rav 1.0 - Sep.2023*

相关下载链接:https://share.eepw.com.cn/share/download/id/391380

关键词: STM32 IDE ST-LINK

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版