我試圖跨=使用內嵌程序集編譯各種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