4

我正在尝试为各种 ARM 处理器交叉编译一个带有内联汇编的简单程序。它包含汇编指令 QSUB,根据本文档,它既是有效的 ARM 指令,又是 Thumb-2 指令。

在为 cortex-a8 构建时,这对我来说编译得很好。

当我尝试为 cortex-m3 构建时,标题中出现编译错误,但不知道为什么。我尝试使用编译器开关 -mthumb 强制使用拇指模式,然后错误变为“所选处理器不支持拇指模式”。我有点困惑,因为 cortex-m3 实际上支持拇指模式。

这是我与 codesourcery 的 gcc 一起使用的编译选项:

arm-none-linux-gnueabi-gcc helloworld.c -o a.out -lm -mthumb -mcpu=cortex-m3
4

2 回答 2

4

QSUBARM 的“Cortex-M3 设备通用用户指南”(文档 DUI0552A)中未提及。

此外,TI 的“Cortex-M3/M4F 指令集,技术用户手册”表明 QSUBCortex-M3 不支持该功能。

我认为你只需要相信 GCC 告诉你的话......

于 2012-03-06T19:44:24.233 回答
4

根据TI , cortex-a8的最佳gcc标志是

-march=armv7-a -mtune=cortex-a8 -mfpu=neon -ftree-vectorize -ffast-math -mfloat-abi=softfp

http://processors.wiki.ti.com/index.php/Cortex-A8

于 2012-08-30T08:59:51.913 回答