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/TMS320C6713B:CCSv5.5中对 log_printf %f 的支持

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/704734/ccs-tms320c6713b-support-for-log_printf-f-in-ccsv5-5

器件型号:TMS320C6713B

工具/软件:Code Composer Studio

我正在处理一个旧项目、该项目是使用6713 DSP、CCSv3.3 SR8、DSP/BIOS v 5.32、CGT 6.1.8和 Blackhawk USB560M 交付给我们的。  项目的最早阶段可追溯到2007年。  此设置要求我们运行具有管理权限的32位 Windows。  此外、没有比 Vista 更新的 Windows 版本允许我从 CCSv3.3的默认 BIOS 版本5.31成功切换到5.32、而不会出现 Vbd.dll 错误。  在 Vista 上,如果组件管理器专门设置为以管理员身份运行,则可以避免 Vbd.dll 问题。  在 Windows 7上尝试此操作不起作用。

调试时、我们非常依赖于 log_printf 功能。  我知道、较新版本不再支持该功能(RTA/RTDX)。  我过去尝试过使用 CCSv5和 DSP/BIOS v5.32运行、这使我能够查看 LOG_printf 输出、但不能实时查看、只能在调试器停止时查看。  我在将 BIOS 版本更改为5.32以上而不崩溃时遇到问题。

几个月前、我意识到如果我增加了系统堆栈大小和特定线程堆栈大小、我可以使更新的 DSP/BIOS 版本正常工作。  最后、我免费安装了附带5.42系列 DSP/BIOS 和 CGT 7.4.4的 CCSv5.5。  我重建了并且 LOG_printf 正在实时工作、一切都很好、除非我执行%f LOG_printf、否则 printf 日志仅显示字母"f"、而不显示浮点值。

我意识到、即使打印浮点值也没有记录。  我在一些论坛帖子中看到、它仅在浮点 DSP 上允许。  是否有方法在 CCSv5.5中恢复此功能?  否则、我必须乘以比例因子并转换为 int 或其他内容。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不知道它是否适用于 log_printf(),但有一些选项可以为 printf()添加功能

    我知道以下内容适用于 MSP430、但:
    processors.wiki.ti.com/.../Printf_support_for_MSP430_CCSTUDIO_compiler
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以从 K&R 调整 itoa():
    github.com/.../e-3.6-itoa.c
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Itoa 不能与 BIOS 函数 log_printf 配合使用、因为与%s 传递的字符串必须是常量的(位于代码的.const 段中)。 log_printf()用指向该字符串的指针向调试器发出信号,然后调试器在符号表中查找该字符串。 这意味着 UUT 不必通过 JTAG 发送整个字符串。

    DSP/BIOS LOG_printf 和 RTS (C 库) printf 是两种不同的运行方式。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    后续操作:我正在查看此处的信息、并尝试查看它是否与 CCSv5.5和 BIOS v5.42相关
    e2e.ti.com/.../170423
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我在这方面进行了一些探讨,但遗憾的是,我找不到任何证据表明'%f'被或曾经被支持为 log_printf()的转换字符。

    Alan

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

    我也从未见过任何正式文件。  它还不在 DSP/BIOS API 指南中、但在某种程度上它起了作用。  我认为我可能已经看到过一个论坛参考、现在我找不到它。 它可以与具有单个参数案例的 CCSv3.3配合使用。  执行(log_info、"float 1 =%f、float 2 =%f"、float1、float2)将不起作用。  

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

    我查看了解释目标传递给 CCS 的格式字符串的 Java 代码(并与作者交谈)。 代码中当前没有针对'%f'的处理程序。

    Alan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢。 我想知道这是 DSP/BIOS 问题还是 CCS 问题。 我将继续并相应地更新我的 log_printf。