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.

[参考译文] CCS/66AK2H12:没有到 CCS7.2控制台的 printf ()或 System_printf ()输出

Guru**** 2555630 points
Other Parts Discussed in Thread: 66AK2H12, SYSBIOS

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/610553/ccs-66ak2h12-no-printf-or-system_printf-output-to-ccs7-2-console

器件型号:66AK2H12
Thread 中讨论的其他器件: SYSBIOS

工具/软件:Code Composer Studio

我遇到了一个常见的问题–printf()和 System_printf()都没有输出。

我在 Windows10下使用 CCS 7.2。 我的器件是66AK2H12 EVM。 我构建了一个新的 CSS 工程、选择 SYS/BIOS→GNU Target example Typical (具有单独的配置工程)。 目标是66AK2H12、编译器 GNU Linaro v6.3.1。  我正在使用未经修改的 GEL 文件: C:\ti\ccsv7\ccs_base\emulation\boards\xtcievmk2x\gel\xtcievmk2x_arm.gel

我已经阅读了许多帖子,我似乎已经检查了所有建议,但仍然没有输出。 此主题是目前为止信息最丰富的 主题:e2e.ti.com/.../509743 、您可以在 Ramsey 和 Vic 上进行非常详细、清晰和简洁的讨论。 我在下面的注释中提到了这个闭合的主题。 我阅读了有关 CIO 控制台窗口的评论。 我不能也不能找到它。 我只有一个 CDT 全局编译控制台和一个 CDT 编译控制台[我的项目名称]。

我可以在 ROV 中看到 System_printf()数据在输出缓冲区中结束。 我可以看到索引在增加。 我可以看到缓冲区在 System_flush()上被清除,索引被重置为零,但 CCS 控制台上没有显示任何内容。

我已经检查了 app.cfg,它也同时检查了这两个文件
VAR SysMin = xdc.useModule('xdc.runtime.SysMin');
VAR 系统= xdc.useModule('xdc.runtime.System');
底部有一个
System.SupportProxy = SysMin;

我已‘Enable CIO function use’set。 (这是默认设置)。 它说(需要设置断点),我有点困惑。 我阅读了有关数据被移动到小型 CIO 缓冲器时、数据在中断时如何传输到 CCS 的解释。 我是否需要启用一些断点才能实现这一点?

我不认为 SemiHostSupport 适用于我,因为我正在使用 GNU Linaro 编译器,但不确定,我是否尝试过它,但它不会构建:
C:/ti/bios_6_46_05_55/packages/ti/sysbios/rts/gnu/SemiHostSupport.c:60:对`initialize_monitor_handles '的引用未定义

我本来希望一个未经修改的示例项目刚刚开始工作、但我怀疑有一些我缺少或不理解的东西。

我还尝试添加
VAR SysStd = xdc.useModule('xdc.runtime.SysStd');
并将其设置为与以下项配合使用:
//System.SupportProxy = SysMin;
System.SupportProxy = SysStd;

其他可能的提示?

当我创建新项目时、它会自动选择 XDCtools 版本3.50.2.20_core、但我需要将其更改为3.32.2.25_core、否则它将不会生成。 我得到:

"XDC.cfg.Program:软件包'ti.sysbios.KNL'与此构建中使用的 XDCtools 不兼容。 请使用与该软件包兼容的 XDCtools、或更新包含该软件包的产品、或使用 XDCtools 3.50或更高版本重建软件包。 .xdchelp /hello_66AK2H12_CortexA 第71行 C/C++问题"

我可能需要修改 GEL 文件? 我遇到的另一个问题(但尚未调查)是、我似乎从未从 Task_sleep (10)返回;  

我还尝试了 从经典 Resource Explorer 下的 Hello 示例构建的 hello_66AK2H12_CortexA 示例。

Mike

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Mike:

    您可以将此问题发布到 Code Composer 论坛吗? 那里的人员将为 CCS 相关问题提供更好的支持。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Mike、

    能否将 librdimon 添加到 GNU 连接器链接到的库列表中??? 还将以下内容添加到您的目标配置文件中
    VAR SemiHostSupport = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');

    半托管与您的用例相关、因此您需要添加库以获取输出。 此问题与 GEL 脚本无关。
    参考:
    processors.wiki.ti.com/.../BIOS_with_GCC_(CortexA)
    processors.wiki.ti.com/.../Processor_SDK_RTOS_Examples

    此外、请在此处查看 Karl`s 的响应、了解 system_printfs 在 TI RTOS 中的工作原理:

      




    此致、
    Rahul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的链接。 在将问题重新发布到 CCS 论坛后、我收到了与 Yordan 建议相同的答案。 [参考文献:https://e2e.ti.com/support/development_tools/code_composer_studio/f/81/p/610704/2248595#2248595]。 我尝试添加 var SemiHostSupport = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');、但缺少的部分是将库从 nosys 更改为 rdimon。 这样,我的 System_printf()数据就会刷写到 CCS 中的 CIO 控制台窗口中。

    谢谢 AGn。 Mike