使用Eclipse调试嵌入式系统-如何打印到日志文件?

使用Eclipse调试嵌入式系统-如何打印到日志文件?,eclipse,embedded,jtag,Eclipse,Embedded,Jtag,我目前正在STM32F4上做一个项目,我正在使用Eclipse。我的程序有一些问题-它似乎有一个随机行为-有时工作正常,有时有一些错误。有时,当我尝试使用断点进行调试时,我会得到漂亮的硬故障处理程序,它真的会让我的大脑混乱 很抱歉,这是一个离题的小段落,我只是想让你知道为什么我决定在程序中的一些关键时刻使用打印到日志文件,这样我就可以看到问题发生在哪些状态和函数中。我正在使用Eclipse(gdb)通过JTAG接口进行调试,我需要知道Eclipse中是否集成了一种简单的方法,可以帮助我在程序中使

我目前正在STM32F4上做一个项目,我正在使用Eclipse。我的程序有一些问题-它似乎有一个随机行为-有时工作正常,有时有一些错误。有时,当我尝试使用断点进行调试时,我会得到漂亮的硬故障处理程序,它真的会让我的大脑混乱

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

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


谢谢

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

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

如果stdlib在您的项目中可用,您应该使用snprintf系列函数来构建您的系统日志


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

您是否尝试在代码中调用
printf
?通过JTAG调试TI芯片时,调用
printf
将消息发送到代码生成器控制台。CodeComposer是基于Eclipse的,但我不确定他们在那里破解了什么额外的魔咒。你必须启用半托管。我找不到任何明确说明如何在Eclipse中做到这一点的内容。但请参见相关内容:和。或者,如果您可以访问GDB控制台或
.gdbinit
文件,请尝试启用
监视器半宿主功能。第26页。