主题中讨论的其他器件:TMDSDOCK28335
工具/软件:TI C/C++编译器
您好!
使用 ofd 工具创建调用图时、应使用什么命令来查看有关间接函数的详细信息?
我想向您展示为我提供一个示例的代码。
下面是生成的调用图中提到的内容。
"
以下函数已知包含间接函数调用、但
不要在配置中包含有关这些间接调用的任何信息
用--i_cfg=file 指定的文件。 运行"perldoc call_graph.pl 了解更多信息
信息。
"
谢谢、此致
韩文
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.
工具/软件:TI C/C++编译器
您好!
使用 ofd 工具创建调用图时、应使用什么命令来查看有关间接函数的详细信息?
我想向您展示为我提供一个示例的代码。
下面是生成的调用图中提到的内容。
"
以下函数已知包含间接函数调用、但
不要在配置中包含有关这些间接调用的任何信息
用--i_cfg=file 指定的文件。 运行"perldoc call_graph.pl 了解更多信息
信息。
"
谢谢、此致
韩文
您正在使用 CG_xml 包中的实用程序 call_graph。 要查看文档、请使用您喜爱的 Web 浏览器打开文件 CG_xml_install_directory/index.htm。 单击脚本 call_graph.pl 的链接。
实用程序 call_graph 会告诉您哪些函数进行间接函数调用。 但它不能告诉您间接调用哪些函数。 您以配置文件的形式提供该信息、这些配置文件通过选项--i_cfg=name_of_configuration_file 提供给 call_graph。 有关详细信息、请参阅 call_graph 的文档。 请搜索标题为 间接函数调用配置文件的子章节。
谢谢、此致、
乔治
感谢您的回复、George
正如您告诉我的、我查看了 call_graph.pl 的文档。
但是、我在使用该命令时遇到问题。
用法: ofdXX -g -x 文件 | perl call_graph.pl [选项]
The option I will use is --i_cfg=<file> : Configuration file for indirect function calls
应输入什么文件 ?
C:\ti\ccs910\ccs\tools\compiler\ti-cgt-C2000-18.12.2.LTS \bin\ofd2000.exe -x -g "C:\Users\Hans\Desktop\PLC2-3\TI\Testbed\Micrium \examples\TI\TMDSDOCK28335\OS2\ccs\Debug\Testbed.out"| Program\cg1.x86\i 文件- call_graph.pl (\ccs_1.00x)-1.x86\i:\ccs -1.00g:\ccs -1.00g:\cgm ">"C:\Users\Hans\Desktop\PLC2-3\TI_bin\CFG\Testbed_cg.txt
您能否以该命令为例向我演示一下?
谢谢、此致
韩文
[引用 user="Han SeungJae">应输入的文件是什么 ?[/报价]
call_graph 选项--i_cfg 的一些示例文件位于 cG_xml 安装中。 在 cG_xml_install_directory\ofd 目录中查找这些文件...
这些文件在我在第一篇文章中介绍的 call_graph 文档中进行了说明。 搜索标题为 Compiler RTS Functions 的配置文件的子章节。
谢谢、此致、
乔治
请考虑这个非常简单的示例。 这是一个进行间接函数调用的 C 函数。
typedef void (* fp)(); void Child1 (); void Child2 (); void parent (int arg) { fp function_pointer; function_pointer =(arg)? Child1:Child2; (* function_pointer)(); }
实用程序 call_graph 可以指示父函数进行间接函数调用。 它会告诉您该输出...
以下函数已知包含间接函数调用、但 在 使用--I_cfg=file 指定的配置文件中不包含有关这些间接调用的任何信息。 运行"perldoc call_graph.pl 以了解详情 。 ======================================================================================================================================================== 父项(_P)
此外、在图中、函数父级函数显示为不调用。
因此,创建一个包含这些内容的文本文件...
# indirect_calls.txt _parent:_Child1 _Child2
此配置文件指出、函数_parent 间接调用_Child1和_Child2。 始终列出间接调用的所有函数。
有关前导下划线的注释... 为 COFF ABI 编译时、需要使用这些下划线。 如果您是为 C28x 以外的任何 TI 器件构建的、则会使用 EABI、并且不需要这些前导下划线。 只要在 C28x 编译器中使用--abi=eabi,情况也是如此。
调用 call_graph 时、请添加选项--i_cfg=inird_calls.txt。 下面是父级调用图的一部分...
|||_parent:WCS = 8 ||||_Child1:WCS = 2 ||||_Child2:WCS = 2
由于配置文件的原因、该图现在显示父级调用了 Child1和 Child2。
谢谢、此致、
乔治