2012-03-06 2 views
2

Я пытаюсь выполнить cross = скомпилировать простую программу с встроенной сборкой для различных ARM-процессоров. Он содержит инструкцию по сборке QSUB, которая согласно this document является действительной инструкцией ARM и Thumb-2.Ошибка: Целевой ЦП не поддерживает режим ARM

Это компилируется для меня при строительстве коры головного мозга a8.

Я получаю ошибку компиляции в названии, когда я пытаюсь построить для cortex-m3 и не могу понять, почему. Я попытался установить режим большого пальца с помощью переключателя компилятора -mthumb, а затем ошибка изменилась на «выбранный процессор не поддерживает режим большого пальца». Я немного смущен, потому что cortex-m3 действительно поддерживает режим большого пальца.

Вот опции компиляции я использую с GCC CodeSourcery в:

arm-none-linux-gnueabi-gcc helloworld.c -o a.out -lm -mthumb -mcpu=cortex-m3 
+3

Просто что-то попробовать, иногда gcc может быть придирчивым к порядку опций, попробуйте установить тип CPU _before_ в режиме большого пальца. ('-mcpu = cortex-m3 -mthumb') Возможно, они перемещаются до того, как даже helloworld.c –

+1

большой палец (не thumb2) является наиболее переносимым по всему плечу. Я не могу найти конкретный список из руки, но кажется, что корекс-m4 является ARMv7E-M, а cortex-m3 - ARMv7-M. глядя на текущий ARMv7-M ARM, он показывает, что QSUB является ARMv7E-M специфичным не для всех ядер ARMv7. (более ранняя рука armv7-m показала QSUB как просто инструкцию ARMv7-M, очень запутанную). Обратите внимание, что Cortex-m0 и -m1 основаны на armv6 и имеют очень ограниченный набор инструкций thumb2 ... –

ответ

4

QSUB не упоминается в ARM-х "Cortex-M3 Devices Generic User Guide" (Document DUI0552A).

Кроме того, TI's "Cortex-M3/M4F Instruction Set, TECHNICAL USER'S MANUAL" указывает, что QSUB не поддерживается на Cortex-M3.

Я думаю, что вы просто придется поверить, что НКУ говорит вам ...

+0

Спасибо, я просто нашел это самостоятельно. Думаю, мне придется найти еще один способ сделать мою насыщенную арифметику –

+2

@BrandonYates со связанной страницы: «Для архитектуры ARMv7-M они доступны только в реализации ARMv7E-M». ARMv7E-M реализован в Cortex-M4 (M3 - это просто ARMv7-M). Возможно, проверьте, делает ли библиотека CMSIS-DSP то, что вам нужно; он поддерживает как M3, так и M4. –

 Смежные вопросы

  • Нет связанных вопросов^_^