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**** 2039090 points
Other Parts Discussed in Thread: SYSBIOS, 66AK2H12
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/610704/ccs-66ak2h12-no-printf-or-system_printf-output-to-ccs7-2-console

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

工具/软件:Code Composer Studio

我遇到了一个常见的问题–printf()和 System_printf()都没有输出。 我在 Keystone 论坛上发布了此内容、但有人建议、这可能是一个更好的提问场所。

我在 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:

    以下是在 CCS 中为 GCC 启用半主机的详细信息: processors.wiki.ti.com/.../BIOS_with_GCC_(CortexA)

    简而言之、我们默认关闭半主机、因为如果调试器未连接、则会出现问题。 因此、您需要执行三个操作来启用它(如上面的链接中所述)
    1.确保.cfg 中包含以下行(请注意、它可能已经存在、但已注释掉)
    VAR SemiHost = xdc.useModule('ti.sysbios.rts.gnu.SemiHostSupport');
    2.使用半主机 gcc 库。 使用"rdimon"而不是"nosy"。
    3.确保在 Tools->Debugger Options->Program/Memory Load Options->Enable Simehosting 中为其启用了 CCS

    SYS/BIOS 6.46需要 XDCtools 3.32。 它与 XDCtools 3.50不兼容...您会遇到构建错误。

    Todd
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢! 经过几天的努力、我终于有了一个功能性的 Hello World。
    注:
    我没有选项:tools->Debugger Options->Program/Memory Load Options->Enable Simehosting
    -我在目标配置下有程序/存储器加载选项(类似于您提供的链接的步骤7中所示的内容)、但没有启用 Simehosting 选项。
    -我找到并下载了 SYS/BIOS 6.50.1.12、它似乎与 XDCtools 3.50.2.20_core 兼容。 [参考文献:http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/sysbios/index.html]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很棒! 是6.50.1.12与 XDCtools 3.50.2.20兼容。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Todd、

    您是否有关于评论的任何其他信息"简短的故事是、我们默认为半主机关闭、因为如果调试器未连接、则会出现问题。" 这可能是我应该关注的问题吗?

    Mike

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

    Mike、

    我以为我也包括了这个链接: processors.wiki.ti.com/.../TI-RTOS_Examples_SemiHosting。 它还描述了一些半主机。

    Todd

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