gpt4 book ai didi

c - ARM GCC 内联汇编

转载 作者:太空宇宙 更新时间:2023-11-04 03:53:25 31 4
gpt4 key购买 nike

我正在尝试以下操作:

int main()
{
unsigned int result = 0;

unsigned int op1 = 10, op2 = 20;
asm volatile ("uadd8 %0, %1, %2" :
"=r" (result) :
"r" (op1), "r" (op2) );

}

我想为 Cortex A9 编译这个我正在使用 arm GNU GCC 工具链。

但我一直收到这个错误:

arm-none-linux-gnueabi-gcc test_2.c

Assembler messages:

Error: selected processor does not support ARM mode `uadd8 r4,r3,r2'

我也尝试通过添加 .code 16 来强制进入拇指模式,但没有成功。

这里有什么问题?

最佳答案

原因是您的编译器中的默认 ARM 架构未实现该指令。 uadd8 在 Thumb 模式下支持架构 ARMv6T2 和 ARMv7,在 ARM 模式下支持 ARMv6 和 ARMv7。因此,您需要将正确的 -march= 选项传递给 gcc。例如:

 -march=armv6
-march=armv6t2 -mthumb
-march=armv7-a
-march=armv7-a -marm

您可以检查编译的默认(或由选项设置)架构:

arm-elf-gcc -E -dM -x c /dev/null | grep ARM_ARCH

关于c - ARM GCC 内联汇编,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19044034/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com