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.

[参考译文] 编译器/TMS570LC4357:ARM CGT 16.9 .1_LTS和16.9 .3_LTS中的汇编程序错误

Guru**** 2538955 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/594584/compiler-tms570lc4357-assembler-bug-in-arm-cgt-16-9-1_lts-and-16-9-3_lts

部件号:TMS570LC4357

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

如果分支目标是导出的标签,则上述版本的汇编程序会发出错误。 以下代码与以前的版本编译正确且正确:
.sect ".text"
.export func
func:
b no_cross
b cross
nop
no_cross:
nop
.export cross
cross:
nop
.end
编译方式:
armcl -mt -mv7r4 -c t.asm
它会发出以下错误:
"t.asm", ERROR! at line 5: [E0001] Address must be defined in the current
section
b cross
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您通知我们此问题,并提交一个简明的测试案例。  我可以复制它。  我在 SDOWP系统中提交了CodeGen-2250以进行调查。  欢迎您使用我签名中下面的SDOWP链接进行关注。

    谢谢,此致,

    -George

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这不是一个错误。 在这种情况下,您必须使用".global",而不是".export"。

    ".export"用于动态链接,意味着符号可能是可抢占的。 因为这可能是先发制人的,所以我们必须重新安置。 但是,由于这是Thumb模式中与PC相关的“短”分支,因此不允许重新定位。 如果您确实想要在此处使用可重定位的分支,请使用长分支(“BL”)。

    旧版本的汇编程序无法检测到此问题,并且无法拒绝代码。

    顺便提一下,我注意到.export未在ALT中记录。 我将根据文档提交缺陷报告。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的,我会更改我的代码...