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-CGT-ARM_18.12.2.LTS/bin/armasm 在处理.text 段时遇到段错误

Guru**** 2577385 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1129563/ti-cgt-arm_18-12-2-lts-bin-armasm-experienced-a-segmentation-fault-while-processing-section-text

您好!

我使用 TI 18.12.2.LTS C/C++编译 器来构建.asm 文件、该文件具有混合的汇编和 C/C++环境、可在 C 和汇编代码之间共享包含声明和原型的 C 头文件。

我在   下面的文档中找到了.asm 文件中混合汇编和 C/C++环境使用的.cdecls 指令和示例、并将代码设置为:  

第1行。 .cdecls C、NOLIST

第2行。 %{

第3行。 #define ASMTEST 1.

第4行。 %}

第5行。 .cdecls C、NOLIST

第6行。 %{

第7行。 #ifndef ASMTEST

第8行。 #warn "ASMTEST 未定义!" /*将发布*/

第9行。 #endif

第10行。 %}

https://downloads.ti.com/docs/esd/SPNU118W/index.html##viewer?document=%257B%2522href%2522%253A%2522%252Fdocs%252Fesd%252FSPNU118W%2522%257D&url=pragmas-spru1869005.html%23SPRU1869005。

当我尝试构建上述代码时,收到 以下 消息的分段错误:  

(asm) src/OS/ThreadX/TX_thread_schedule.asm

内部错误:/build_server/compiler/ti-cgt-arm_18.12.2.LTS / bin/armasm 遇到分段错误
处理.text 段文件 src/OS/ThreadX/TX_thread_schedule.asm 行时

这是由 TI 汇编器中的缺陷引起的。
TI 客户支持可能会建议解决方法来避免这种情况。

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

在 E2E 支持论坛中联系 TI、网址 为 http://e2e.ti.com 、位于
"开发工具"、"TI C/C++编译器"。 请参阅标题为的链接
"提交问题"。

我们需要看到整个错误消息以及完整、可重现的消息
包括所有命令行选项的测试用例。
>>编译失败

请您提供一些有关混合汇编和 C/C++环境使用的解决方案、以共享 C 头文件、其中包含 C 和汇编代码之间的声明和原型。

此致、

Salim Mulla

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

    不幸的是、我无法重现同样的结果。  这就是我尝试的...

    C:\examples>type file.asm
            .cdecls C,NOLIST
            %{
                #define ASMTEST 1
            %}
    
            .cdecls C,NOLIST
            %{
                #ifndef ASMTEST
                    #warn "ASMTEST not defined!" /* will be issued */
                #endif
            %}
    
    C:\examples>armcl file.asm
    "file.asm", line 9: warning: #warning directive: "ASMTEST not defined!" /* will be issued */

    请注意、file.asm 中的每一行都以一个选项卡开头、并且可能还有一些空格。  请以类似的方式演示您的问题。  请复制并粘贴文本、不要使用屏幕截图。

    [引用 userid="529611" URL"~/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum 1129563/ti-CGT-ARM_18-12-2-STS-bin/armasme-here-a-segmention-fault-while processing-section-text"]请求您提供有关混合汇编和 C/C++环境的使用的解决方案,以在汇编原型和代码之间共享包含声明和引用代码的 C 头文件[/C]。

    在 TI ARM 工具链中、.cdecls 指令长期以来一直受到支持、超过10年。  许多客户都没有遇到任何问题。  这种情况下的任何错误都可能是一些异常的细节、很容易纠正。

    谢谢、此致、

    乔治

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

    尊敬的乔治:

    我可以使用您粘贴的代码以及下面的代码构建独立文件。

        .cdecls C,NOLIST
        %{
            #define ASMTEST 1
        %}
    
        .cdecls C,NOLIST
        %{
            #ifndef TX_ENABLE_EXECUTION_CHANGE_NOTIFY
                #define ASMTEST1 2
            #endif
        %}

    但是、当我将上述代码文件添加到 CMake 编译结构(具有超过30-40个文件)中时、会得到上述错误。

    请您提供一些解决方案、以便在.asm 文件内使用#if #define。

    此致、
    Salim Mulla

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

    直到我重现此行为...

    [引用 userid="529611" URL"~/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum 1129563/ti-CGT-ARM_18-12-2-LTS -间隔-有经验-分段-故障-同时处理-段文本"]内部错误:/build_server/compiler/ti-cgt-arm_18.12.2.LTS/armbin/qualge/rand/qualg/有经验的代码段]

    (笑声) 我无法提出这个问题。

    请尝试根据源文件创建一个截止测试用例...

    [引用 userid="529611" URL"~/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum 1129563/ti-CGT-ARM_18-12-2-STS-bin/armasm-here-a-segmention-fault-while processing-section-text"] src="OS/OS/ThreadX/TX_thread_schedule.asm

    在生成不包含其他文件的汇编文件时尝试获得相同的行为。  然后将该文件压缩、并将其附加到您的下一篇文章中。  还显示了编译文件时使用的确切选项。  请复制并粘贴文本、不要使用屏幕截图。

    谢谢、此致、

    乔治

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

    问题是由于编译器选项造成的。 非常感谢您的支持。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="529611" URL"~/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum 1129563/ti-CGT-ARM_18-12-2-STS-bin/armasme-here-a-segmention-fault-while 处理-section-text/4193528#4193528"]问题是由于编译器选项造成的[/引号]

    请发布这些编译器选项。  请复制并粘贴文本、不要使用屏幕截图。

    谢谢、此致、

    乔治

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

    尊敬的乔治:

    我们观察到、只有少数 MCAL 特定的包含(C 头文件)文件提供给汇编器进行编译。  

    这是导致问题的原因。