2

我将在这里冒险,因为我不确定您需要什么代码才能查看。

我正在研究一些具有串行用户界面的嵌入式代码。当我转移到新的以太网驱动程序时,只有一半用于通过连接发送文本的 printf() 语句起作用,所以我有很多空白的命令输出。知道什么会导致这种情况吗?

我在网上读到这可能与堆栈大小有关?

我很乐意发布更多信息以澄清任何需要的领域。

谢谢!

示例 1:

// List commands and their summary
// It is assumed that a command with an empty summary does not 
// actually exist (helpful for conditional compilation)
printf( "Shell commands:\n" );   **This line Prints**
while( 1 )
{
  if( ph->cmd == NULL )
    break;
  if( strlen( ph->help_summary ) > 0 )
    printf( "  %-6s - %s\n", ph->cmd, ph->help_summary ); **This does not**
  ph ++;
}
printf( "For more information use 'help <command>'.\n" ); **This line prints**
}

当我逐步执行代码时,会到达 printf() 并实际上运行,但没有输出通过串行连接。

回答,对于懒惰的滚动:

我的驱动程序有一些用 printf() 填充的调试代码,这些代码在发布时没有被注释掉……我已经删除了它,问题就消失了。不知何故,这一定导致了一些内存问题。

4

1 回答 1

0

我的驱动程序有一些用 printf() 填充的调试代码,这些代码在发布时没有被注释掉……我已经删除了它,问题就消失了。不知何故,这一定导致了一些内存问题。

于 2013-07-08T17:59:52.673 回答