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.

[参考译文] 编译器/TMS320F2.8335万:C2000编译器版本问题

Guru**** 2524550 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/582438/compiler-tms320f28335-c2000-compiler-version-problems

部件号:TMS320F2.8335万

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

我们已将其中一个工作站从CCS 6.0 .ort.CCS与编译器 C2000.TI v.7 CCS一起迁移到6.2 .1.0.004万 0.0.005万 和编译器C2000.6.2 15.12 .3.LTS,它在早期版本中编译和运行良好,但在新版本上编译器出现故障,如下所示:

>>编译失败
source/subdir_rules.mk:91:目标'source/Phase_a_Controller.obj'的配方失败
"C:/ti/ccsv6/tools/compiler/c2000_line.3.LTS/include/_defs.h" 15.12 ,第187行:警告#328-D:不允许使用"inline"
"C:15.12 .3.LTS/include/_defs.h",第188行:错误#66:需要一个";"
"C:/ti/ccsv6/tools/compiler/c2000_para.3.LTS/include/mathmation.h" 15.12 ,第252行:警告#12-D:解析在之前的语法错误后在此处重新启动
编译"../source/Phase_a_Controller.c"时检测到1个错误。
gmake:***[source/Phase_a_Controller.obj]错误1
gmake:由于错误,目标'all'没有重制。

查看TI文件_defs.h,相关代码如下所示:-

187 _code_access __inline int __isfinitef (float f)
 188 { return __float_dendice_EXP_is_MAX_(f)== 0;}

 我看不出任何明显的东西,浏览论坛我再次找不到任何关于为什么不允许‘inlines’的提法。 使用新的CCS版本将旧的编译器复制到编译器文件夹中,并在编译器选项有效时选择此选项,但在我了解发生的情况之前,我不高兴发布此文件。

此致

托尼

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

    请按照编译器看到的方式显示所有生成选项。

    谢谢,此致,

    -George

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

    您好,George,

    感谢您的关注,以下是 使用编译器C2000 15.12 .3.LTS时设置的编译器选项:-

    -v28 -ml -mt --float_support=fpu32 --opt_of_speed=5 --fp_reassoc=off --include_path="C:/ti/ccsv6/tools/compiler/c2000_diag.3.lts/include" 15.12 --include_path="./include"-g --define="_diag_blo又-display_warn=225

    链接程序选项为:-

    -v28 -ml -mt --float_support=fpu32 --opt_of_speed=5 --fp_reassoc=off -g --def="_debug"--define="lag_model"--display_error_number --diag_wrap=off --diag_warning=225 --ti_listing_-z -m -m"rom_workstack 15.12 -sm_line_lingb -s/lingb_lingb_ex_ex_links_lin_links_ex_links_links_ex_links_l_links_lingb -/lingb -ex_lingb -ex_lingb -ex_ex_ex_lingb -ex_ex_lin_lin_lingb -ex_l_ex_lin_l_lingb -ex_l_ex_lin_l_ex_ex_ex_l_l_l_ex_ex_ex_ex_lingb -sprob_ex_ex_ex_ex_ex_ex_l_l_l_lin 15.12

    这将产生:-

    '构建文件:../source/Phase_a_Controller.c'
    '调用:C2000编译器'
    c:\ti/ccsv6/tools/compiler/c2000_LTS.3.ls/bin/cl2000"<xmt-block0>2000 15.12 -v28 -ml -mt --float_support=fpu32 --opt_for speed=5 --fp_reassoc=off --include_path="c/ti/ccpendor=6/tools/include_proc/rediag_proc/pre-reput_model="-dip_proc_s="-reb_proc_s="-dip_proc_ps.3"-reb_proc_def_proc_proc_dreb_proc_de="-foc_pre-foc-foc_list" 15.12 -reflate_路 由-ref="-ref="-refl_proc_def_proc_proc_proc_drebe_d="-refle_d="-refl_"-ref="-refle_dip_proc_"-ref="-refl_le_d="  

    >>编译失败
    source/subdir_rules.mk:91:目标'source/Phase_a_Controller.obj'的配方失败
    "C:/ti/ccsv6/tools/compiler/c2000_line.3.LTS/include/_defs.h" 15.12 ,第187行:警告#328-D:不允许使用"inline"
    "C:15.12 .3.LTS/include/_defs.h",第188行:错误#66:需要一个";"
    "C:/ti/ccsv6/tools/compiler/c2000_para.3.LTS/include/mathmation.h" 15.12 ,第252行:警告#12-D:解析在之前的语法错误后在此处重新启动
    编译"../source/Phase_a_Controller.c"时检测到1个错误。
    gmake:***[source/Phase_a_Controller.obj]错误1

    和错误。

    使用编译器C2000 _ 6.2 6-7,我们就能获得

    -v28 -ml -mt --float_support=fpu32 --opt_of_speed=5 --fp_reassoc=off --include_path="C:/ti/ccsv6/tools/compiler/c2000_diag.7/include" 6.2 --include_path="./include"-g --define="_off"--diag_off" model_warning=225"-display_display_reble_listing="-display_reble="-display_display_reble_display_display_display_display_number-

    这会产生:-

    '构建文件:../source/Phase_a_Controller.c'
    '调用:C2000编译器'
    "C:/ti/ccsv6/tools/compiler/c2000_jcp_jcp.7/bin/cl2000"<xmt-block0>2000 6.2 -v28 -ml -mt --float_support=fpu32 --opt_for _speed=5 --fp_reassoc=off --include_path="C:/ti/ccsv6/tools/compiler_ps_prob.7/pred告-re_proc_drebe_pre-listing="-foc_proc_def_proc_model_proc_drebe_probe_probure="-phe_probe_probure="-reflate_model="-d="-fund_proc_drebe_probe_probure_proc_dreble="-refl." 6.2  
    '完成的建筑:../source/Phase_a_Controller.c'

    无错误。

    如果有任何想法,我将不胜感激。

    谢谢,致以诚挚的问候

    托尼

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

    不幸的是,我不能复制...

    Tony Lakin 说:
    "C:/ti/ccsv6/tools/compiler/c2000_line.3.LTS/include/_defs.h" 15.12 ,第187行:警告#328-D:不允许使用"inline"
    "C:15.12 .3.LTS/include/_defs.h",第188行:错误#66:需要一个";"
    "C:/ti/ccsv6/tools/compiler/c2000_para.3.LTS/include/mathmation.h" 15.12 ,第252行:警告#12-D:解析在之前的语法错误

    后在此处重新启动

    文件_defs.h在第187行中没有关键字inline,而是__inline。  我不知道您的_defs.h副本是否已损坏。  请将其附加到您的下一篇文章中。  因此,论坛将接受它,添加文件扩展名.txt。  

    谢谢,此致,

    -George

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

    e2e.ti.com/.../_5F00_defs.txtHiGeorge,

    这是_defs.h文件

    此致

    托尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否在程序中的某个位置有__inline的定义? 可能是"#define__inline"或"-D__inline=inline"?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您的_defs.h副本没有问题。 所以这不是问题。

    考古学家的建议是很好的。  另一种方式来发现问题…… 使用--gen_acd_raw构建并检查生成的.rl文件。  搜索内联的实例。  您应该能够了解__inline是否更改为inline,以及发生这种情况的位置。

    谢谢,此致,

    -George