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/MSP430FR5969:MSP430中的打印功能

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/600345/ccs-msp430fr5969-printf-in-msp430

部件号:MSP430FR5969

工具/软件:Code Composer Studio

我正在尝试将printf与MSP430FR5969板配合使用。  

我已经用基本的地狱式工程进行了测试,它运行良好。  

现在,我正在尝试在我正在处理的项目中使用printf,因为我想使用printf来记录我的项目。  

但当我运行另一个项目时,CIO控制台没有出现。

这个问题是关于什么?

如何查看CIO控制台?  

此致,  

Mirae

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

    我想您可能已经没有堆空间了。 您可以尝试增加堆的大小,看看是否可以解决问题。

    有关在MSP430中使用printf的详细信息,请参见:
    processors.wiki.ti.com/.../Printf_support_for_MSP430_CCSTUDIO_compiler

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

    您好,  

    感谢您的回复。

    我尝试了此页面 processors.wiki.ti.com/.../Printf_support_for_MSP430_CCSTUDIO_compiler中写入的步骤 ,但仍然无法正常工作。  

    我检查了启用CIO,但仍然没有显示。  

    您是否有其他关于此问题的建议?  

    最佳,  

    Mirae

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

    Mirae,

    是否可以附加项目?  我可以看看它的设置。

    John

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以在CCS中导出项目,方法是在项目资源管理器中右键单击该项目,然后选择“导出”。 然后在打开的对话框中,选择General (常规)-> Archive file (存档文件)。 然后,您可以将项目导出为zip。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我附上了我正在处理的项目。  

    此致,  

    Mirae

    e2e.ti.com/.../8054.RTOS.zip

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

    Mirae,

    查看项目,我可以看到堆大小设置为160。  这还不够大。  堆选项如下所示。  尝试使用300或320作为此值。

    此致,

    John

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

     已经尝试过了。 但后来我又把它改成了160,因为它不起作用。  

    我附加了堆值为320的项目。

    e2e.ti.com/.../RTOS_5F00_ver2.zip

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

    我需要获取FreeRTOS并进行设置以尝试构建此项目。 我怀疑FreeRTOS需要额外的堆,但我根本不熟悉使用它。

    John
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我下载了FreeRTOS并运行了演示。 要使其生成,我必须将选项中的printf支持从最小更改为完全。 Printf也不会向我输出任何内容。 我逐步介绍了该代码,我可以看到该项目包括其自己的printf版本,而不是TI编译器C运行时支持库附带的版本。 我无法帮助您使用它。 如果您想要使用该功能,则FreeRTOS的人员需要帮助。 MSP430论坛中的社区成员可能知道它的工作原理。

    通过执行以下操作,我可以使printf正常工作:
    将printf支持恢复到最小,以便将其装入内存(项目属性,生成->MSP430编译器->高级选项->语言选项)
    从项目中排除printf-stdarg. c文件(右键单击该文件并选择从生成中排除)。
    将堆设置为320
    构建
    注释掉导致生成错误的sprintf行
    再次构建
    运行
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    非常感谢您的帮助。

    我不知道以下问题是否与此主题相关...

    我刚刚弄清楚如何将printf与MSP430板配合使用。

    但现在我面临另一个问题...  

    我的问题是

    当我在while循环中使用printf函数打印某些字符时,即使while循环仍在运行,它也会突然停止打印某些内容。

    这是内存问题吗? 因为MSP430在内存中有限制?  

    最佳,  

    Mirae

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    第一次使用时将进行printf的堆分配,因此不会出现堆不足的问题。

    关于C运行时库中的printf需要注意的一点是,设置了断点,当遇到printf时,应用程序会停止并传输字符串,然后我们再次运行应用程序。 因此,如果应用程序中存在中断,则可能会出现问题。 对于我们自己的RTOS (TI-RTOS),我们提供了不使用断点方法的名为System_printf的不同printf。 我怀疑FreeRTOS演示所使用的版本与此类似,但我对此没有任何经验。

    您是否与使用FreeRTOS绑定在一起?

    John
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的,我使用的是FreeRTOS,但我使用的是TI在FreeRTOS项目中提供的printf。

    可能是应用程序中断导致了此问题,如您所述。
    我应该再次尝试使用FreeRTOS提供的printf解决此问题。

    此致,
    Mirae
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    FreeRTOS提供的printf可能会更小,并且使用更少的内存。 这最终将是一个更好的选择。 但我不知道它是如何运作的。 可能它通过UART发送打印文件,您可以在终端中查看?