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.

[参考译文] MSP430-GCC-opensource:MSP430FR5994 printf 支持

Guru**** 2562960 points
Other Parts Discussed in Thread: MSP430FR5994

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1158015/msp430-gcc-opensource-msp430fr5994-printf-support

器件型号:MSP430-GCC-opensource
主题中讨论的其他器件:MSP430FR5994

您好!

我目前正在使用 MSP430FR5994、我正在使用 MSP430-GCC 并在 TI CCS IDE 之外工作。我尝试使用 printf 进行调试、例如传感器启动、在开发期间打印读数值等(不是针对生产)。 但是、当使用 GDB 和 gdb_agent_console 时、printf 消息似乎会被忽略。

我在使用 TI CCS 时成功使 printf 正常工作、我只需将堆大小设置为320、我就可以开始了! (在 MSP430-GCC 中指定--heap_size=320似乎也无法识别)。

TI CCS 中是否有特殊的 printf 实现、允许向 MSP430-GCC 不支持的 CIO 进行打印?

是否可以使用 MSP430-GCC 或是否需要通过特殊的 printf 实现方式连接单独的 UART 接口、以便将输出通过管道传递到其他位置?

如果有任何帮助、我们将不胜感激!

以下版本信息;

- MSP430-GCC 版本9.3.1.11

MCU 是 MSP430FR5994

谢谢、

Joe

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

    printf 假定操作系统支持不存在。 我从未将其用于嵌入式系统。 有时我使用 sprintf 生成一个字符串、然后使用我提供的串行输出例程来传输该字符串。

    假设它经过编译、这意味着希望底部有一些东西可以接受这些字符。 即使它实际上使用了串行端口、它是哪一个? 您是否初始化了它? 您可能需要使用 MSP430-elf-objdump -S 检查代码以查看代码执行的操作。

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

    Joe、您好!

    正如 David 所说、printf 在嵌入式系统中很棘手。  在调试中运行时、您是否成功点击并通过了 printf 语句、但却没有看到输出?  

    您的堆栈大小是多少? 默认情况下、在 MSP430FR5x 示例上、我认为这大约是160字节、对于 printf 的某些实现而言、这可能不够大。  

    另请参阅 《MSP430 GCC 用户指南》(slau646)的第5.4节

    此致、
    Brandon Fisher