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.
我使用了 UARTprintf、连接了 USB CDC、并在 CCS 终端中打开了相应的串行端口。 在这种情况下、我完全了解数据如何从固件传输到屏幕。 提供了 UARTprintf 的源代码。
我最近还注意到、printf 输出将出现在 CCS 控制台中。 我找不到 printf 的来源、我想了解数据在连接到计算机的过程中是如何获得的。 有人能不能在这上面弄清楚呢?
在相关的注释中、我想断开此控制台输出并确保使用我自己的 printf。 搜索此论坛后、建议的设置在我的项目中不可见、因此我不知道要查看的其他位置。
[引用 user="Brian Willoughby18">我找不到 printf 的源代码,我想了解数据是如何通过与计算机的连接获得的。 有人能不能对此有所了解?CIO系统调用协议 在使用 TI ARM 编译器时对协议有一些细节。 使用 GCC ARM 编译器时 、使用半主机协议。
对于 TI ARM 编译器、printf 和支持函数的源文件位于中 /ccsv8/tools/compiler/ti-cgt-arm_ /lib/src 目录。 trgmsg.c 是包含低级 __TI_writemsg()和 __TI_readmsg()的源文件,它们作为 CIO 协议的一部分在目标上的程序与 CCS 调试器之间进行通信。
[引用 user="Brian Willoughby18">在相关说明中、我想断开此控制台输出并确保使用我自己的 printf。仅当目标尝试使用 CIO 时(并且已选择调试项目属性"启用 CIO 功能使用")、CIO 控制台才会出现在 CCS 调试器中 (需要设置断点)"选项)。 您是不是说您正在创建一个替换 printf、并且希望其输出出现在 CCS 调试器的 CIO 控制台中?
CIO 控制台仅在目标尝试使用 CIO (并且已选择调试项目属性"Enable CIO function use (requires setting a breakpoint)"选项)时出现在 CCS 调试器中。 您是不是说您正在创建一个替换 printf、并且希望其输出出现在 CCS 调试器的 CIO 控制台中?
[/报价]
不、我想避开 CIO 控制台、并确保我的闪存二进制文件不包含任何该代码。
我很困惑、因为、
1) 1)我不知道 CIO 控制台存在
2) 2)我们在项目开始时开始使用 UARTprintf()
3) 3)我们最终编写了自己的 UART_printf()
4)我们随后使用预处理器宏在项目基础上将 printf()定义为 UARTprintf()或 UART_printf()
5) 5)最后,作为一项测试,我离开了我们的宏并注意到周围有 printf(),然后担心我无法删除它。
感谢您指出 CCS 中的"Enable CIO Function Use"选项。 较旧的 E2E 线程指向不同的方向、我找不到它。 对于跟着运行的用户、该选项位于 Debug 下的项目属性中、然后是 Program/Memory Load Options。