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.

[参考译文] 编译器/TMS320F28377S:CLA 中的变量名称

Guru**** 2481375 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/934335/compiler-tms320f28377s-variable-names-in-cla

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

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

您好!  

由于我对汇编语言不是很有信心、我想知道是否有人可以解释编译器为什么不允许某些变量名称、如 B1或 B3。 使用 B3作为变量名时、我会得到下一个错误:

>>编译失败
subdir_rules.mk:16:目标'asin.obj 的配方失败
"C:\temp\{38725395-1574-42EF-B38A-81C174C6EC44}"、错误! 第106行:[E0003]非法寄存器寻址操作数
MMOV32 MR0、@B3;[CPU_FPU]|100|

"C:\temp\{38725395-1574-42EF-B38A-81C174C6EC44}"、错误! 在第106行:[E0004]非法操作数组合
MMOV32 MR0、@B3;[CPU_FPU]|100|

"C:\temp\{38725395-1574-42EF-B38A-81C174C6EC44}"、错误! 在第108行:[E0003]非法寄存器寻址操作数
MMOV32 @B3、MR0;[CPU_FPU]|100|

"C:\temp\{38725395-1574-42EF-B38A-81C174C6EC44}"、错误! 在第108行:[E0004]非法操作数组合
MMOV32 @B3、MR0;[CPU_FPU]|100|

  

感谢你的帮助

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

    答案取决于您的项目正在使用的应用程序二进制接口(ABI)。  COFF ABI 是较旧的、EABI 是较新的。  

    • COFF ABI 在汇编语言中的符号名称之前需要下划线。  即_myVar
    • EABI 不会在符号名称上使用_、因此您的示例应该可以。  

    我们建议您使用的器件采用 EABI、C2000Ware 中适用于该器件的配套资料支持 EABI。

    我还建议您考虑用 C 语言而不是汇编语言编写 CLA 代码。   

    有关更多背景信息、请在 C28x 编译器手册中搜索 标题为 "关于应用二进制接口"的子章节。

    此致

    Lori

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

    您好 Lori、

    感谢您的解释、但实际上、我在 CLA 应用中使用的是 C、我的代码如下所示:

    中断空 Cla1Task3 (空)

    b3=AdcbResultRegs.ADCRESULT1;

    以及项目的配置、如下所示:

    使用 B_3可以解决问题、但仍然无法理解错误、因为我在理论上使用的是 eabi。

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

    感谢您的详细信息。  工具是否发出任何其他警告或错误?  我将要求编译器团队对此主题发表评论。  

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

    到目前为止、我还没有见过其他人

    谢谢你  

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

    我无法重现此行为...

    [引用用户="Daniel Bernal Galeano"]"C:\temp\{38725395-1574-42EF-B38A-81C174C6EC44}"、错误! 第106行:[E0003]非法寄存器寻址操作数
    MMOV32 MR0、@B3;[CPU_FPU]|100|[/报价]

    对于遇到此错误 的源文件、请按照文章如何提交编译器测试用例中的说明进行操作。

    谢谢、此致、

    乔治