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.

[参考译文] TMS320F28388D:优化问题(编译器)

Guru**** 2554850 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1238750/tms320f28388d-optimization-problems-compiler

器件型号:TMS320F28388D

您好!

我们在 F28388D 微控制器项目中编译一些文件时遇到问题。 当我们在优化关闭(Ooff)的情况下编译工程时、一切都可以。 优化 O0和 O1也是如此。 但是、正如我提到的、当我们设置 O2优化时、我们会遇到问题。  只生成一个文件、我们收到下一条消息:


****项目 C2000的配置调试构建****

"C:\\ti\\ccs1120\\ccs\\utils\\bin\\gmake"-k -j 8 os_common/Monitor/cmd_cl.obj -O

构建文件:"D:/C2000/010_Common/OS/Monitor/cmd_CL.c"
调用:C2000编译器
"c:/ti/ccs1120/ccs/tools/compiler/ti-cgt-c2000_21.6.0.LTS/bin/cl2000 -v28 -ml -mt -cla_support=cla1 --float_support=fpu32 --idiv_support=idiv0 --tmu_support=tmu0 --vcu_support=vcrc -O2 --opt_for_speed=2 --fp_mode=relaxed --fp_reassoc=on 删除的包含  --advice:performance=all --define=_flash --define=debug --define=CPU1 -g --symdebug:dwarf_version=4 --c11 --c++03 --relaxed_ansi --float_operations_allowed=all --printf_support=full ---cmd_Monitor=10063

>>编译失败
os_common/Monitor/subdir_rules.mk:目标"os_common/Monitor/cmd_cl.obj"的配方失败
tp>>内部错误:错误类型:类型::type_point_to
这是由 TI C/C++优化器中的缺陷导致的。
TI 客户支持可能会建议一种避免这种情况的权变措施。

升级到最新版本的编译器可能会解决这个问题。

请访问 http://e2e.ti.com 上的 E2E 支持论坛联系 TI
"开发工具"、"TI C/C++编译器"。 请参阅标题为
"提交问题"。

我们需要看到整个错误消息、以及一个完整、可重现的
包含所有命令行选项的测试用例。
包含由 option --preproc_with_comment 创建的.pp 文件

gmake:***[OS_COMMON/Monitor/cmd_CL.obj]错误1

****构建完成****

我还粘贴 cmd_cl.c 文件的部分(函数)、我们认为它导致了此错误:

静态 inline __erase_vector _parse_args (uint8_t* ptrInput、uint8_t* argv[]){
__erase_vector erase =无;
if (!make_argv (ptrInput、argv、0、1)){
/*信号错误参数保持擦除为零*/
}else if(argv[0][0])
/*引发适当的擦除标志*/
uint8_t sw = get_switch (argv[0]);
if (ch_equ_NOCASE (sw、'a'){
擦除=全部;
否则—if (ch_equ_NOCASE (sw、'r')){
擦除= ram;
否则—if (ch_equ_NOCASE (sw、'f')){
擦除=闪存;
/* TODO:检查特定于电路板的存储器的标志*/
其他(else)
/*不执行任何操作-擦除为零*/

其他(else)
/*未给出任何参数-全部擦除*/
擦除=全部;

返回擦除;

可以说此文件已成功与其他一些编译器(例如 C66或 RM57)编译(进行了 O2优化)。

谢谢你。

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

    不幸的是、我无法重现相同的行为。  用于源文件  CMD_CL.c  请按照 如何提交编译器测试用例一文中的说明进行操作。  您的帖子已显示构建选项和编译器版本。  因此、您只需要提供预处理文件。

    谢谢。此致、

    -乔治

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

    您好、George、

    我可以向您发送有关此问题的带预处理文件的私人消息吗?  

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

    可以。  将鼠标悬停在我的屏幕名称或形象秀上。 将弹出一个框。 单击  发送私密消息 。  将文件附加到私人邮件与 将文件附加到论坛帖子类似

    谢谢。此致、

    -乔治

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

    感谢您通过私人消息提交测试用例。  我能够重现相同的行为。  我提交了 EXT_EP-11172 来对此进行调查。  我们欢迎您通过这个链接来了解这一点。

    谢谢。此致、

    -乔治