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/XEVMK2LX:Hello示例在ARM15内核上运行,但不打印到CCS7控制台

Guru**** 2553610 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/587240/ccs-xevmk2lx-hello-example-runs-on-arm15-core-but-does-not-print-to-ccs7-console

部件号:XEVMK2LX

工具/软件:Code Composer Studio

您好,

我们在2 l 16.04 上使用7.1 3.0和TI-processor-SDK-RTOS千米00.04 与XDS560 03.03。 hello示例在C66XX DSP内核上工作正常,而在ARM15内核上,该示例运行,但不在控制台中产生任何输出。

这同样适用于应写入标准输出的所有其他示例。

我们做错了什么? 如果你们有一些想法就更好了 我还将这个问题张贴到Keystone多核论坛。

谢谢

多罗提亚

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好Dorothea,
    在嵌入式系统中使用printf时,需要注意许多事项。 下面的Wiki文章涵盖了许多常见的文章:
    processors.wiki.ti.com/.../Tips_for_using_printf

    如果这有帮助,请告诉我

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

    Ubuntu 03.03 16.04 上使用7.1 0和ti-processor-SDK-RTOS千米2 l EVM-JTAG。00.04 与XDS560。 hello示例在C66XX DSP内核上运行正常,而在ARM15内核上运行该示例,但不会在控制台中产生任何输出。

    Cortex-A15的SYS/BIOS程序使用GNU ARM编译器编译,后者使用 半宿主 在CCS CIO控制台中生成输出。

    GNU编译器的SYS/BIOS "Hello" Cortex-A15示例在CCS CIO控制台中不产生任何输出,因为这些示例未启用半托管支持。

    而GNU编译器的SYS/BIOS"半宿主" Cortex-A15示例应在CCS CIO控制台中生成输出,因为这些示例启用了半宿主支持。

    另请参阅 如何为Cortex-A GNU目标启用半宿主? 从带有GCC Wiki条目的SYS/BIOS。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢Ki-Soo和Chester! Ki-Soo的链接提供了非常有用的信息,加上半托管功能就成功了。 只有一件事让我感到困惑:我将hello示例修改为有两个输出:
    printf("hello!\n");
    system_printf ("hello!\n");

    这两个语句都按预期写“hello!”,但printf()在语句后直接执行,而System_printf()输出仅出现在main()函数的末尾。 为什么会这样?

    谢谢

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

    both statements write as Expected "hello!",但printf()在语句之后直接执行,而System_printf()输出只出现在main()函数的末尾。 为什么会这样?

    System_printf()将其输出存储在缓冲区中,并通过调用 System_flush刷新缓冲区

    有时会调用system_flush,例如  调用BIOS_EXIT()时。 main()函数的末尾有什么?

     在需要刷新输出缓冲区时,也可以调用System_flush()。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    现在我明白了,非常感谢! 在主菜单的末尾是BIOS_EXIT(),因此刷新。

    谢谢

    多罗提亚