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.

[参考译文] TMS320C6748:如何在不使用 Code Composer Studio 的情况下进行评测?

Guru**** 2535750 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1334987/tms320c6748-how-to-profile-without-using-code-composer-studio

器件型号:TMS320C6748

您好!

我从事 C674x DSP、我想对我的软件进行评测以提高其性能(例如、主要降低处理延迟)、 但我不使用 Code Composer Studio、也不使用工作流程中的调试探针、因此、如果可能、我还想在不使用这些工具的情况下进行性能评测。 我成功地使用-- gen_profile_info、运行它并提取.ppdata 段的内容(使用一段代码、该代码逐字节读取并将其发送到串行端口)、然后将其放在我的开发计算机上的一个文件中(大约占用46KB)。

然而,我无法找到我需要用哪种格式来放置这些数据,以便 pdd6x 可以处理它:如果我在我的原始文件上调用 pdd6x ,我立即运行到以下错误消息"致命错误:无效的文件魔术"。 我尝试将.ppdata 段的内容嵌入 COFF 文件中(使用 SPRAAO8应用报告和 C6000编译器的 DSP 二进制输出标头)、但我收到了相同的错误消息。

我没有设法在网上找到很多帮助,这就是为什么我在这里问:有没有人知道我可以在哪里找到.pdat 文件的格式的描述,或任何人可以给我发送一个有效的.pdat 文件作为一个样本,我可以从工作? 是否有人曾设法在没有 Code Composer Studio 的情况下进行代码分析?

提前感谢您! 祝你度过美好的一天!

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

    我不知道有谁写了配置文件计数出一个定制的方式,然后后处理它与 pd6x 。   

    Unknown 说:
    其中我可以找到.pdat 文件格式的描述

    很遗憾、没有文档。 但编写一个实例的源代码 .pdat 文件可用。

    默认情况下、编译器 RTS 库中的代码将 .pdat 文件。  它使用 C I/O 函数、例如 打开 写入 。  RTS 的源代码随编译器提供。  它位于 compiler_install_root 目录中、 /lib/pk10 / src 。  查看函数  输出路径配置文件信息 在文件中 输出 。  主要包含文件为 pprof.h 。  我相信这将为您提供所有必要的信息。

    谢谢。此致、

    -乔治

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

    您好! 非常感谢! 通过研究这些源、我确实能够使用 pdd6x 将原始数据转换为有效的.pdat 文件。

    我还能让编译器检查它,并生成一个包含代码覆盖率信息的 CSV 文件,但我对它的有效性怀疑,因为奇怪的价值:
       *许多线路的频率计数为零或接近零,但它们应该在高频率下调用(其他线路如预期为零)
       *约1300行(来自软件的不相关部分)的频率计数正好是4294967294 (即2^32 - 2 ),这看起来像未初始化的内存
       *超过10 000条线路的频率计数超过10亿,这与我的应用程序不一致
       *同一代码块中的几行(以{和}分隔)具有不同的频率计数,例如0和1.3亿,但它们应该具有相同的

    否则、在大约36,000条线路上、频率值持续扩展到[0、2^32 - 2]范围内。 我知道、在代码覆盖率文件中多次写入会附加数据、而不会覆盖它、因此在开始分析之前、我始终注意新建.pdat 和.prf 文件、并始终关闭并打开 DSP 电源。 我认为函数_TI_stop_pprof_collection 可以在后台工作、我不得不等待在串行端口上发送.ppdata、但根据您指出的代码源、它似乎并不是这样。

    恐怕我不是很清楚该频率计数的计算方式、就是我在某个地方犯了一个错误... 在调用_TI_start_pprof_collection 之前、是否需要使用某个值初始化.ppdata 段? "我怎么了?

    提前感谢您,祝您愉快!

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

    在文件头和数据集头文件之后、 .pdat file 应为 从用符号标记的地址开始的存储器副本  __ TI_prof_data_start 。  您是否比较了 .pdat 地址处存储器内容的预编译器文件?  是否匹配?

    谢谢。此致、

    -乔治