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.

[参考译文] SIMPLELINK-MSP432-SDK:什么"stdout"DisplayHost 默认情况下是否 fwrite? 是否可以配置其目标?

Guru**** 2952510 points

Other Parts Discussed in Thread: MSP-FET

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/950829/simplelink-msp432-sdk-what-stdout-does-the-displayhost-fwrite-to-by-default-can-its-destination-be-configured

器件型号:SIMPLELINK-MSP432-SDK
主题中讨论的其他器件:MSP-FET

我对 SimpleLink MSP432P4 SDK ( http://dev.ti.com/tirex/explore/content/simplelink_msp432p4_sdk_3_40_01_02/docs/tidrivers/doxygen/html/_display_host_8h.html 上的文档)中提供的 DisplayHost 驱动程序的用途有点困惑。

查看 SDK 安装路径中的源代码、看起来它最终就像调用`fwrite(…、stdout);`具有我要`Display_printf(…)`的格式化结果 用户身份。 但`fwrite`对 MSP432有什么作用?!

很明显、TI 已将 stdio 设置为符合我认为相关的 C 或 C++标准(即、而不是 POSIX)、因为这不依赖于 SimpleLink POSIX 包装程序)。 stdio 函数的实现是否在某个位置可用? 它只是一个存根实现、例如 fwrite() to stdout 被丢弃、还是有内置调试器支持或其他功能? 是否有记录的方法可以覆盖这些内容、以便 DisplayHost 编写有用的内容?

基本上想知道是否/为什么/如何使用 DisplayHost (而不是 LaunchPad 上的 DisplayUART 或自定义串行反向通道端口),这也让我想知道有关编译器 stdio 的内容也是一样的-- 它只是为了使代码能够编译、还是说代码也会在某种程度上与实际连接的默认 stdin / stdout "工作"? 如果是、我可以更改写入这些 std 描述符的功能吗?

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

    您好、Nathan、

    唯一可用的源代码可在 C:\ti\simplelink_msp432p4_sdk_3_40_01_02\source\ti\display\DisplayHost.c 中找到

    Srinivas

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

    好的、听起来 C/C++库是封闭源代码。 您能不能告诉我 builtin `fwrite`函数的默认功能是什么以及它的行为是否可以配置?

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

    看起来 stdlib 库不是封闭源代码。 将`fwrite ("test"、4、1、stdout)`放入示例工程并单步执行、调试器首先在"C:\ti\ccs1000\CCC\tools\compiler\ti-cgt-arm_20.2.LTS lib\src"中找到 fwrite.c、该文件最终会在`HOSTwrite()`中调用相同文件夹中实现的``文件。

    我仍然没有找到有关该功能整体使用的完整说明或良好指南、但简言之、数据是通过调试通道发送的、当 stdout 写入时、它倾向于在 CCS Debug 透视图中打开"my_project:CIO"控制台视图。 太棒了! 我们已经为这种记录/交互设置了 UART、但 MSP-FET UART 的字符和内容都很糟糕。 这可能会很有用。

    现在我对我要询问的内容有了一些了解,有人能给我指出 HOSTwrite()和 CIO 的文档吗? 或者他们的更高级别名称是什么?

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

    具体而言、MSP432的链接当前为 http://dev.ti.com/tirex/explore/node?node=AB7f4Ige5MhJBdj939tqxg__z-lQYNj__LATEST (可通过 https://e2e.ti.com/support/processors/f/791/t/883775上不同平台的提示找到)。 如果站点进行了改组、则可以在"TI Resource Explorer > SimpleLink MSP432P4 SDK > SimpleLink Academy >调试>调试打印"文章中找到这些注释。

    它解释了以下内容:

    默认情况 printf 下、在 CCS (在 IAR 中也是如此)中、输出会进入 CIO ("C"输入/输出)缓冲器。 当 CIO 缓冲器已满或写入 EOL 字符(即'\n')时、会命中断点并 CCS 读取缓冲器的内容。 然后 CCS 恢复目标。 正如人们可以猜测的那样、此操作可能会对实时性能产生非常不利的影响。

    和:

    printf 可以重定向输出。 对于以下比较,我们已通过 add_device、 freopen 和 setvbuf API 将其重定向到 UART。

    并特别提到 Display_Type_host 用于此 IDE 调试功能。