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.

[参考译文] 编译器/IWR1443:CG_xml 调用图错误

Guru**** 2538860 points
Other Parts Discussed in Thread: IWR1443, SYSBIOS

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/692025/compiler-iwr1443-cg_xml-callgraph-error

器件型号:IWR1443
Thread 中讨论的其他器件: SYSBIOS

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

下面是我的构建环境:

  • 器件:IWR1443
  • Cortex R4F
  • 编译器 TI v16.9.4 LTS
  • CG_xml 2.60
  • SYSBIOS 6.50.01.12
  • XDCtools 3.50.3.33_core

我的项目正在生成一个 xml 文件、如下所示:

'构建目标:level_sense demo.xer4f'
'调用:ARM 链接器'
"c:/TI/ccs_v7.3/ccsv7/tools/compiler/ti-cgt-arm_16.9.4.LTS/bin/armcl -mv7R4 --code_state=16 --float_support=VFPv3D16 -me -O4 --opt_for_speed=0 --define=SOC_XWR14XX --define=Subsys_MSS --define=download_from_ccs --define=dug_enable=800_remote_display_subsection=-caps=-map_subsection-out_subs=-out_subs=-out_subsection-out-out-out-display_subs=-out_subs=-map_subs=-out_sense_display_subsection-out_subs=-out_subs=-out_subsection-out-map=-out_subs stack_size=0x800 -"C:/TI/mmwave_sdk_01_00_00_05/packages/ti/control/mmwave/lib -"C:/TI/mmwave_sdk_01_00_00_05/packages/ti/control/mmwavelink/lib -"C:/TI/mmwave_sdk_01_00_00_05/packages/ti/drivers/esm/lib -"C:/TI/mmwave_sdk_01_00_00_05/packages/ti/drivers/adcbuf/lib -"C:/TI/mmwave_sdk_01_00_00_05/packages/ti/drivers/crc/lib -"C:/TI/mmwave_sdk_01_00_00_05/packages/ti/drivers/dma/lib /TI/mmwave_sdk_01_00_00_05/packages/ti/drivers/mailbox/lib /TI/mmwave_sdk_01_00_00_05/packages/ti/drivers/spi/lib /TI/mmwave_sdk_01_00_00_05/packages/ti/drivers/uart/lib /TI/ccs_v7.3/ccsv7/tools/compiler/ti-cgt-arm_16.9.4.LTS/include -i"C:/TI/mmwave_sdk_01_00_00_05/packages/ti/drivers/edma/lib -i"C:/TI/mmwave_sdk_01_00_00_05/packages/ti/drivers/pinmux/lib /TI/mmwave_sdk_01_00_00_05/packages/ti/drivers/qspi/lib /TI/mmwave_sdk_01_00_00_05/packages/ti/drivers/osal/lib -i"C:/TI/mmwave_sdk_01_00_00_05/packages/ti/drivers/hwa/lib /TI/mmwave_sdk_01_00_00_05/packages/ti/drivers/soc/lib /TI/mmwave_sdk_01_00_00_05/packages/ti/drivers/qspiflash/lib /TI/ccs_v7.3/ccsv7/tools/compiler/ti-cgt-arm_16.9.4.LTS/lib -i_example_intrad_example"-i_rom_example_-i_example_-i_rom_example_-i_example"-i_rom_example_-i_example_-i_example_-i_example"-i_example_-i_example_ine_-rom_example_-i_ecnation_sense_-example"-i_example"-i_example_-i_example"-i_ecnation_sense-example"-i_example"-i_example"-i_econ_-i_-i_example_-rom_econ_-ine_-example"- unused_section_elimination=on -o "level_sense_demo.xer4f"./main.obj "./source/demo.obj "./source/iwr_gpio.obj "./r4_linker.cmd"./r4f_linker -lifrf_librx14xx -laervrf_libx14xx_librf_laer4xx -laerf_libcrx14xx_librf_libaer14vrf_lib_laer4xx -laerf_libcrx14xx_libaerf_libaer4xx_libaerbloorf.lapr-laer4xx -lapr-lf_librf_libaer14x14xx_librf_libaer4xx_libaerbloorf_lib_libr4

'完成的构建目标:level_sense 演示.xer4f'

我将在此处附加 xml 文件:

e2e.ti.com/.../level_5F00_sense_5F00_demo_5F00_linkInfo.xml

我正在尝试使用调用图工具。  首先、我使用 CG_xml 工具中包含的可执行文件从 Windows 中试用了它:

C:\TI\CG-xml_2.60.00 \bin>call_graph.exe C:\Users\a0193370\workspace_v7\level_sense 演示\Debug\level_
sense_demo_linkInfo.xml
在@INC 中找不到 XML/libxml/SAX.pm (您可能需要安装 XML::libxml::SAX 模块)(@INC c
包括:C:/TI/cg-xml_2.60.00/bin C:\Users\a0193370\AppData\Local\Temp\PAR-61303139333730\cache-95
9081c80498894bc3c181730f981cd0e02355c6\inc\lib C:\Users\a0193370\AppData\Local\Temp\PAR-61303333
3730\cache-959081c80498894bc3c181730f981cd0e02355c6\inc code (0x315ad0c) code (0x315af04))、位于(eval 14
)第1行。
XML:::简单调用在 XML_TI_OFD.PM 行906中。

接下来、我决定将 xml 文件复制到我的 Linux PC。  这是我的尝试:

Brad@Brad-XPS/15-9560:~/ti/cgxml-2.60.00/bin ./call_graph /mnt/diskstation/temp /level_sense_demo_linkInfo.xml
在 XML_TI_OFD.pm 行220 4的模式匹配(m//)中使用未初始化的值$str。
在 XML_TI_OFD.pm 行1354的哈希元素中使用未初始化的值$Targ_num。
./call_graph only tested for C6000、C5500、ARM、C2000和 MSP430 not:unknown
找不到入口点。 已在脚本/call_graph.pl 第994行停止。

有什么想法我为什么无法获得呼叫图?  请注意、我尝试解决的"实际"问题是为什么我的应用中包含 printf、因此我希望调用图将揭示幻象 printf 调用的来源!

谢谢、
Brad

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

    发生了两种不同的错误。  一个是 CG_xml 问题。  另一个是您的错误。

    论坛主题中首次报告了 CG_xml 问题。  根本原因是关于如何生成 Windows 的 Perl 可执行文件的详细信息。  这需要修复、并生成另一个版本。  使用 Linux 可执行文件是一种权变措施。  另一个是恢复为 CG_xml 版本2.50.00。

    错误 call_graph 不使用映射文件 XML 作为输入。  它使用由 armofd 创建的 XML。  使用类似的命令创建它...

    % armofd -XG --xml_indent=0 --obj_display=none、header、symbols、battrs --dwarf_display=none、dinfo file.out > file.xml 

    这会创建最小的 XML 文件、这意味着 call_graph 的运行速度比其他文件快。  如果您的程序不是那么大,或者您不在乎,您可以使用这个更简单的命令...

    % armofd -XG file.out > file.xml 

    [引用 user="Brad Griffies"]我尝试解决的"真正"问题是为什么我的应用程序中包含 printf

    在这种情况下、当您运行 call_graph 时、请使用--func_info 选项。  这将使其打印出每个函数的文件名(以及其他函数)。

    谢谢、此致、

    乔治

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢、George。 非常有用! 我还找到了负责调用 printf 的代码。 我可能还需要启动与该主题相关的主题。 我会先去的...