Ошибка: целевой ЦП не поддерживает режим 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

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

Другие вопросы по тегам