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.

[参考译文] MSP432E411Y:为什么建议使用 System_printf()而不是 System_printf()。

Guru**** 2198510 points
Other Parts Discussed in Thread: MSP432E411Y, SYSCONFIG
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1180239/msp432e411y-why-is-system_printf-recommended-instead-of-system_printf

器件型号:MSP432E411Y

您好!  

[问题1]
"spruex3v"似乎强烈建议使用 System_printf()而不是 printf()。 为什么推荐 System_printf()?

[问题2]
这是问题1的延续。
在 MSP432E411Y 实现代码中,printf()用于检查是否正在执行某个函数,字符串将输出到 CCS 控制台。 使用 printf()时,输出如下所示。


根据问题1的内容,我尝试使用 System_printf(),但此函数不会将字符串输出到 CCS 控制台。
我是否需要执行任何特殊操作才能输出到控制台?

谢谢、

Astro

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

    根据我的理解、System_printf 更高效、但它似乎仅在任务上下文中工作。 如果您在 BIOS_Start()之前尝试调用它,则会发生不良情况。

    要获取控制台输出:

    1) 1)在 sysconfig GUI - Display 中、将 Display 类型从 UART 更改为主机。

    2) 2)用于初始化显示的位置
    Display = Display_open (Display_Type_UART、NULL);

    将其更改为  

    Display = Display_open (Display_Type_host、NULL);

    我认为(有点猜测)使用控制台会产生一些处理器开销。 我更喜欢使用 UART 选项、在 GUI 的显示设置中、勾选使用 UART_2。 这并不意味着使用 UART 编号2、而是意味着使用支持 DMA 的扩展 UART_2驱动程序、因此、没有真正的证据、我确信这更高效

    Jim

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

    您好!

     感谢 Jim 提供的信息。

     虽然 printf 可以使用、但执行它需要很多资源和周期、并且还包括一个断点。  System_printf()在占用空间和执行时间方面稍微“轻”,许多用户在开发的调试周期中使用它将错误消息打印到控制台屏幕。