我试图跨=使用内嵌程序集编译各种ARM处理器的简单程序。它包含汇编指令QSUB,该指令根据this document是有效的ARM和Thumb-2指令。错误:目标CPU不支持ARM模式
这为编译皮质a8时罚款。
当我尝试构建cortex-m3并且无法找出原因时,我在标题中出现编译错误。我试图用编译器开关-mthumb强制执行拇指模式,然后错误更改为“选定的处理器不支持拇指模式”。我有点困惑,因为cortex-m3确实支持拇指模式。
下面是我使用的是CodeSourcery的GCC编译选项:
arm-none-linux-gnueabi-gcc helloworld.c -o a.out -lm -mthumb -mcpu=cortex-m3
只是要尝试,有时gcc可能会挑选选项顺序,尝试设置CPU类型_before_设置拇指模式。 ('-mcpu = cortex-m3 -mthumb')可能会在helloworld.c – 2012-03-06 18:54:24
拇指(而不是thumb2)之前移动,这是整个手臂系列中最便携的。我无法从手臂找到一个具体的列表,但似乎cortex-m4是ARMv7E-M,cortex-m3是ARMv7-M。看一看当前的ARMv7-M ARM,它显示QSUB是ARMv7E-M而不是所有的ARMv7内核。 (较老的armv7-m arm确实将QSUB显示为ARMv7-M指令,非常令人困惑)。注意Cortex-m0和-m1是基于armv6的,并且具有非常有限的thumb2指令集... – 2012-03-07 04:07:31