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.

[参考译文] TMS320F280025:编译器问题

Guru**** 2555630 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1103378/tms320f280025-compiler-issue

器件型号:TMS320F280025
主题中讨论的其他器件:C2000WARE

您好 Champ、

客户遇到以下问题:

反汇编代码中缺少代码 RTE_APP_ISR_INVFast2_UPPWM_DOWNPWM ()函数。

但是,如果在此代码之前添加一个空白行,则反汇编代码将是正常的。

客户已尝试以下条件、两者都有相同的问题。附加的是客户 项目。客户希望了解根本原因以及如何在将来避免此问题。

e2e.ti.com/.../INVTest2_5F00_53084.rar

条件1:客户已尝试 CCS10.1.0.0010和 ti-CGT-C2000_20.2.1.LTS

C2000编译器

-v28 -ml -float_support=fpu32 -idiv_support=idiv0 --tmu_support=tmu0 -O3 -fp_mode=relaxed -include_path="D:/ccs_workspace/v10/hV/11kwSingle-h/inv10_htm/ccv10_htm/ccs/tid_htm_htm"-ccs_model/cc_htm_htm_htm"-02_htm_htm/ccs/tid_htm_htm_htm_html/cc10_htm_htm/cc10_htm_htm/ccs/tid_html/ccs/tid_htm_htm_html/ccs/tid_htm_htm_html/ccs/tid_html/ccs/tid_html/cc10_htm_htm/cc10_workspace/c2000_htm/cc_htm_htm/cc_htm/ccs/tid/ccs/tid_htm/cc10_html/ccs/tid/ccs/tid_html/ccs/tid_html/ccs/tid_html/ccs/

C2000链接器

-v28 -ml -float_support=fpu32 -idiv_support=idiv0 --tmu_support=tmu0 -O3 -fp_mode=relaxed --advice:performance=all --define=debug --define=flash --diag_suppress=10063 --tid_warn=ti_warn=ti_express=ti-tide-tid_express=ti_express-v102_di_intrack-ines=v/inese-express-content/infotain_express-content/intrack-content/ines=vdsp/ines=vdcs_express-content/intrack-content/infot_ines=-inese-texpress-dsp/infot_ines=dic/infotain_content/intrack-content/ines=dic/infotain_content/ines=v/intrack-content/ines=dic/infotain_content/inese-ines=dic/link/info-

条件2:客户已尝试 CCS11.1.0.00011和 ti-CGT-C2000_21.6.0.LTS

C2000编译器

-v28 -ml --float_support=fpu32 --idiv_support=idiv0 --tmu_support=tmu0 -o3 --fp_mode=relaxed --include_path="C:/users/aoha/desktop/vaIMD62375C1U17100B01D04"--include_tools/cc100s/tid_content/cc10s/tid_content/cc10s/tid_content/cc10s/tid_content/cc10s/tid_html/content/cc10s/tids/tids/cc10_content/cc10_content/cc10s/tids/tid_html/content/cc10_content/cc10s/tids/tids/tids/c2000_content/cc10_content/cc10_content/cc10_html/content/cc10_html/content/cn/swu/cc10_content/cn/c2000-ree.html/content/cc10_content/cc10_content/cn/c2000-ree.html/content/cc10_content/cn/c2000-refiles/ctran/

C2000链接器

