Ошибка: целевой ЦП не поддерживает режим ARM
Я пытаюсь скомпилировать простую программу со встроенной сборкой для различных процессоров ARM. Он содержит инструкцию по сборке QSUB, которая в соответствии с этим документом является действительной инструкцией ARM и Thumb-2.
Это хорошо для меня компилируется при сборке cortex-a8.
Я получаю ошибку компиляции в заголовке, когда пытаюсь собрать cortex-m3 и не могу понять, почему. Я попытался включить режим большого пальца с помощью переключателя компилятора -mthumb, а затем ошибка изменится на "выбранный процессор не поддерживает режим большого пальца". Я немного запутался, потому что cortex-m3 на самом деле поддерживает режим большого пальца.
Вот параметры компиляции, которые я использую с gcc codeourcery:
arm-none-linux-gnueabi-gcc helloworld.c -o a.out -lm -mthumb -mcpu=cortex-m3
2 ответа
QSUB
не упоминается в "Универсальном руководстве пользователя устройств Cortex-M3" (Документ DUI0552A).
Кроме того, "Инструкция по эксплуатации Cortex-M3/M4F от TI , ТЕХНИЧЕСКОЕ РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ" указывает, что QSUB
не поддерживается на Cortex-M3.
Я думаю, вы просто должны будете поверить в то, что GCC говорит вам...
В соответствии с TI лучшие флаги GCC для Cortex-A8 являются
-march=armv7-a -mtune=cortex-a8 -mfpu= неон -двух-векторизация -fast-math -mfloat-abi = softfp