错误:目标CPU不支持ARM模式

时间:2012-03-06 18:45:47

标签: c gcc arm cortex-m3 codesourcery

我正在尝试使用内联汇编来编译一个简单的程序,用于各种ARM处理器。它包含汇编指令QSUB,根据this document,它是有效的ARM和Thumb-2指令。

当为皮质-a8建造时,这对我来说很好。

当我尝试为cortex-m3构建并且无法弄清楚原因时,我在标题中得到了编译错误。我尝试使用编译器开关-mthumb强制使用拇指模式,然后错误更改为“所选处理器不支持拇指模式”。我有点困惑,因为cortex-m3确实支持拇指模式。

这是我在使用codesourcery的gcc:

时使用的编译选项
arm-none-linux-gnueabi-gcc helloworld.c -o a.out -lm -mthumb -mcpu=cortex-m3

2 个答案:

答案 0 :(得分:4)

ARM的"Cortex-M3 Devices Generic User Guide" (Document DUI0552A)中未提及

QSUB

此外,TI的"Cortex-M3/M4F Instruction Set, TECHNICAL USER'S MANUAL"表示Cortex-M3不支持QSUB

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

答案 1 :(得分:3)

根据 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