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.

[参考译文] TMS320F28P550SJ:使用%f 时出错

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1508419/tms320f28p550sj-error-using-f

器件型号:TMS320F28P550SJ
主题:C2000WARE 中讨论的其他器件

工具/软件:

您好、工程师。 我们目前正在努力  F28P550创建学习指南。 但是、我们在使用浮点数据格式字符串时遇到了问题。
版本环境:Windows  11、CSS  20.1.1.8___1.7.1、C2000Ware_5.04.0.00
通过 CCS 创建的工程和 C2000Ware 中的例程都无法利用标准 C 库的%f 格式函数。 任何涉及%f 的浮点运算都将导致系统冻结。
例如、在代码中使用:
printf ("%.2f\r\n"、 12.1);
sprint f (buf、 "%.2f\r\n"、 12.123);
通过 XDS110调试器进行的单步调试表明、程序会卡住、并且在到达上述代码时不会执行任务。 但是、XDS110仍可控制芯片进行复位。
已尝试的解决方案:
1、 添加包含项 、stdlib.h
2. 增加堆栈 0x400 0x400  
3. 启用项目的--printf-support = full
全部失败。
尽管代码中可以使用其他自定义函数来解决输出浮点数据的问题、但这会相当麻烦。 最好使用%f 直接将其格式化为字符串
您能否分享有关%f 用法的任何想法?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    器件型号:TMS320F28P550SJ

    工具/软件:

    各位工程师好、我们正在使用F28P550制作其学习指南。但是在使用浮点型数据格式化字符串时发生了问题。μ s

    版本环境:win11、CSS 20.1.1.8___1.7.1、C2000Ware_5.04.0.00;

    通过CCS创建的工程以及C2000Ware中的例程、都无法使用标准C库的%% f格式化功能、涉及到浮点运算%f 都会死机。

    例如在代码中使用:μ s

    printf ("%.2f\r\n"、12.1);
    sprint f (buf、"%.2f\r\n"、12.123);

    通过XDS110调试器单步调试发现执行到以上代码时会直接卡死不执行任务、但是XDS110还可以控制芯片复位。μ s

    尝试过的解决方法:μ s
    1.添加包括 、stdlib.h
    2.增加堆栈0x400 0x400
    3.开启工程的--printf-support = full

    都失败了。μ s

    虽然在代码中可以使用其他自定义功能解决输出浮点型数据的问题、就是会比较繁琐。更希望使用%f 直接格式化为字符串。

    请问关于%f 的使用有什么思路吗?

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

    您好、我们只能支持英语帖子。  请 将您的问题重新发布为英文 、或发布到 C2000︎ 微控制器论坛- C2000微控制器- E2E 设计支持(TI.com)。  谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、工程师。 我们目前正在努力 F28P550创建学习指南。 但是、我们在使用浮点数据格式字符串时遇到了问题。
    版本环境:Windows 11、CSS 20.1.1.8___1.7.1、C2000Ware_5.04.0.00
    通过 CCS 创建的工程和 C2000Ware 中的例程都无法利用标准 C 库的%f 格式函数。 任何涉及%f 的浮点运算都将导致系统冻结。
    例如、在代码中使用:
    printf ("%.2f\r\n"12.1);
    sprint f (buf、"%.2f\r\n"12.123);
    通过 XDS110调试器进行的单步调试表明、程序会卡住、并且在到达上述代码时不会执行任务。 但是、XDS110仍可控制芯片进行复位。
    已尝试的解决方案:
    1、添加包含项 、stdlib.h
    2.增加堆栈0x400 0x400
    3.启用项目的--printf-support = full
    全部失败。
    尽管代码中可以使用其他自定义函数来解决输出浮点数据的问题、但这会相当麻烦。 最好使用%f 直接将其格式化为字符串
    您能否分享有关%f 用法的任何想法?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:

    感谢您的耐心。 请允许我在另外一天就此与编译器团队核实。

    此致、

    Allison

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

    您已经尝试了 使用 printf 的提示中的一些建议。  但我认为您应该再次浏览它们。  大家好、尤其是 hello world 示例。  这样可以吗?

    谢谢。此致、

    -乔治