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.

[参考译文] 编译器/AWR1642:ti-cgt-arm_16.9.6.LTS 是否支持在 C 中嵌入式汇编?

Guru**** 2538930 points
Other Parts Discussed in Thread: AWR1843

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/766254/compiler-awr1642-can-ti-cgt-arm_16-9-6-lts-support-embedded-assemble-in-c

器件型号:AWR1642
Thread 中讨论的其他器件:AWR1843

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

你好、冠军、
   我的客户正在 TI 毫米波器件 AWR1843的 R4F 程序中使用 ti-cgt-arm_16.9.6.LTS。 他们想知道此编译器是否支持如下所示的嵌入式汇编器。 他们尝试过、但编译器返回错误。 我在 ARM 网站上查看、它说 GNU 编译器支持这种语法。 您能帮助检查 TI 编译器是否支持该功能吗?

osEE_GET_SP (

无效

){

 var (OsEE_addr、自动) temp;

 OSEE_GET_SP (temp);

 返回温度;

 

#define    OSEE_GET_SP (SP)            \

        __asm­­__ volatile (" mov %0,sp":"=r"(SP))

谢谢、

Adam

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

    遗憾的是、TI ARM 编译器不支持 GCC ARM 编译器提供的 asm 语句。  相反、支持更简单的 asm 语句形式。  有关更多详细信息、请在 TI ARM 编译器手册中搜索 标题为 _asm 语句的子章节。

    谢谢、此致、

    乔治

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

    尊敬的乔治:
        我现在很清楚。 非常感谢您的帮助!

    此致、
    Adam

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

    我仍然使用__asm​​和 asm 语句尝试编译,但仍然无法报告错误消息:
    第101行:错误#18:预期为")"。
    我怀疑(" mov %0,sp":"=r"(SP))命令格式编译器不支持,我们只想获取 sp 的值,您有什么建议吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的乔治:

    我尝试使用_asm 和 asm 进行编译、但仍然报告错误、信息如下:
    错误#18:预期为")"
    相同的 CCS 环境执行 asm (" CPSIE I")语句;没有错误、我怀疑编译器不支持指令(" mov %0、sp":"=r"(SP))、您有什么建议?

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

    尊敬的 Adam:
    正确的语法如下所示:

    _asm ("汇编器文本");

    编译器会将参数字符串直接复制到输出文件中。 汇编器文本必须用双引号引起来。 所有常用字符串转义代码都保留其定义。 例如、您可以插入包含引号的.byte 指令、如下所示:

    _asm ("STR:.byte \"abc\");