-v28 -ml -float_support=fpu32 -idiv_support=idiv0 --tmu_support=tmu0 -O3 -fp_mode=relaxed --advice:performance=all --define=debug --define=flash --warn_suppress=10063 --tiag_warn=ti_express=ti-c2000-reap_express-c2000-express-c2000-reposit_express-dcs_b.trab-ment-diftexpress-c2000-reb.at_express-diftexpress-dsp/gui_express-c2000-reposits/v/guide-diftex-dsp/guide-diftex-dsp/guides=dsp/guide-dsp/guides=dsp/guides=dfet/guides=dfet/guides=-diftides=v1.tide-dsp/guide-dsp/guide-dsp/guides=dsp/

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

    您好!

    我看到客户使用-O3编译器。 这是高度优化、会影响调试可见性。 如果客户禁用优化、问题是否会消失?

    谢谢

    Ki

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

    Ki、

    禁用优化后,问题相同!

    您可以尝试附加 项目。

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

    感谢您的 CCS 项目。  我可以在项目内部的 INVTest2.out 文件中看到缺少的指令。  但是、当我自己构建项目时、我无法重现该结果。  我尝试了几个不同的变体。  它总是对我有用的。   

    请尝试在仅生成文件 InvCalc.c 时演示此问题  添加编译器--src_interlist。  这会使编译器保留自动生成的汇编文件、并向其添加注释。  在这种情况下、可以在 CPU_FLASSH1目录(以 CCS 编译配置命名的目录)中找到文件 InvCalc.asm。  检查该文件时,搜索字符串253 (出现问题的源代码行)。  你会发现一些类似的东西...

    ;*** 251	-----------------------    EPwm7Regs.AQCSFRC.all = 5u;
    ;*** 253	-----------------------    EPwm2Regs.AQCSFRC.all = 0u;
    	.dwpsn	file "../Source Code Files/Project/APP/Power Manager/Inverter/InvCalc.c",line 251,column 8,is_stmt,isa 0
            MOVW      DP,#||EPwm7Regs||+73  ; [CPU_ARAU] 
            MOVB      @$BLOCKED(||EPwm7Regs||)+73,#5,UNC ; [CPU_ALU] |251| 
    	.dwpsn	file "../Source Code Files/Project/APP/Power Manager/Inverter/InvCalc.c",line 253,column 9,is_stmt,isa 0
            MOVW      DP,#||EPwm2Regs||+73  ; [CPU_ARAU] 
            MOV       @$BLOCKED(||EPwm2Regs||)+73,#0 ; [CPU_ALU] |253|

    我在这一分析层面上没有看到这个问题。  如果我这样做的话,我希望最后3行都不存在。  请尝试找到一种构建代码的方法、以便发生类似的情况。  完成此操作后 、对于源文件 InvCalc.c、请按照文章 How to Submit a Compiler Test Case中的说明进行操作。

    谢谢、此致、

    乔治

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

    乔治

    您是否尝试使用相同的 CCS 和编译器版本?

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

    是的。  乔治

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

    乔治

    我已根据上一个项目重复出现客户问题。

    原始 InvCalc.c 文件行253是空行,因此没有问题。

    如果没有此空白行、如下面所示、则会发生问题。

    随附的是  InvCalc.asm 文件。

    e2e.ti.com/.../InvCalc.asm

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

    乔治

    所附的测试用例。

    e2e.ti.com/.../InvCalc.pp

    我的 CCS 版本 为11.0.0.00012.compiler、版本为 c2000_20.2.1.LTS。

    编译器选项:

    -v28 -ml --float_support=fpu32 --idiv_support=idiv0 --tmu_support=tmu0 -o3 --fp_mode=relaxed --include_path="C:/workspace_v11/INVTest2_test84/INV5302"--include_v1002/common_tool/v202/trend_content/cc10_content/ccs/tid_content/v204/inv204/inv032"-content/inspoti_content/ccs/tid_content/cc10_content/inspoti_content/intrintran/v/v/v2032_content/ccs/tid_content/insp/ccs/tid_content/ccs/tid_content/v/v/v/v204/inspoti_files/tid/cc10_content/insp/ccs/tid_content/ccs/tides_content/v/v2032_content/insp/ccs/tid/ccs/tides_content/v/v/v/v/

    链接选项 :

    -v28 -ml --float_support=fpu32 --idiv_support=idiv0 --tmu_support=tmu0 -O3 --fp_mode=relaxed --advice:performance=all --define=debug --define=flash --diag_suppress=10063 --tid_warn=ti-express=ti-ap_exit_rom-intrack_modules=--rom-content-intrack_ise-express-content-content-content-intrack_info-display-ines=-out-content-content-content-content-intrack_infot_content-content-content-intrack_content-content-content-content-content-content-content-intrack_off-content-content-content-content-content-intrack_content-content-content-content-content-content-content-content-content-intrack_infoti_off-content-content-content-content-content-content-content-content-content-content-content-content-content-content-content-content-in

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

    Huihuang、

    乔治离开办公室几天,一旦他返回,他就会作出答复。

    此致、

    John

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="91569" URL"~/support/microcontrollers/C2000-microcontrollers-group/C2000/f/C2000-microcontrollers-forume/110338/tms320f280025-compiler-issue/4092965#4092965"]随附的测试用例。

    谢谢你。  不幸的是,我仍然无法重现问题。

    从您于5月26日发布的 InvCalc.asm 附件中,问题出现在以下行中...

    ;*** 249	-----------------------    if ( g_u16DirectionNegCnt < 2u ) goto g19;
    	.dwpsn	file "../Source Code Files/Project/APP/Power Manager/Inverter/InvCalc.c",line 249,column 4,is_stmt,isa 0
            MOV       AL,@||g_u16DirectionNegCnt|| ; [CPU_ALU] |249| 
            CMPB      AL,#2                 ; [CPU_ALU] |249| 
            B         ||$C$L17||,LO         ; [CPU_ALU] |249| 
            ; branchcc occurs ; [] |249| 
    ;*** 251	-----------------------    EPwm7Regs.AQCSFRC.all = 5u;
    	.dwpsn	file "../Source Code Files/Project/APP/Power Manager/Inverter/InvCalc.c",line 251,column 8,is_stmt,isa 0
            MOVW      DP,#||EPwm7Regs||+73  ; [CPU_ARAU] 
            MOVB      @$BLOCKED(||EPwm7Regs||)+73,#5,UNC ; [CPU_ALU] |251| 
    ||$C$L17||:    
    ;***	-----------------------g19:

    只为一个字段分配值5。  然后它结束。  应向另一个字段分配0。  当我尝试重现问题时,我会看到...

    ;** 20874	-----------------------    if ( g_u16DirectionNegCnt < 2u ) goto g19;
    	.dwpsn	file "file.c",line 20874,column 4,is_stmt,isa 0
            MOV       AL,@||g_u16DirectionNegCnt|| ; [CPU_ALU] |20874| 
            CMPB      AL,#2                 ; [CPU_ALU] |20874| 
            B         ||$C$L17||,LO         ; [CPU_ALU] |20874| 
            ; branchcc occurs ; [] |20874| 
    ;** 20876	-----------------------    EPwm7Regs.AQCSFRC.all = 5u;
    ;** 20878	-----------------------    EPwm2Regs.AQCSFRC.all = 0u;
    	.dwpsn	file "file.c",line 20876,column 8,is_stmt,isa 0
            MOVW      DP,#||EPwm7Regs||+73  ; [CPU_ARAU] 
            MOVB      @$BLOCKED(||EPwm7Regs||)+73,#5,UNC ; [CPU_ALU] |20876| 
    	.dwpsn	file "file.c",line 20878,column 9,is_stmt,isa 0
            MOVW      DP,#||EPwm2Regs||+73  ; [CPU_ARAU] 
            MOV       @$BLOCKED(||EPwm2Regs||)+73,#0 ; [CPU_ALU] |20878| 
    ||$C$L17||:    
    ;***	-----------------------g19:
    

    5的分配存在。  但0的分配也存在。  行号不同、因为我要构建预处理文件、其中包含更多的头文件行。  否则、这些代码序列以相同的方式启动。  它们匹配、直到分配给0开始。   

    在我重现问题之前、无法解决问题。  我将与其他几个人讨论您的问题、然后再与您联系。

    谢谢、此致、

    乔治

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

    我将通过私人邮件与您联系。   

    乔治

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

    乔治

    我不知道为什么您无法重现问题、客户和我都可以重现问题

    在三个测试案例中可能重现 问题:可以在上一个论坛中找到详细编译器选项。

    客户方面:CCS10.1.0.10和 ti-CGT-C2000_20.2.1.LTS

     2.客户方面: CCS 11.1.0.00011和 ti-CGT-C2000_21.6.0.LTS

    我 的方面: CCS 11.0.0.00012和 c2000_20.2.1.LTS。

    我 不确定您是否看到下面的信息、我会在 5月26日发布这些信息。  

    您是否尝试删除了253号空白行?

    您尝试了哪个 CCS 和编译器版本?

    我会让其他 FAE 尝试是否可以重现问题。

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

    感谢您通过私人邮件交换的其他信息。  很遗憾、我仍然无法重现问题。

    我在 InvCalc.c 中找到了一个值得讨论的细节。  起初、我忽略了它、因为我认为它与问题无关。  不过、在这一点上、我们必须加以考虑。   

    它与如何在文本文件中表示行尾有关。  首先是与行尾相关的 ASCII 字符的一些背景。

    ESC 十六进制 注释
    \n 0xA

    换行

    r 0xD 回车

    下面是列标题的含义。

    • ESC:该 ASCII 字符的 C/C++转义序列
    • 十六进制:ASCII 字符的十六进制值
    • :引用字符时使用的常用术语

    在 Windows 系统上的文本文件中,行以字符序列\r\n 结尾   

    文件 InvCalc.c 的第253行的开头有一个额外的\r。  您可以通过几种不同的方法来查看此额外的\r 字符。  我使用文本编辑器 gvim、它会呈现该字符^M  下面是一个屏幕截图。

    许多其他文本编辑器根本不显示它、或者可能以不同的方式呈现它。  即使如此、此额外的\r 字符也会存在。

    因为它是一个空格字符、所以它不应影响任何内容。  不过,在这一点上,我们必须考虑这是否可能是问题的一部分。

    请尝试将额外的\r\n 从253行移动到251行。  这是否会导致忽略第251行?  尝试删除额外的\r  这是否会导致问题消失?  当我尝试这些实验时、它没有什么不同。  生成的代码继续如预期的那样。

    谢谢、此致、

    乔治

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

    乔治

    您能告诉我您已经尝试了哪种测试条件(CCS/Complier 版本)吗?

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

    乔治

    我已经通过   删除   InvCalc.c 文件  NO253空白行、让其他 FAE 帮助尝试使用 CCS11.1.0和 CGT v21.6.0.LTS 执行上一个项目。

    他们也会重现问题。我很好奇 为什么你不能重现问题。

     您能告诉我您已经尝试了哪种测试条件(CCS/Complier 版本)吗?

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

    我已经尝试过编译器版本20.2.1.LTS 和21.6.0.LTS。  CCS 版本10.1.1和11.1.0。  与源代码相关的各种变体。  添加和删除空白行。  添加和删除额外的\r 字符。  我始终得到相同的结果。  生成的代码继续如预期的那样。

    您是否尝试过与我在上一篇文章中描述的\r 相关的实验?

    谢谢、此致、

    乔治

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

    由于幕后的工作越来越多、我能够再现问题。  虽然我并不完全理解所有内容、但我理解得足以告诉您应避免的事情。

    下面是 CCS 编辑器中显示内容的屏幕截图...

    当您仔细查看一条线末尾和下一条线的开头附近的每个字符时,您会看到这个...

     ;  /    / T  O  D  O \r \t \t \t \t           R  T  E  _  A

    显示每个字符、后跟一些空格。  对于简单的 ASCII 字符、您可以看到它、后跟3个空格。  源代码行中的空格字符很难看到、因为后面也有3个空格。  如果字符不是简单的 ASCII 字符、则由转义序列表示、后跟2个空格。  在这种情况下,\r 表示回车,\t 表示制表符,\n 表示换行符。

    除非\n 否则不会出现。  这是要避免的。  切勿出现裸的\r。  始终确保行序列的末尾为\r\n   

    CCS 编辑器认为裸线\r 表示该行已结束。  编译器没有。  编译器处理一个空白的\r、如空格或制表符。  在这种情况下、以//TODO 开头的注释会延续到 CCS 编辑器显示为下一行的内容、并导致整个行注释掉。

    这是一个奇怪的情况。  我将与我的团队讨论这个问题、并将与您联系。   

    谢谢、此致、

    乔治

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

    我进一步调查了、并最终针对编译器 EXT_EP-10833提交了此问题。  欢迎您访问该链接。

    至于权变措施... 这个问题很老了。  可能已经超过20岁了。 现在才出现。  这证明这一问题非常罕见。 在这种情况下、只需删除这个文件中的裸\r 字符即可。

    谢谢、此致、

    乔治

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

    乔治

    是否有计划在未来的编译器版本中修复此问题?

     由于在 CCS 编辑器中看不到 以下特殊字符、客户如何在将来避免这种问题?

     ;  /    / T  O  D  O \r \t \t \t \t           R  T  E  _  A

    使用哪些编辑器工具可以 看到上述字符?

    如果客户无法在   CCS 编辑器中看到此特殊字符、  那么如果我们没有计划在将来的编译器版本中修复此问题、则会始终存在相关风险? 我们是否计划更新 CCS 编辑器、以便特殊 字符可以显示在 CCS 编辑器中?

    另一个问题:为什么 现在可以重现问题,但 以前不能重现问题?

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

    您可以在 CCS 中看到这些字符、但必须打开相应的功能。  大多数编辑器都有一种方法来显示这种类型的字符。  在 CCS 中打开首选项对话框、然后选择左侧的 General -> Editors->Text Editor。  然后启用右侧的"显示非打印字符"选项。

    这样做后、您可以看到特殊字符。

    如果您查看第252行的末尾、您可以看到与所有其他行相比、它缺少一个字符。

    即它只有  

    而不是  

    此致、

    John

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

    您还能回答其他问题吗?

    我尝试了 "显示非打印字符"的方式、我只能看到   它具有  

    我想知道使用哪些工具可以看到以下字符?

     ;  /    / T  O  D  O \r \t \t \t \t           R  T  E  _  A

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

    您看不到什么?

    >>>是3 \t (选项卡)

    是4个空格

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

    我看到如下所示、

    我 想知道使用 哪些工具可以看到以下 字符?

     ;  /    / T  O  D  O \r \t \t \t \t           R  T  E  _  A

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

    我不知道一个将其显示为\r \t...的工具。  但是、任何编辑器都可以选择显示字符。  通常情况下、它们的显示 方式与 CCS 显示方式类似。

    与代码间的关系

     

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

    乔治

    是否有计划在未来的编译器版本中修复此问题?

    客户如何在将来避免这种问题?

     ;  /    / T  O  D  O \r \t \t \t \t           R  T  E  _  A

    使用哪些编辑器工具可以 看到上述字符?

    另一个问题:为什么 现在可以重现问题,但 以前不能重现问题?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="91569" URL"~/support/microcontrollers/C2000-microcontrollers-group/C2000/f/C2000-microcontrollers-forume/110338/tms320f280025-compiler-issue/4103824#4103824"]

     ;  /    / T  O  D  O \r \t \t \t \t           R  T  E  _  A

    使用哪些编辑器工具可以 看到上述字符?

    [/报价]

    我开发了该显示、不是通过使用文本编辑器、而是使用通常用于从二进制文件转储字节的实用程序。  该命令称为 od。  它在 Linux 和其他类似 Unix 的系统上可用。  我首先将问题文件减少到少量行。  然后,我运行了一个类似于...的命令。

    OD -an -c -w20 small_file.c

    然后、我将该命令的输出的一行复制到论坛帖子中。

    虽然这是在论坛帖子中明确显示问题的好方法、但我认为在这种情况下、其他任何用途都不实用。

    谢谢、此致、

    乔治

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="91569" URL"~/support/microcontrollers/C2000-microcontrollers-group/C2000/f/C2000-microcontrollers-forume/110338/tms320f280025-compiler-issue/4103205#4103205"]您 现在可以重现问题,但无法重现 问题的原因是什么?

    要导致问题发生、必须从客户提交的 CCS 工程中的文件中删除一行空白。  发生这种情况的精确方式非常重要。  我从未注意过我删除空白行的确切方式。  但是、尽管我以前这么做过、但它不会导致保留裸\r 字符。  最后、经过多次尝试、我很幸运、无意中找到了一种方法来删除留下裸线的空白线。

    我们大家应该学习的教训是尽可能以问题发生的形式提交一个测试案例。

    谢谢、此致、

    乔治

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

    有关此主题的更多详细信息是私下进行的。  就在现在、这个线程被标记为已解决、尽管实际情况并非如此。  解决后、我将在这里发布一个快速摘要。

    谢谢、此致、

    乔治

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

    如果它有助于连接、则是另一个导致编译错误的测试用例。

    这是通过在下一个源代码行上只有\r "swallow"括号结束的注释来完成的。

    Notepad ++编辑器中的视图允许"ASCII 代码插入面板"在行末尾插入\r:

    创建的源文件的 od 转储:

    $ od -An -c -w10 main.c 
       i   n   t       m   a   i   n       (
       v   o   i   d   )       /   /       t
       h   i   s       l   i   n   e       e
       n   d   s       w   i   t   h       o
       n   l   y       \   r  \r   {  \r  \n
                       r   e   t   u   r   n
           0   ;  \r  \n   }  \r  \n
    

    在 Linux 下运行 CCS 时、编译器产生的错误:

    **** Clean-only build of configuration Debug for project TMS320F280025_CR_only_line_ending ****
    
    /home/mr_halfword/ti/ccs1120/ccs/utils/bin/gmake -k -j 12 clean -O 
     
    rm -rf  "TMS320F280025_LF_only_line_ending.hex"  "TMS320F280025_LF_only_line_ending.out" 
    rm -rf "main.lst" 
    rm -rf "main.obj" 
    rm -rf "main.d" 
    Finished clean
     
    
    **** Build Finished ****
    
    **** Build of configuration Debug for project TMS320F280025_CR_only_line_ending ****
    
    /home/mr_halfword/ti/ccs1120/ccs/utils/bin/gmake -k -j 12 all -O 
     
    Building file: "../main.c"
    Invoking: C2000 Compiler
    "/home/mr_halfword/ti/ccs1120/ccs/tools/compiler/ti-cgt-c2000_21.6.0.LTS/bin/cl2000" -v28 -ml -mt --float_support=fpu32 --idiv_support=idiv0 --tmu_support=tmu0 --include_path="/home/mr_halfword/workspace_v11/TMS320F280025_CR_only_line_ending" --include_path="/home/mr_halfword/ti/ccs1120/ccs/tools/compiler/ti-cgt-c2000_21.6.0.LTS/include" -g --diag_warning=225 --diag_wrap=off --display_error_number --gen_func_subsections=on --abi=eabi --asm_listing --preproc_with_compile --preproc_dependency="main.d_raw"  "../main.c"
     
    >> Compilation failure
    subdir_rules.mk:7: recipe for target 'main.obj' failed
    "../main.c", line 2: error #131: expected a "{"
    1 error detected in the compilation of "../main.c".
    gmake: *** [main.obj] Error 1
    gmake: Target 'all' not remade because of errors.
    
    **** Build Finished ****
    

    在 CCS 11.2中创建的附加工程

    e2e.ti.com/.../TMS320F280025_5F00_CR_5F00_only_5F00_line_5F00_ending.zip