2

我目前正在开发一个关于 STM32F4 的项目,并且正在使用 Eclipse。我的程序有一些问题——它似乎有一个随机的行为——有时它工作正常,有时它有一些错误。有时当我尝试使用断点进行调试时,我得到了漂亮的 HardFault Handler,它真的让我的大脑一团糟。

抱歉,有点离题,只是想让您知道为什么我决定在程序的某些关键时刻使用打印到日志文件,以便我可以查看问题发生在哪些状态和哪些功能中。我正在通过 Eclipse (gdb) 的 JTAG 接口进行调试,我需要知道 Eclipse 中是否集成了一种简单的方法,可以帮助我在程序中使用类似 fprintf 的函数来写入磁盘上的文件。

如果没有,还有其他解决方案吗?

谢谢

4

1 回答 1

1

我不喜欢将调试输出日志连接到 Jtag 通信端口,因为开发后日志将不可用。

我通常构建一个 SystemLog 库,它可以通过任何可用的介质(UART、USB、以太网或 SDCARD)发送日志消息。这就是我建议你做的事情。它将帮助您完成开发,并在现场发生任何故障时为支持团队提供帮助。

如果您的项目中有 stdlib,您应该使用 snprintf 系列函数来构建您的 SystemLog。

此外,您可以通过在 makefile 上调用串行控制台通信器(如果使用 UART)将日志输出集成到 eclipse 控制台,在这种情况下,您的 makefile 也必须刷新目标。

于 2013-03-13T11:43:30.200 回答