This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
大家好、
我是嵌入式系统领域的绝对初学者。 我遇到了一个看似简单的问题、即 printf 函数不会触发 CIO 控制台窗口。 我在 MacOS 上使用 CCS v.9.3.0。 我已经尝试运行 hello 和 UART_echo 等示例项目 、但这些项目在 CIO 控制台中打印出字符串输出时没有成功。 实际上、CIO 控制台甚至没有出现。
我遵循了故障排除指南、例如配置堆大小、启用 CIO 功能、并转至 http://software-dl.ti.com/ccs/esd/documents/sdto_cgt_tips_for_using_printf.html 上提供的指令。
在 使用 printf 的提示 页面上、我成功地在 CIO 控制台中使用 puts ("Hello World")打印了一个字符串"Hello、world"。 但是,当使用 printf 时,程序似乎 每次都进入无限 FaultIRs()循环。 此外 、由于 我无法完全了解在何处进行建议的修改、我在 C I/O 通信缓冲器放置和特殊断点部分遇到困难。 我想它与设置断点有关、但我不知道确切的执行位置。
我遇到的另一个不一致之处是、当我将 函数和 printf 函数放在一起时。 例如
PUs ("Hello、World"); printf ("Hello、World");
在本例中、printf 函数确实在 CIO 控制台中打印出"Hello、world"字符串。 但是、如果我将上述代码的顺序重新排列
printf ("Hello、World"); puts ("Hello、World");
这不奏效。
这是链接器文件的屏幕截图。
如果有人能提供帮助、我将不胜感激。 我已经为这个问题滞留了几天了。
Boris
[引用 user="Sitthichat Sukpholtham"]我尝试运行 hello 和 UART_echo 等示例项目 ,但这些项目在 CIO 控制台中打印字符串输出时未成功。 实际上、CIO 控制台甚至没有显示出来。
TivaWare 中的 hello 和 UART_echo 示例被写入以打印到 UART (使用 UARTprintf)、而不是 CCS 中的控制台视图。 对于这些示例、如果您打开连接到虚拟串行端口的终端(例如 Teraterm 或 CCS 中的"Terminal"视图)、则应该能够在那里查看输出。
将 printf 添加到代码中应将其输出到 CCS 控制台。
我通过执行以下操作修改了闪烁示例、并能够在控制台中看到"Hello World"打印:
-在 blinky.c 中:添加了#include 并在 while 循环之前添加了 printf (Hello World\n")
-在链接器选项中,将堆大小设置为1024
在大多数情况下、增加堆和堆栈大小可以解决 printf 不起作用的问题。 尝试将堆大小增加到至少1024、看看这是否有用。
您好!
我打开了终端、能够看到打印出来的字符串。 谢谢!
但是、当尝试使用 printf 输出字符串时、它仍然不起作用。 我使用的代码就像一样简单
#include int main (void){ printf ("Hello、World"); }
我将堆大小增加到1024、但 CIO 控制台仍然没有显示。 运行时、该软件只打印出内容、而是保持运行。 我暂停了调试器。 然后、我发现每次我暂停调试器时、它都会进入 FaultIRS 循环。 循环位于 startup_ccs.c 文件中。
//这是处理器收到故障 时调用的代码//中断。 这只是进入一个无限循环、保持系统状态 //供调试器检查。 //// ***************** 静态空 FaultISR (空) { // //输入无限循环。 // while (1) { } }
再说一次、在我最了解的情况下、我认为它与设置断点有关吗?
再次提前感谢您的善意帮助
您是否正在使用 TivaC Launchpad?
我正在附加一个在 TivaC Launchpad 上运行的项目的 zip 文件、并确认 Hello World 已打印到 CCS 控制台。
将随附的 zip 文件解压缩、将工程导入 CCS、然后尝试按原样运行可执行文件。 为此、您可以手动启动调试器、连接到目标并加载程序(有关手动启动调试器的详细信息 、请单击此处)。
验证此操作是否正常后、您可以尝试在系统上重建项目、然后运行该项目。
希望这有助于使事情在您的端工作