我将在这里冒险,因为我不确定您需要什么代码才能查看。
我正在研究一些具有串行用户界面的嵌入式代码。当我转移到新的以太网驱动程序时,只有一半用于通过连接发送文本的 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() 填充的调试代码,这些代码在发布时没有被注释掉……我已经删除了它,问题就消失了。不知何故,这一定导致了一些内存问题。