NUCLEO-H723ZG Printf (SWV) 无法在 STM32CubeIDE 上工作

问题描述 投票:0回答:2

尝试了解 ITM 和 SWV 以便使用有用的 printf 函数进行调试是非常值得的。但它不适用于 ST 的最新主板之一 NUCLEO-H723ZG。这是一次真正令人毛骨悚然的体验,因为 printf 在另一块主板 NUCLEO-H743ZI2 上工作得如此轻松。

我使用的是 STM32CubeIDE v 1.7.0。有没有人找到 H723ZG 芯片(或更可能的是该芯片的 ST 开发软件)解决此问题的方法?

stm32 stm32cubeide
2个回答
0
投票

ITM 和 printf 在 Nucleo-H723ZG 上工作。

使用STM32CubeIDE v 1.7.0(最新版本),默认板时钟为550MHz。然而,如时钟配置图所示,跟踪时钟为 275MHz。在调试配置属性中,启用 SWV 时,核心时钟频率必须设置为 275MHz(而不是 550)。

这与配置 Nucleo-H743ZI2 板的最大时钟频率 480MHz 不同。在这种情况下,将 SWV 核心时钟设置为 480MHz,而不是 Trace 时钟频率。

感谢STM的支持帮助我解决了这个难题。


0
投票

我目前正在使用 H723 在 Nucleo 板上进行开发。 如果系统时钟为 550Mhz,并且在 SWV 的调试器配置的系统时钟设置中输入 275MHz,则 printf() 可以工作。

如果我将系统时钟从 550MHz 更改为任何其他值,即使将 SWV 的系统时钟值保持为该值的 1/2,我也会得到乱码。

我想以 528MHz 或 480MHz 运行,但 printf() 不起作用。 目前,我正在 550MHz 下调试所有内容,当我认为我已经完成大部分工作时,请删除所有调试 printf() 行。

其实我: #定义USEPRINTF 1

并且在程序中有: #ifdef USEPRINTF // 输入所有需要的代码 #结束

所以当我评论 #define USEPRINTF 行时,这一切都消失了(只是分享以防万一它可能有某种原因导致乱码)

© www.soinside.com 2019 - 2024. All rights reserved.