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.

[参考译文] 编译器/SM320F28335-HT:Call_Graph 实用程序是否与 OFD2000一起使用以供堆栈使用?

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/857467/compiler-sm320f28335-ht-does-call_graph-utility-work-with-ofd2000-for-stack-usage

器件型号:SM320F28335-HT

工具/软件:TI C/C++编译器

我阅读了一个有关堆栈使用主题的主题、并学习了 Call_Graph 实用程序能够与 C6000中的 OFD6x 配合使用以生成具有堆栈使用的调用图。 当我使用 Call_Graph 实用程序尝试使用 OFD2000输出时、错误消息指示"No .debug_info sections found"、但我的项目使用-g 选项进行编译。 Call_Graph 实用程序是否适用于 OFD2000? 或者是否需要任何额外的编译选项来允许 Call_Graph 实用程序处理 OFD2000输出并生成使用堆栈的调用图?

期待收到您的回复。 非常感谢您的支持。

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

    考虑使用 CCS 内置的 Stack Usage 功能。  使用菜单选项 View | Stack Usage

    如果您仍想使用 CG_xml 包中的 call_graph 实用程序 ... 要查看软件包中脚本的文档、请将文件 INSTALL_LOCATE/index.htm 加载到 Web 浏览器中。  运行任何基于 OFD 的实用程序(如 call_graph)需要在可执行的.out 文件上运行 OFD 实用程序(在您的情况下为 ofd2000)以创建 XML 文件。  然后、该实用程序使用 XML 文件作为输入。  默认情况下、XML 中不存在调试信息。  它非常大。  但是、包括 call_graph 在内的一些实用程序需要调试信息。  在这种情况下、运行 OFD 实用程序时必须使用-g 选项。  下面是一个典型的序列...

    % ofd2000 -x -g file.out > file.xml
    % call_graph file.xml > graph.txt 

    如果不将-g 与 ofd2000一起使用,则可以从 call_graph...中看到此诊断。

    [引用用户="Ming Ma1"]未找到.debug_info 段"

    谢谢、此致、

    乔治

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

    谢谢、George、

    我使用的是传统 CCS3的 OFD2000。 使用 CCS9的较新版本 OFD2000时、按照您的建议使用命令、我可以从 call_graph 中获取结果。 遗憾的是、所有节点都显示 WCS=0。 我似乎需要使用 CE_DEBUG 等特定选项来编译原始工程。

    目前、我被锁定在传统 Code Composer Studio 3.3中的 Cl2000编译器中。 哪个版本的 Code Composer Studio 开始支持此功能? 我从 Web 读取、似乎需要 Code Generator 6.1.2、我们使用5.1.2。

    此外、我应该使用什么编译选项来生成栈计算的跟踪?

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

    以下是 call_graph 文档中适用的部分...

    与计算堆栈深度相关的限制
    使用-g 进行编译时、较旧的编译器版本会阻止计算
    堆栈深度。 如果使用编译器版本>=进行编译、则会显示这些版本
    在这里、该限制不适用于您。
    
    器件系列 最低编译器版本
    -------- --------------
    ARM 4.6.0
    C2000 5.2.0
    C6000 7.0.0
    MSP430 3.1.0
    
    如果使用较旧的编译器版本、则无法编译任何代码
    使用-g 开关。 如果代码是使用-g 构建的、则调用图仍然可以
    设计。 但堆栈深度信息不准确。 

    因此、如果您使用早于5.2.0的 C2000编译器版本、并且希望查看堆栈深度数、则无法使用-g 进行编译

    注意 CCS 的版本无关紧要、只有编译器的版本。

    谢谢、此致、

    乔治

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

    谢谢、George。

    我们的编译器版本为5.1.2。 我可能会尝试使用较新版本的编译器重建项目。 正如您提到的、在某些情况下、这可能是不准确的。 我将加倍以确认使用情况。