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.

[参考译文] TM4C129EKCPDT:使用 sprintf 函数时出现运行时间错误

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1137510/tm4c129ekcpdt-run-time-error-for-using-sprintf-function

器件型号:TM4C129EKCPDT

大家好、

您能在下面帮助我们解决客户的问题吗?

我正在使用 CCS11、TI-RTOS 和 Tivaware 驱动程序库来开发 TM4C129EK。

我在使用 sprintf 函数时收到此运行时间错误

我想使用 sprintf 函数进行浮点到字符串的转换

此致、

Danilo

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

    您好 Danilo、

    由于 sprintf 需要大量堆栈、它们可能会达到堆栈溢出。 它至少需要1500个可用的堆栈空间。

    有关堆栈大小和使用较少堆栈空间的替代函数的信息、请参阅以下文章: https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1065741/tm4c123gh6pm-sprintf-and-stack-size/3943021#3943021

    此致、

    Ralph Jacobi

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

    您好、Ralph、

    感谢您的回答。 以下是我们客户的反馈。

    我见过 e2e 支持,他们提到了一个文档(e2e.ti.com/.../pastedimage1640906839986v1.png)。 您可以共享此文档吗?

    此致、

    Danilo

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

    您好 Danilo、

    这是 TivaWare (SW-TM4C) SDK 中提供的 TivaWare 实用程序用户指南。

    该文档的标题 为 SW-TM4C-UTILS-UG-2.2.0.295.pdf、可在 TivaWare 安装的 docs 文件夹下找到。

    此致、

    Ralph Jacobi

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

    您好、Ralph、

    根据我们的客户、

    我已经包含#include "utils/ustdlib.h"并尝试从代码中调用 usprintf()函数。  我遇到了一些错误。

      

    此致、

    Danilo

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

    您好 Danilo、

    他们还需要将文件添加到项目中。

    让他们查看我们的 TivaWare 入门指南 :https://www.ti.com/lit/pdf/spmu373的第3.1节

    此致、

    Ralph Jacobi

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

    您好、Ralph、

       实际问题是在不使用 sprintf 函数的情况下进行浮点到字符串转换,因为 sprintf 函数需要在 ti-RTOS 中使用模式堆栈内存。

    CCS、Tivaware Lib 或 TI-RTOS 中是否有其他选项可用于将浮点值转换为字符串???

    此致、

    Sumit Chaulya

    LTTS   

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

    您好、Sumit、

    [引用 userid="525210" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1137510/tm4c129ekcpdt-run-time-error-for-using-sprintf-function/4355626 #4355626"] 实际问题是在不使用 sprintf 函数的情况下浮点到字符串转换,因为 sprintf 函数需要在 ti-RTOS 中使用模式堆栈内存。

    usprintf 实用程序专门用于解决该问题。

    至于其他选项、我不知道 Code Composer 中可能还有哪些其他选项、因为您需要创建专用的 Code Composer 线程来进行团队评论。 对于 TivaWare、我们提供了 usprintf 来处理它。 TI-RTOS 也为 Tiva-C 提供了相同的产品、我不知道 TI-RTOS 封装中的任何替代产品。

    此致、

    Ralph Jacobi