【问题标题】:Keil uVision5 problemsKeil uVision5 问题
【发布时间】:2014-06-30 09:19:49
【问题描述】:

在我正在从事的这个项目之前,我从未使用过keil,但我总是能够只说 printf("hello); 并且它有效。
但是对于keil,我无法在调试 (printf) 查看器中显示它。
我在我的主要功能中散布了这样的语句,但没有打印出来。
我需要做些什么来让它工作吗?

【问题讨论】:

  • 我假设您指的是 Keil ARM-MDK?你用的是什么处理器?它需要有 ARM ITM 模块才能做你想做的事情。
  • 我正在使用 ARM cortex M4 @Clifford
  • 那么我的回答适用。 Keil 为可能不适用该答案的其他目标生成工具链。您通常应该引用确切的产品而不是公司名称,包括版本号。您还应该通过编辑而不是通过 cmets 回复来“改进”问题。

标签: c++ debugging embedded printf keil


【解决方案1】:

您必须retarget the library 才能匹配您的硬件和/或开发环境。通常,最小的重定向会将 stdio 映射到 UART - 尽管您可以实现完整的文件系统。

如果您希望 stdout 数据出现在 Debug(printf) 窗口中,您必须按照here 的描述实现重定向以写入 ITM 激励端口。任何输出到标准输出的数据都会出现在调试窗口中——不仅仅是printf

该库是可重定向的,因为您可以使用 stdio 来满足您的应用程序需求,而不仅仅是调试。将 UART 用于 stdio 而不是 ITM 的优势在于它是双向的,并且可以在没有连接调试器的情况下工作,因此在任何情况下您都可能需要考虑这一点。

【讨论】:

  • ITM 刺激端口代码在 __stdout 上显示错误
  • @user3729617 :这是一个不同的问题,在不知道错误(或者更确切地说是诊断)是什么的情况下,我无法真正发表评论。
猜你喜欢
  • 1970-01-01
  • 2021-05-21
  • 2016-09-07
  • 1970-01-01
  • 1970-01-01
  • 2018-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多