我目前正在研究STM32F4上的一个项目,而我正在使用Eclipse。我有一些程序问题 - 它似乎有一个随机的行为 - 有时它工作正常,有时它有一些错误。有时,当我尝试使用断点进行调试时,我会得到漂亮的HardFault Handler,而且我的大脑真的很混乱。
很抱歉这个小题外话段,只是想让你知道为什么我决定在程序的某些关键时刻使用打印到日志文件,以便我可以看到问题发生在哪些状态和哪些功能。我正在使用Eclipse(gdb)的JTAG接口进行调试,我需要知道是否在Eclipse中集成了一个简单的方法,可以帮助我在程序中使用类似fprintf的函数来写入磁盘上的文件。
如果不是,还有其他任何解决方案吗?
由于
答案 0 :(得分:1)
我不想将调试输出日志连接到Jtag通信端口,因为开发后日志不可用。
我通常构建一个SystemLog库,可以通过任何可用的介质(UART,USB,以太网或SDCARD)发送日志消息。这就是我建议你做的。它将帮助您完成开发,并在现场发生任何故障时支持团队。
如果项目中有stdlib,则应使用snprintf系列函数构建SystemLog。
此外,您可以通过在makefile上调用串行控制台通信器(如果使用UART)将日志输出集成到eclipse控制台,在这种情况下,您的makefile也必须闪存目标。